Poznávání PHP

Práce s řetězci

V dnešním díle si povíme o funkcích, které nám značně ulehčí práci při zpracovávání řetězců (textových hodnot). Nyní si ukážeme ty nejpoužívanější funkce.


addSlashes

addslashes( <text> )

Pomocí této funkce můžeme převést některé znaky, kterými mohou být uvozovky (", ') a zpětná lomítka (\) do podoby, kterou budeme vyžadovat například při ukládání do databáze, výpisu na stránce atd.

Příklad:


// Do proměnné $text uložíme řetězec s uvozovkami.
$text = 'Jeho jméno je "Ivan"';

// Výsledkem bude Jeho jméno je \"Ivan\".
echo addSlashes($text);


chr

chr( <číslo> )

Tato funkce vrátí specifický ASCII znak nacházející se na zvolené číselné pozici. ASCII tabulky znaků naleznete na adrese http://www.asciitable.com/ nebo zde a zde.

Příklad:


// Výsledkem bude znak zavináč (@).
echo chr(64);


crypt

crypt( <text> [, salt ] )

Pomocí této funkce můžeme zakódovat zvolenou textovou hodnotu podle Unixového algoritmu DES nebo jiného algoritmu, který je v systému právě k dispozici. V případě, že vyplníme i druhý nepovinný parametr, bude kódování založeno na této textové hodnotě. V opačném případě bude náhodně vygenerována hodnota vlastní.

Příklad:


// Do proměnné $text uložíme námi požadovaný text k zakódování.
$text = 'aleluja';

// Text zakódujeme s použitím druhého parametru - textu "jjuk".
echo crypt($text,"jjuk");

// Výsledkem bude textová hodnota "jjDjQUzxX669M".


explode

explode( <oddělovač> , <text> [, limit ] )

Pomocí této funkce můžeme rozdělit text pomocí zvoleného znaku (oddělovač) a uložit jej do pole. V případě, že vyplníme třetí nepovinný parametr limit, bude pole obsahovat zvolený počet prvků.

Příklad:


// Do proměnné $text uložíme jména.
$text = "Jiří,Petr,Josef,Adam,Honza";

// Proměnná $jmena bude obsahovat pole s jmény.
$jmena = explode(",",$text);

/* Výsledkem budou následující prvky pole:
Array ( [0] => Jiří [1] => Petr [2] => Josef [3] => Adam [4] => Honza ) 
*/


htmlEntities

htmlentities( <text> [, <quote_style> [, kódování ]] )

Pomocí této funkce můžeme převést HTML kód na jednotlivé entity. Tuto funkci upotřebíme například při převodu zdrojového kódu stránek apd. Druhý parametr slouží ke zvolení stylu uvozovek (jejich nahrazení):

Třetí parametr určuje jazykové kódování textu.

Příklad:


// Do proměnné $text uložíme textovou hodnotu.
$text = "<b><i>Testovací text</i></b>";

// Proměnná $data bude obsahovat převedený text.
$data = htmlentities($text);

/* Výsledkem bude následující text:
&lt;b&gt;&lt;i&gt;Testovac&iacute; text&lt;/i&gt;&lt;/b&gt;
*/

echo htmlentities('<b>Testovací "text"...</b>',ENT_NOQUOTES);

/* Výsledkem bude následující text:
&lt;b&gt;Testovac&iacute; "text"...&lt;/b&gt;
*/


html_entity_decode

html_entity_decode( <text> [, <quote_style> [, kódování ]] )

Tato funkce je přesný opak funkce htmlentities, která převede HTML data nazpět.

Příklad:


// Do proměnné $text uložíme jména.
$text = html_entity_decode("&lt;b&gt;&lt;i&gt;Testovac&iacute; text&lt;/i&gt;&lt;/b&gt;");

/* Výsledkem budou text "<b><i>Testovací text</i></b>". */


htmlspecialchars

htmlspecialchars( <text> [, <quote_style> [, kódování ]] )

Tato funkce je velmi podobná funkci htmlentities, ale umožňuje převést znaky jakými mohou být (<, >,&, ", apd.).

Příklad:


// Do proměnné $text uložíme odkaz.
$text = '<a href="http://www.php.net">PHP.net</a>';

/* Výsledkem budou text "&lt;a href=&quot;http://www.php.net&quot;&gt;PHP.net&lt;/a&gt;". */


implode

implode( <oddělovač> , <pole>)

Opak funkce explode, která umožňuje převést prvky pole do jednoho textu odděleného zvoleným znakem.

Příklad:


// Do proměnné $text uložíme pole se jmény.
$text = array("Jiří", "Petr", "Josef" , "Adam", "Honza");

/* Pole rozdělíme a necháme jednotlivé prvky oddělit čárkou. */
$data = implode(",", $text);

/* Výsledkem bude řetězec: "Jiří,Petr,Josef,Adam,Honza". */


md5

md5( <text> )

Funkce, která vrací MD5 hash zvoleného textu. Na této funkci je postavena také funkce md5_file, která vrátí MD5 hash zvoleného souboru.

Příklad:


// Do proměnné $heslo uložíme hodnotu "test".
$heslo = "test";

/* Porovnáme, zda se hashe shodují. */
if (md5($heslo) == "098f6bcd4621d373cade4e832627b4f6")
{
	echo "Heslo je správné !!!";
}

/* Výsledkem bude hodnota TRUE. */


nl2br

nl2br( <text> )

Pomocí této funkce můžeme nahradit ve zvoleném textu všechny nové řádky (Entery) HTML znakem "<BR />".


str_word_count

str_word_count ( <text> [, <formát>] )

Funkce, která umožňuje spočítat počet slov ve zvoleném textu. Druhý parametr určuje, co bude vráceno jako výsledek funkce. V případě, že druhý parametr necháme prázdný, bude vrácen počet slov v textu. Dosadit jako druhý parametr můžeme také následující hodnoty:


strlen

strlen( <text> )

Funkce, která vrací velikost zvoleného textu.

Příklad:


// Do proměnné $text uložíme hodnotu "Testovací text".
$text = "Testovací text";

/* Výsledkem bude hodnota 14. */
echo strlen($text);


strpos

strpos( <text> , <hledaný řetězec> )

Funkce, která vrací první pozici výskytu hledaného řetězce v textu. V případě, že se zde řetězec nacházet nebude, bude vrácena hodnota FALSE. Pro případné porovnávání použijte operátor "===" místo operátoru "==", jelikož tato funkce vrací také hodnoty 0 nebo "".

Příklad:


// Do proměnné $text uložíme hodnotu "Testovací text".
$text = "Testovací text";
$co = "text";

/* Výsledkem bude hodnota 10. */
echo strpos($text, $co);


strrchr

strrchr( <text> , <hledaný řetězec> )

Funkce, která vrací část posledního řetězce v hledaném textu. V případě, že se zde řetězec nacházet nebude, bude vrácena hodnota FALSE.".

Příklad:


// Do proměnné $text uložíme hodnotu "Testovací text".
$text = "Testovací text";
$co = " t";

/* Výsledkem bude hodnota "text". */
echo strrchr($text, $co);


strrpos

strrpos( <text> , <hledaný řetězec> )

Funkce, která vrací pozici posledního výskytu znaku v řetězci. V případě, že se zde řetězec nacházet nebude, bude vrácena hodnota FALSE. Pro případné porovnávání použijte operátor "===" místo operátoru "==", jelikož tato funkce vrací také hodnoty 0 nebo "".

Příklad:


// Do proměnné $text uložíme hodnotu "Testovací text".
$text = "Testovací text";
$co = "t";

/* Výsledkem bude hodnota 13. */
echo strrpos($text, $co);


strstr

strstr( <text> , <hledaný řetězec> )

Funkce, která vrací pozici prvního výskytu retězce v textu.

Příklad:


// Do proměnné $text uložíme hodnotu "Testovací text".
$text = "Testovací text";
$co = " ";

/* Výsledkem bude hodnota "text". */
echo strstr($text, $co);


strtolower

strtolower( <text> )

Funkce, která převede zvolený text na malá písmena.

Příklad:


$text = "TeSTovAcÍ teXt";

/* Výsledkem bude hodnota "testovací text". */
echo strtolower($text);


strtoupper

strtoupper( <text> )

Funkce, která převede zvolený text na velká písmena.

Příklad:


$text = "TeSTovAcÍ teXt";

/* Výsledkem bude hodnota "TESTOVACÍ TEXT". */
echo strtoupper($text);


substr

substr( <text> , <start> [, <délka>] )

Funkce, která vrací zvolený text podle zadané počáteční pozice a nepovinného parametru délky. V případě, že jako počáteční pozice je zadáno záporné číslo, začne funkce od konce.

Příklad:


$text = "TeSTovAcÍ teXt";

/* Vrátí řetězec "vAcÍ teXt". */
echo substr($text, 5);

/* Vrátí řetězec "Xt". */
echo substr($text, -2, 2);


trim

trim( <text> )

Funkce, která umožňuje odstranit z textu tabulátory (\t), nové řádky (\n) apd.

Příklad:


$text = "\t\tTestovací text \n   \t  ";

/* Vrátí řetězec "Testovací text". */
echo trim($text);



Pro tento díl to bude vše. V příštím díle budeme dále pokračovat v poznávání jazyka PHP.

Petr Rympler