PHP String függvények (Szöveg karaktereinek, szavainak megszámlálása, szöveg keresése, cseréje, nagy-, kisbetűssé alakítása, visszafele kiíratása)
Ebben a leckében több hasznos PHP String függvényt fogunk bemutatni, ami nagyban megkönnyíti a szövegekkel való munkát PHP-ban. Mutatunk olyan függvényt, amely megszámolja a szöveg karaktereinek, szavainak számát, amely visszafele jeleníti meg a szöveget, amely egy konkrét szöveget keres a Stringben, amely egy szót lecserél a Stringben és olyat, amely kis- vagy nagybetűssé teszi az egész szöveget.
String karaktereinek száma PHP-ban
Először nézzük meg talán az egyik leghasznosabb String függvényt, mely megszámolja egy szöveg karaktereinek számát.
Szintaxis
strlen("SZÖVEG"/VÁLTOZÓ);
Code language: PHP (php)
A szöveg karaktereinek hosszát az „strlen” függvény adja vissza, mely egy paramétert vár, magát a szöveget, vagy a változót, amelybe a szöveget tároljuk.
Példa szöveg karaktereinek megszámlálására:
PHP kód
<?php
echo strlen("Ezt számold meg!") . "<br>";
echo strlen("Ezt szamold meg!");
?>
Code language: HTML, XML (xml)
Eredmény
17
16
Ha sajátkezűleg leszámoljuk, hogy a fent megadott szöveg hány karakterből áll, akkor eltérést láthatunk a megjelenített eredményhez képest.
Az strlen() valójában a byte-ok számát adja vissza, nem a karakterek számát.
Ebből a tulajdonságából következik, hogy egy angol nyelvű szövegnél megfelelően fogja visszaadni a karakterek számát, de a magyar ékezetes betűk bezavarják.
String szószámláló PHP-ban
A karakterek után próbáljuk meg megszámolni a szavakat.
Szintaktika
str_word_count("SZÖVEG"/VÁLTOZÓ);
Code language: PHP (php)
A szintaxisa ugyanúgy néz ki, mint a karakterszámláló, csak a függvényneve változik.
Példa szavak megszámlálására PHP-ban:
PHP kód
<?php
echo str_word_count("Ezt számold meg!") . "<br>";
echo str_word_count("Ezt szamold meg!");
?>
Code language: HTML, XML (xml)
Eredmény
4
3
Ahogy láthatjátok a szavak megszámlálását is megzavarják a magyar karakterek.
Szöveg keresése String-ben
Most pedig nézzünk meg egy igen hasznos funkciót, mely segítségével könnyedén ellenőrizni tudjuk, hogy egy adott szó, vagy karakterek szerepelnek-e a megadott String-ben. Ez a függvény azt adja vissza, hogy a keresett szó első karaktere milyen pozícióban (hanyadik helyen) található.
Szintaxis
strpos(MIBEN, MIT);
Code language: PHP (php)
Ez a függvény két paramétert vár, első helyre azt, hogy miben keressen, ide megadhatjuk magát a szöveget vagy egy változót is, a második helyre pedig azt, hogy mit keressen, természetesen ide is jöhet változó vagy konkrét szöveg.
Példa szöveg keresésére függvénnyel PHP-ban:
PHP kód
<?php
echo strpos("Ezt számold meg!", "számold") . "<br>";
echo strpos("Ezt szamold meg!", "szamold");
?>
Code language: HTML, XML (xml)
Eredmény
4
4
Fenti példában megvizsgáltuk, hogy az „strpos” függvényt vajon bezavarja-e az ékezet vagy sem. Kis egyszerű tesztünk eredménye, hogy nem. Mind a két esetben megtalálta a keresett szót, függetlenül attól, hogy volt-e benne ékezet vagy sem.
A függvény azért a 4 értékeket adta vissza, mert a negyedik sorszámmal rendelkező karakternél kezdődik el a keresett szó kiíratása. (Nulladik helyen van az „E”, elsőn a „z”, másodikon a „t”, harmadikon a szóköz, míg a negyediken a keresett szó első karaktere.)
Szavak cseréje PHP-ban
Most pedig következzen egy újabb hasznos függvény, mely segítségével konkrét szavakat tudunk lecserélni egy általunk kiválasztottra egy stringben.
Szintaktika
str_replace(MIT, MIRE, HOL);
Ez a PHP függvény három paramétert vár, első helyére azt, hogy mit szeretnénk lecserélni, a második helyére azt, hogy mire szeretnénk lecserélni, a harmadik helyére meg azt, hogy miben, hol. Mind a három paramétert megadhatjuk szöveggel vagy változóval.
Példa szöveg hátrafele kiíratására:
PHP kód
<?php
echo str_replace("cseréld", "hozd", "Ezt cseréld le!") . "<br>";
echo str_replace("csereld", "hozd", "Ezt csereld le!");
?>
Code language: HTML, XML (xml)
Eredmény
Ezt hozd le!
Ezt hozd le!
Ez is tökéletesen működik magyar nyelvű szövegekkel.
String kiíratása visszafele
Ez inkább egy olyan függvény, amely használatára keveset van szükségünk, de azért hasznos ismerni.
Szintaktika
strrev("SZÖVEG"/VÁLTOZÓ);
Code language: PHP (php)
Példa szöveg hátrafele kiíratására
PHP kód
<?php
echo strrev("Ezt írd visszafele!") . "<br>";
echo strrev("Ezt ird visszafele!");
?>
Code language: HTML, XML (xml)
Eredmény
!elefazssiv dr�� tzE
!elefazssiv dri tzE
Láthatjátok, hogy az ékezetes karakterek megint bezavarják a PHP függvényt, míg ha ékezet nélkül dolgozunk, akkor semmilyen probléma nem lép fel.
Szöveg nagybetűssé alakítása PHP-ban
Arra is lehetőségünk van, hogy egy szöveg összes karakterét nagybetűssé alakítsuk.
Szintaktika
strtoupper("SZÖVEG"/VÁLTOZÓ);
Code language: JavaScript (javascript)
Az „strtoupper” után megadjuk a szöveget vagy a változót, amit szeretnénk nagybetűssé alakítani.
Példa szöveg nagybetűssé alakítására
PHP kód
<?php
echo strtoupper("Ezt alakítsd naggyá!") . "<br>";
echo strtoupper("Ezt alakitsd naggya!");
?>
Code language: HTML, XML (xml)
Eredmény
EZT ALAKíTSD NAGGYá!
EZT ALAKITSD NAGGYA!
Ez a PHP függvényt is bezavarják a magyar ékezetes karakterek, így azokat nem alakítják naggyá.
Szöveg kisbetűssé alakítása PHP-ban
Nemcsak nagybetűssé, hanem kisbetűssé is alakíthatjuk a szövegeket PHP-ban.
Szintaktika
strtolower("SZÖVEG"/VÁLTOZÓ);
Code language: JavaScript (javascript)
Az „strtolower” után megadjuk a szöveget vagy a változót, amit szeretnénk kisbetűssé alakítani.
Példa szöveg kisbetűssé alakítására
PHP kód
<?php
echo strtolower("EZT ALAKÍTSD KICSIVÉ!") . "<br>";
echo strtolower("EZT ALAKITSD KICSIVE!");
?>
Code language: HTML, XML (xml)
Eredmény
ezt alakÍtsd kicsivÉ!
ezt alakitsd kicsive!
És az ékezetes betűk kicsivé alakítás során is bekavarnak.
Konklúzió
Nagyon sok hasznos PHP függvény van, amelyeket nem kell leprogramoznunk, hanem alapból elérhetőek, ha a String-ekkel kell műveleteket végeznünk, ám sajnos egy részük nem kompatibilis a magyar karakterekkel. Ettől függetlenül angol nyelvű szövegek esetén erősen ajánlott használni, illetve olyan esetekben is, amikor magyarul írunk, de nem használunk ékezetet. Továbbá fent láthattátok, hogy vannak olyan függvények, amelyeket nem befolyásolnak az ékezetes karakterek, így azokat is nyugodt szívvel lehet használni.