Načrtovanje in razvoj spletnih aplikacij

Nizi v PHP

Niz v PHP predstavlja besedilo oziroma zaporedje znakov. Nize najpogosteje zapisujemo z enojnimi ali dvojnimi narekovaji. Če vrednost želimo obravnavati kot besedilo, jo zapišemo kot niz.

Osnovna pravila

  • Niz lahko zapišemo z enojnimi ali dvojnimi narekovaji.
  • Pri dvojnih narekovajih PHP obdela spremenljivke in nekatera posebna zaporedja znakov.
  • Pri enojnih narekovajih se vsebina večinoma obravnava dobesedno.
  • Narekovaji morajo biti vedno pravilno zaključeni.
  • Če želimo znotraj niza uporabiti enake narekovaje, jih moramo pravilno zapisati.

Primer pravilnega zapisa:

$novica['naslov'] = "Igralnica Harrah's na Goriškem";
$novica['naslov'] = 'Igralnica Harrah\'s na Goriškem';

Pomni: Dvojni narekovaji omogočajo razširjanje spremenljivk in uporabo posebnih zaporedij, enojni narekovaji pa so primernejši za dobeseden zapis besedila.

Kreiranje niza z dvojnimi narekovaji

Pri dvojnih narekovajih PHP obdela spremenljivke in posebna zaporedja znakov, kot je \n.

<?php
   $ime = "Janez";
   echo "Pozdravljen, $ime\n";
   echo nl2br("To je prva vrstica.\nTo je druga vrstica.");
?>
Pozdravljen, Janez To je prva vrstica.
To je druga vrstica.

Kreiranje niza z enojnimi narekovaji

Pri enojnih narekovajih se vsebina večinoma obravnava dobesedno. Spremenljivke in večina posebnih zaporedij, kot je \n, se ne obdelajo.

<?php
   $ime = 'Janez';
   echo 'Pozdravljen, $ime\n';
?>
Pozdravljen, $ime\n

Spremenljivke v nizih

Če je niz obdan z enojnimi narekovaji, PHP spremenljivko obravnava kot navadno besedilo.

$ime = 'Janez';
echo 'Pozdravljen, $ime'; // izpiše Pozdravljen, $ime

Če uporabimo dvojne narekovaje, PHP vrednost spremenljivke vstavi v niz.

$ime = 'Janez';
echo "Pozdravljen, $ime"; // izpiše Pozdravljen, Janez

Posebna zaporedja znakov

V nizih z dvojnimi narekovaji lahko uporabljamo posebna zaporedja, kot so \n, \r, \t, \" in \$. Ta zaporedja PHP obdela kot posebne znake. Enako velja tudi za zapis heredoc.

  • \n – nova vrstica
  • \r – vrnitev na začetek vrstice
  • \t – tabulator
  • \" – dvojni narekovaj
  • \$ – znak za dolar

Izpis posebnih znakov

<?php
   $newline = "Prehod v novo vrsto izvedemo z \n";
   $return = "Vrnitev na začetek vrstice izvedemo z \r";
   $tab = "Tabulator vstavimo z \t";
   $dollar = "Znak za dolar v besedilu uporabimo takole \$";
   $doublequote = "Znak za dvojni narekovaj je \"";

   echo $newline;
   echo $return;
   echo $tab;
   echo $dollar;
   echo $doublequote;
   echo "<hr>";

   echo nl2br("Prehod v novo vrsto izvedemo z \n");
   echo nl2br("Vrnitev na začetek vrstice izvedemo z \r");
   echo nl2br("Tabulator vstavimo z \t");
   echo nl2br("Znak za dolar v besedilu uporabimo \$");
   echo nl2br("Znak za dvojni narekovaj je \"");
?>
Prehod v novo vrsto izvedemo z Vrnitev na začetek vrstice izvedemo z Tabulator vstavimo z Znak za dolar v besedilu uporabimo takole $Znak za dvojni narekovaj je "
Prehod v novo vrsto izvedemo z
Vrnitev na začetek vrstice izvedemo z
Tabulator vstavimo z Znak za dolar v besedilu uporabimo $Znak za dvojni narekovaj je "

Funkcija nl2br() pred znake za novo vrstico vstavi oznako preloma vrstice v HTML.

Pozor: Znak \n sam po sebi v HTML ne povzroči vidnega preloma vrstice. Za prikaz preloma v brskalniku je običajno treba uporabiti funkcijo nl2br() ali oznako <br>.

Kreiranje večvrstičnega besedila z zapisom heredoc

