9.13. Szövegkezelő függvények

Default book
Az alábbiakban a leggyakrabban használt szövegkezelő függvényeket fogjuk tárgyalni és példákat is mutatok rájuk.

strlen(string $txt): int - A string hosszát adja vissza

strtolower(string $txt ) : string - A paraméter string kisbetűs változatát adja vissza.

strtoupper(string $txt ): string - A paraméter string nagybetűs változatát adja vissza

trim( $txt ): string - A string elejéről és végéről leszedi a whitespace karaktereket. Sajnos az    és ehhez hasonlóakat nem! pl.

$txt = "     Hello!    ";
$txt = trim($txt); //eredménye "Hello!"

Az ltrim() - balról vágja csak le a whitespace-eket, az  rtrim() pedig jobbról! A paraméterezés ugyanaz

substr($txt, $honnan, $hossz): string - A paraméterként megadott stringből kivágja a $honnan által megadott helytől számított $hossz számú karaktert és adja vissza.

Megjegyzések:

  • A $txt első karaktere a 0. karakter.
  • Ha a $hossz paraméter nem létezik, akkor a szöveg végéig adja vissza a szöveget
  • Ha $honnan negatív, akkor az utolsó karaktertől számítunk visszafelé annyi karaktert, amekkora a szám.
  • Ha a $hossz negatív, akkor a string végétől visszaszámolunk annyi karaktert, és az elejétől, vagy a honnan által megadott helytől kezdődő stringet adja vissza.
$rest = substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns false
$rest = substr("abcdef", -3, -1); // returns "de"

str_replace($mit, $mire, $szoveg [, $db] ): string - A $szoveg stringben (vagy tömbben) megkeresi a $mit értéket és kicseréli a $mire értékre.

  • Ha a $szöveg tömb, akkor a cserék a tömb összes elemére lefutnak.
  • A $mire és a $mire lehet tömb is. Ekkor A $mit tömb megfelelő elemét cseréli a $mire tömb megfelelő elemére. Ha a $mire kevesebb elemből áll, akkor a maradékot üres stringre cseréli
  • Ha a $db meg van adva, akkor annyiszor cserél, amennyi a szám értéke, egyébként az összes előfordulást cseréli.

Példa: Egy string elérési útvonalat tárol.

  • Az útvonal végére mindenképpen '/' jelet kell tenni, még akkor is ha ott nincsen.
  • A '\' jeleket át kell alakítani '/'
$path = "C:\\valami/alkonyvtar\\file_tarolo";
$path = str_replace('\\','/',$path);      //Kicseréli az összes '\\' jelet '/' jelre
if(substr($path,-1) !="/") $path .= "/";  //Végére kerül egy '/' jel, ha nincsen ott

str_ireplace() - ugyanaz, mint az str_replace(), de kisbetű/nagybetű független

str_contains($szoveg, $keresendo): bool - A $szoveg-ben létezik-e a keresett szövegrész. Ha létezik, a visszaadott érték True, különben False

explode($elvalaszt, $szoveg, $limit): array - az $elvalaszt változóval megadott helyen vágja szét a $szöveg-et annyi darabra, amennyi a $limit paraméterrel meg van adva. Ha a $limit 0, akkor csak egyszer vág, azaz két részre vágja a szöveget. Ha $limit negatív, akkor az utolsó $limit darabot nem vágja szét.

<?php
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
print $pieces[0]; // piece1
print $pieces[1]; // piece2
?>

implode($elvalaszto, array $szovegek) : string - A $szovegek tömb elemeit az $elválasztó jelet közé téve egy stringet állít elő.

chr(code): string - egy karakter hosszú stringet állít elő a karakter ASCII kódjából.

crypt($szoveg, [$so]): string - A Unix DES algoritmusát felhasználva elkódol egy stringet. A $so paramétert arra szokás használni, hogy nehezítse a visszafejtést, de nem kötelező, de ekkor könnyebb lesz a kódot visszafejteni.

password_hash($szoveg, $alg, $options): string - Egy elkódolt jelszóval tér vissza. Kompatibilis az crypt() függvénnyel, de jobb kódot ad vissza. Egy irányú kódolás, tehát az adatbázisban az elkódolt jelszót használják és amikor a beírt jelszót kell ellenőrizni, akkor azt is elkódolják és így hasonlítják össze az adatbázisban lévő tárolt jelszóval.

strpos($szoveg, $keresett[, $honnan] ): int - A $szoveg-ben keresi a $keresett string első előfordulását. Ha a $honnan paraméter meg van adva, akkor átlépi az első megadott számú karaktert és csak utána keres.

A visszaadott érték az első előfordulásnak a string elejétől számított karakterek száma. Ha a keresett string a teljes szöveg elején van, akkor a visszaadott érték 0. Ha nincsen  a keresett string, akkor a visszaadott érték a false. Mivel a két érték összekeverhető, ezért a === összehasonlító operátort kell használni.

if(0 === strpos("szöveg", "sz")){
   echo "Az elején van a szöveg";
}

strrpos() - a szöveg végéről kezdi a keresést. Ugyanezek kis/nagybetű érzéketlen módon: stripos(), strripos()

ord($char) : int - Visszaadja a karakter ASCII kódját. Ha a paraméter string, akkor az első karakter ASCII kódját adja vissza.

htmlentities($szoveg, $opcio) :string - A stringben lévő TAG-ek és más speciális karaktereket elkódol html entity-vé. &hexakód; alakúak lesznek a speciális karakterek.

Ez ugyanaz, mint a htmlspecialchars() függvény.

html_entity_decode($szoveg, $opciok): string - visszakódolja az eredeti formára az elkódolt stringet.

strip_tags($szöveg [, $kivagandok]): string - A függvény kivágja a szövegből a html és PHP tag-ek kódját. ha a kivágandót egy tömbben adjuk meg, akkor még azokat is kivágja.

str_pad($txt, $hossz [,$kiegeszit]): string - Kiegészíti a szöveget a megadott hosszúságra a megadott $kiegészít stringgel. A $kiegeszit nem kötelező, akkor az alapértelmezett értéke a szóköz.

<?php
$input = "Alien";
print str_pad($input, 10);                                  // produces "Alien     "
print str_pad($input, 10, "-=", STR_PAD_LEFT);  // produces "-=-=-Alien"
print str_pad($input, 10, "_", STR_PAD_BOTH);   // produces "__Alien___"
print str_pad($input, 6 , "___");                          // produces "Alien_"
?>

A stringekkel kapcsolatos összes függvény leírása itt található: https://www.php.net/manual/en/ref.strings.php