vadnica-logo
Editor Moj Blog Moje storitve O projektu Telegram O meni O meni

PHP Nizi (Strings)

Niz je zaporedje znakov, ki ga v PHP-ju obdamo z dvojnimi (") ali enojnimi (') narekovaji. Ključno je, da niza ne začnete z enim in končate z drugim tipom narekovaja. Glavna razlika med njima je v tem, da dvojni narekovaji omogočajo neposredno vstavljanje spremenljivk (npr. "$ime") in posebnih ubežnih znakov (npr. \n za novo vrstico), medtem ko enojni narekovaji vse obravnavajo kot golo besedilo.

PRIMER
REZULTAT
Tu bo prikazan rezultat...

Pregled najpogostejših funkcij za delo z nizi

Za hitrejše in lažje upravljanje z besedilom imamo v PHP-ju na voljo zbirko vgrajenih funkcij. Spodnji seznam prikazuje osnovna orodja za delo z nizi, ki jih boste najpogosteje uporabljali:

  1. eval(): Oceni in izvede vsebino niza kot PHP kodo.
    Opozorilo: Funkcija je nevarna, če vanjo pridejo nepreverjeni podatki uporabnikov!
  2. strlen(): Vrne dolžino niza (število znakov).
  3. str_word_count(): Prešteje število besed v besedilu.
  4. strpos(): Poišče položaj prvega pojava določenega besedila.
  5. strtoupper() / strtolower(): Spremeni niz v velike ali male črke.
  6. str_replace(): Zamenja določene znake ali besede z drugimi.
  7. strrev(): Obrne niz znakov v nasprotno smer.
  8. trim(): Odstrani presledke ali določene znake z začetka in konca niza.
  9. explode(): Razbije niz v tabelo (array) glede na ločilo.
  10. substr(): Vrne določen del (izsek) niza.
  11. ubežni znaki (\): Omogočajo vstavljanje narekovajev, tabulatorjev in drugih posebnih znakov.

PHP Hitri pregled za nize (Strings)

Pregled vgrajenih PHP funkcij za delo z nizi. Spodnje primere lahko neposredno kopirate v svoj urejevalnik za testiranje:

Najdeno: -
Ime Opis Primer (Koda za testiranje)
addcslashes() Vrne niz s poševnicami (backslash) pred določenimi znaki (C-style). echo addcslashes("Borut", "A..Z");
addslashes() Vrne niz s poševnicami pred znaki, ki jih je treba ubežati (npr. narekovaji). echo addslashes("O'Reilly");
bin2hex() Pretvori niz binarnih podatkov v šestnajstiški (hex) zapis. echo bin2hex("PHP");
chop() Vzdevek za rtrim() - odstrani presledke ali znake z desne strani niza. echo chop("Test ");
chr() Vrne posamezen znak iz podane ASCII vrednosti. echo chr(65);
chunk_split() Razdeli niz na manjše dele določene dolžine (uporabno za base64 prenose). echo chunk_split("ABCDEF", 2, "-");
convert_uudecode() Dekodira niz, ki je bil kodiran z algoritmom uuencode. echo convert_uudecode("#44HP``\n");
convert_uuencode() Kodira niz z uporabo algoritma uuencode. echo convert_uuencode("Test");
count_chars() Vrne statistiko o uporabi vseh znakov v nizu. print_r(count_chars("Borut", 1));
crc32() Izračuna 32-bitni ciklični redundančni pregled (CRC) za niz. echo crc32("Vadnica");
crypt() Enosmerno kriptiranje niza (hash). echo crypt("geslo123", "sol");
echo() Izpiše enega ali več nizov neposredno v izhod. echo "Živjo", " svet";
explode() Razbije niz v tabelo (array) glede na določeno ločilo. print_r(explode(",", "a,b,c"));
fprintf() Zapiše oblikovan niz neposredno v odprto datoteko. $f = fopen("t.txt", "w"); fprintf($f, "%d", 10);
get_html_translation_table() Vrne tabelo prevodov, ki jo uporabljata htmlentities() in htmlspecialchars(). print_r(get_html_translation_table(HTML_SPECIALCHARS));
hex2bin() Pretvori šestnajstiški zapis nazaj v binarni niz znakov. echo hex2bin("504850");
html_entity_decode() Pretvori HTML entitete (npr. &lt;) nazaj v znake (<). ▶ Primer kode
htmlentities() Pretvori vse znake, ki so primerni, v HTML entitete. ▶ Primer kode
htmlspecialchars() Pretvori posebne znake (kot so <, >, &) v HTML entitete. ▶ Primer kode
htmlspecialchars_decode() Pretvori posebne HTML entitete nazaj v znake. ▶ Primer kode
implode() Združi elemente tabele v en niz z uporabo ločila (isto kot join). echo implode("-", [1, 2, 3]);
join() Vzdevek za implode() - združi tabelo v niz. echo join(" ", ["Borut", "kodira"]);
lcfirst() Pretvori prvo črko niza v malo črko. echo lcfirst("PHP");
levenshtein() Izračuna Levenshtein-ov razkorak (razdaljo) med dvema nizoma. echo levenshtein("mačka", "točka");
localeconv() Vrne nastavitve za formatiranje števil in denarja glede na lokalizacijo. print_r(localeconv());
ltrim() Odstrani presledke ali določene znake z leve strani niza. echo ltrim(" niz");
md5() Izračuna MD5 zgoščeno vrednost (hash) niza. echo md5("test");
md5_file() Izračuna MD5 zgoščeno vrednost za celotno datoteko. echo md5_file("index.php");
metaphone() Izračuna fonetični ključ niza (kako beseda zveni v angleščini). echo metaphone("programming");
nl2br() Vstavi HTML prelome vrstic (<br />) pred vse nove vrstice v nizu. echo nl2br("Prva\nDruga");
number_format() Formatira število s tisočicami in poljubnim številom decimalk. echo number_format(1500.75, 2, ",", ".");
ord() Vrne številsko ASCII vrednost prvega znaka v nizu. echo ord("A");
parse_str() Razčleni niz (kot pri URL poizvedbi) v spremenljivke. parse_str("ime=Borut", $izhod); print_r($izhod);
print() Izpiše niz (podobno kot echo, a vrne 1). print("Tekst");
printf() Izpiše oblikovan niz po določenih pravilih (%s, %d itd.). printf("Leta: %d", 52);
preg_replace() Išče vzorce in jih zamenja z novim besedilom. echo preg_replace("/\d+/", "X", "Koda123");
preg_match() Preveri, ali se vzorec pojavi v nizu (vrne 0 ali 1). echo preg_match("/php/i", "PHP koda");
preg_match_all() Poišče vsa ujemanja vzorca v nizu in jih shrani v tabelo. preg_match_all("/\d/", "1a2b3c", $m); print_r($m);
preg_split() Razdeli niz v tabelo glede na določen vzorec (Regex). print_r(preg_split("/[\s,]+/", "a, b c"));
preg_grep() Vrne elemente tabele, ki ustrezajo določenemu vzorcu. print_r(preg_grep("/^p/", ["php", "html", "python"]));
preg_quote() Doda ubežne znake (backslash) posebnim Regex znakom. echo preg_quote("usd$");
quoted_printable_decode() Dekodira niz iz zapisa quoted-printable v 8-bitni niz. echo quoted_printable_decode("Borut=3DA");
quoted_printable_encode() Pretvori 8-bitni niz v zapis quoted-printable. echo quoted_printable_encode("Borut=");
quotemeta() Doda poševnico pred vse posebne znake (npr. . \ + * [ ^ ] ( $ )). echo quotemeta("Zdravo. Kako si?");
rtrim() Odstrani presledke ali določene znake z desne strani niza. echo rtrim("niz ");
setlocale() Nastavi področne nastavitve (jezik, denar, čas). echo setlocale(LC_ALL, "sl_SI.utf8");
sha1() Izračuna SHA-1 zgoščeno vrednost niza. echo sha1("koda");
sha1_file() Izračuna SHA-1 zgoščeno vrednost za datoteko. echo sha1_file("index.php");
similar_text() Izračuna stopnjo podobnosti med dvema nizoma v odstotkih. echo similar_text("Borut", "Gorut", $p); echo " ($p%)";
soundex() Izračuna soundex ključ niza (fonetično iskanje priimkov). echo soundex("Smith");
sprintf() Vrne oblikovan niz (namesto da bi ga izpisal). $s = sprintf("Cena: %d€", 10); echo $s;
sscanf() Razčleni vhodni niz glede na podano obliko (format). sscanf("ID: 456", "ID: %d", $id); echo $id;
str_contains() Preveri, če niz vsebuje določen podniz (Novo v PHP 8.0). var_dump(str_contains("Vadnica PHP", "PHP"));
str_ends_with() Preveri, če se niz konča z določenim podnizom (Novo v PHP 8.0). var_dump(str_ends_with("slika.png", ".png"));
str_getcsv() Razčleni CSV niz v tabelo. print_r(str_getcsv("Borut,52,Slovenija", ",", '"', "\\"));
str_ireplace() Zamenja podnize (neobčutljivo na velike/male črke). echo str_ireplace("php", "JS", "Učim se PHP");
str_pad() Dopolni niz do določene dolžine z drugim nizom. echo str_pad("1", 3, "0", STR_PAD_LEFT);
str_repeat() Ponovi niz določeno število krat. echo str_repeat("X", 5);
str_replace() Zamenja vse pojavitve iskanega podniza z novim nizom. echo str_replace("rdeča", "modra", "rdeča barva");
str_rot13() Izvede ROT13 transformacijo na nizu. echo str_rot13("PHP");
str_shuffle() Naključno premeša vse znake v nizu. echo str_shuffle("Borut");
str_split() Razdeli niz v tabelo, kjer je vsak element določene dolžine. print_r(str_split("KODA", 2));
str_starts_with() Preveri, če se niz začne z določenim podnizom (Novo v PHP 8.0). var_dump(str_starts_with("https://v", "https"));
str_word_count() Prešteje število besed v nizu. echo str_word_count("PHP je super");
strcasecmp() Binarna primerjava dveh nizov (neobčutljivo na velike/male črke). echo strcasecmp("Test", "test");
strchr() Vzdevek za strstr() - najde prvo pojavitev znaka. echo strchr("uporabnik@mail.com", "@");
strcmp() Binarna primerjava dveh nizov (občutljivo na velike/male črke). echo strcmp("Test", "Test");
strcoll() Primerjava dveh nizov glede na lokalizacijo (locale). echo strcoll("a", "b");
strcspn() Vrne dolžino začetnega dela niza, ki NE vsebuje podanih znakov. echo strcspn("Borut123", "0123456789");
strip_tags() Odstrani HTML in PHP značke iz niza. echo strip_tags("Krepko");
stripcslashes() Odstrani poševnice, dodane s funkcijo addcslashes(). echo stripcslashes("B\orut");
stripslashes() Odstrani poševnice, dodane s funkcijo addslashes(). echo stripslashes("O'Reilly");
stripos() Najde položaj prve pojavitve podniza (neobčutljivo na velike/male črke). echo stripos("Avto", "v");
stristr() Vrne del niza od prve pojavitve podniza naprej (neobčutljivo na velike/male črke). echo stristr("Test@Domena", "d");
strlen() Vrne skupno število znakov (dolžino) niza. echo strlen("Koda");
strnatcasecmp() Primerjava dveh nizov z "naravnim" algoritmom (neobčutljivo na velike/male črke). echo strnatcasecmp("slika10.png", "slika2.png");
strnatcmp() Primerjava dveh nizov z "naravnim" algoritmom (občutljivo na velike/male črke). echo strnatcmp("10", "2");
strncasecmp() Primerja prvih N znakov dveh nizov (neobčutljivo na velike/male črke). echo strncasecmp("Borut", "BOR", 3);
strncmp() Primerja prvih N znakov dveh nizov (občutljivo na velike/male črke). echo strncmp("Koda1", "Koda2", 4);
strpbrk() Išče niz za katerim koli znakom iz podanega nabora. echo strpbrk("Borut", "ut");
strpos() Najde položaj prve pojavitve podniza (občutljivo na velike/male črke). echo strpos("Program", "g");
strrchr() Najde zadnjo pojavitev znaka v nizu in vrne preostanek. echo strrchr("pot/do/datoteke.txt", "/");
strrev() Obrne niz znakov (zadnji postane prvi). echo strrev("ABC");
strripos() Najde položaj zadnje pojavitve podniza (neobčutljivo na velike/male črke). echo strripos("abcABC", "a");
strrpos() Najde položaj zadnje pojavitve podniza (občutljivo na velike/male črke). echo strrpos("abcABC", "a");
strspn() Vrne dolžino začetnega dela niza, ki vsebuje SAMO podane znake. echo strspn("123abc", "0123456789");
strstr() Vrne del niza od prve pojavitve podniza naprej (občutljivo na velike/male črke). echo strstr("ime@domena.com", "@");
strtok() Razbije niz na manjše dele (žetone) glede na ločila. $t = strtok("a b", " "); echo $t;
strtolower() Pretvori celoten niz v male črke. echo strtolower("MALE");
strtoupper() Pretvori celoten niz v velike črke. echo strtoupper("velike");
strtr() Prevede določene znake ali zamenja podnize v nizu. echo strtr("hallo", "a", "e");
substr() Vrne določen del (podniz) iz večjega niza. echo substr("Slovenija", 0, 3);
substr_compare() Binarna primerjava dveh delov niza od določenega odmika dalje. echo substr_compare("abc", "bc", 1, 2);
substr_count() Prešteje, kolikokrat se določen podniz pojavi v nizu. echo substr_count("banana", "an");
substr_replace() Zamenja del niza z drugim nizom na določenem mestu. echo substr_replace("Koda", "X", 0, 1);
trim() Odstrani presledke in druge znake z začetka in konca niza. echo trim(" niz ");
ucfirst() Pretvori prvo črko celotnega niza v veliko črko. echo ucfirst("tekst");
ucwords() Pretvori prvo črko vsake besede v nizu v veliko črko. echo ucwords("živjo svet");
vfprintf() Zapiše oblikovan niz (z argumenti v tabeli) v datoteko. $f = fopen("t.txt", "w"); vfprintf($f, "%s", ["OK"]);
vprintf() Izpiše oblikovan niz z argumenti, ki so podani v tabeli. vprintf("Leta: %d", [52]);
vsprintf() Vrne oblikovan niz z argumenti, ki so podani v tabeli. $s = vsprintf("%s %s", ["A", "B"]); echo $s;
wordwrap() Prelomi niz na določeno število znakov z uporabo ločilnega znaka. echo wordwrap("Zelo dolg tekst", 5);

Vas zanima ozadje? Oktalni in heksadecimalni zapisi v nizih

Pri delu z nizi boste včasih naleteli na zapise, kot sta \120 (oktalno) ali \x50 (heksadecimalno). Računalniki v ozadju ne razumejo črk, ampak samo številke. Ti zapisi omogočajo programerjem, da neposredno v besedilo vstavijo posebne ukaze, skrite simbole ali znake iz standardne ASCII tabele, ne da bi morali tipkati dejanske črke.

💡 Kdaj vam to pride prav?
Čeprav v vsakodnevnem PHP-ju teh kod ne boste pisali pogosto, so ključnega pomena, ko boste preko Arduina ali drugih mikrokrmilnikov pošiljali surove podatke iz senzorjev na spletno stran, pri nastavljanju pravic na Linux strežnikih (npr. chmod 755) ali pri naprednem reševanju varnostnih izzivov.
Heksadecimalni zapis Omogoča vstavljanje znakov v niz s pomočjo šestnajstiških kod (npr. \x50 za črko P). ▶ Primer kode
Oktalni zapis Omogoča vstavljanje znakov v niz s pomočjo osmiških kod (npr. \120 za črko P). ▶ Primer kode