Zapis heredoc je priročen za večvrstične nize. Deluje podobno kot niz v dvojnih narekovajih: posebna zaporedja delujejo, spremenljivke pa se razširijo.

  1. Najprej napišemo ime spremenljivke, znak =, nato zapis <<< in oznako.
  2. V naslednjih vrsticah napišemo besedilo.
  3. Na koncu v novo vrstico zapišemo isto oznako in jo zaključimo s podpičjem ;.
<?php
   $ime = "Janez";
   $znesek = 113;

   $besedilo = <<<TEKST
Pozdravljen, $ime!
Danes si zbral $znesek točk.
Prehod v novo vrsto izvedemo z \n.
Tabulator vstavimo z \t.
Znak za dolar zapišemo kot \$.
TEKST;

   echo nl2br($besedilo);
?>
Pozdravljen, Janez!
Danes si zbral 113 točk.
Prehod v novo vrsto izvedemo z
.
Tabulator vstavimo z .
Znak za dolar zapišemo kot $.

Primerjave

Pri delu z nizi je pomembno razlikovati med različnimi načini zapisa.

  • Enojni narekovaji so primerni za dobeseden zapis besedila.
  • Dvojni narekovaji so primerni takrat, ko želimo v nizu uporabiti spremenljivke ali posebna zaporedja znakov.
  • Heredoc je primeren za daljše ali večvrstično besedilo.

Izbira ustreznega načina zapisa je odvisna od tega, ali želimo le besedilo ali tudi obdelavo spremenljivk in posebnih znakov.

Najpogosteje uporabljene PHP funkcije za delo z nizi

PHP vsebuje veliko funkcij za obdelavo nizov. Med najpogosteje uporabljenimi so naslednje:

Funkcija Pomen Primer
strlen() Vrne dolžino niza. strlen("PHP")
str_word_count() Prešteje besede v nizu. str_word_count("To je primer")
strpos() Poišče položaj prve pojavitve podniza v nizu. strpos("Dober dan", "dan")
substr() Vrne del niza. substr("Programiranje", 0, 6)
str_replace() Zamenja del niza z drugim besedilom. str_replace("PHP", "JavaScript", "PHP je jezik")
strtolower() Pretvori niz v male črke. strtolower("POZDRAV")
strtoupper() Pretvori niz v velike črke. strtoupper("pozdrav")
trim() Odstrani presledke ali druge znake na začetku in koncu niza. trim(" besedilo ")
explode() Razdeli niz na polje glede na ločilo. explode(",", "Ana,Bor,Miha")
implode() Poveže elemente polja v en niz. implode(", ", $imena)
htmlspecialchars() Pretvori posebne HTML znake v varne entitete. htmlspecialchars($vnos)
nl2br() Pred znake nove vrstice vstavi oznako <br>. nl2br($besedilo)

Pomni: Funkcije za delo z nizi omogočajo preglednejšo in varnejšo obdelavo besedila. Posebej pomembna je funkcija htmlspecialchars(), kadar izpisujemo podatke, ki so bili vneseni v obrazec.

Priporočila

  • Za preprosto besedilo brez spremenljivk uporabljajmo enojne narekovaje.
  • Za nize s spremenljivkami ali posebnimi zaporedji uporabljajmo dvojne narekovaje.
  • Pri daljšem besedilu uporabljajmo zapis heredoc, saj je preglednejši.
  • Pri izpisu besedila v HTML je smiselno uporabljati funkcije, kot sta nl2br() in htmlspecialchars().
  • Za obdelavo nizov uporabljajmo vgrajene funkcije PHP, saj so krajše, preglednejše in zanesljive.

Pogoste napake

  • Niz ni pravilno zaključen z narekovajem.
  • Znotraj niza so uporabljeni enaki narekovaji brez pravilnega zapisa.
  • Pri enojnih narekovajih se pričakuje razširjanje spremenljivk, ki se v resnici ne izvede.
  • Posebna zaporedja znakov so uporabljena v enojnih narekovajih, kjer se večinoma ne obdelajo.
  • Pri izpisu v HTML se pričakuje, da bo znak \n samodejno povzročil prelom vrstice.
  • Večvrstični zapis heredoc ni pravilno zaključen.
  • Za obdelavo besedila se uporabljajo nepregledni ročni postopki namesto ustreznih funkcij za delo z nizi.

Pozor: Pri delu z nizi je treba razlikovati med tem, kako PHP obdela besedilo, in tem, kako se besedilo prikaže v HTML. Pravilno delovanje v programu še ne pomeni nujno pravilnega prikaza v brskalniku.