Řetězce

Řetězcem se nazývá jakákoli posloupnost znaků - slovo, věta, ale i delší text. Vzhledem k tomu, že většinu obsahu stránek tvoří texty, jsou příkazy pro práci s řetězci často zapotřebí, například při kontrole zadaných údajů, vyhledávání textu a podobně.


Řetězec jako pole znaků

S řetězcem je možné také pracovat jako s polem znaků (jakoby očíslovanými písmeny), indexy jednotlivých znaků se zapisují do hranaté závorky a jsou číslované od nuly. Například:
$a="kolotoč"; //do proměnné $a uložíme slovo kolotoč, protože je to řetězec, musí být v uvozovkách
echo $a[0]; //vypíše písmeno k, písmena řetězce jsou číslovaná od nuly
$a[3]="e"; //čtvrté písmeno proměnné $a bude nahrazeno písmenem e, v $a bude tedy uloženo slovo koletoč

Pilnější studenti si nejspíš vzpomenou na FOR cyklus z minulé lekce, pro práci s řetězcem coby polem znaků bychom samozřejmě tento cyklus mohli také využívat. Častěji ale programátoři PHP využívají speciální příkazy (procedury, funkce) pro práci s řetězci. Těchto příkazů je mnoho, kompletní přehled je možné najít v manuálu PHP, my uvedeme jen nejčastěji používané.

Příkazy pro práci s řetězci

Nejprve si z úvodních lekcí připomene operátor . (tečka) pro spojování řetězců. Zkuste odhadnout, co se vypíše následujícími příkazy:
$a="maly "; $b="velky "; echo "$a.$b <br />";
$c="muz"; $d=$a.$b.$c; echo $d;


Další používané příkazy pro práci s řetězci jsou například:
strlen($str) - délka řetězce, například echo strlen("kladivo"); vypíše číslo 7
strpos($str1,$str2) - určení první pozice řetězce $str2 v řetězci $str1, například $a="velbloud"; echo strpos($a,"l"); vypíše číslo 2 (znaky jsou číslované od nuly)
substr($str,zacatek,delka); - výběr podřetězce od daného počátku dané délky, například $a="velbloud"; echo substr($a,3,5); vypíše řetězec bloud
substr_count ($str1,$str2) - určuje počet výskytů řetězce $str2 v řetězci $str1, například echo substr_count("dromedar","r"); vypíše číslo 2


Úkoly:

Úkol (4 body)

Partnerský test ze 6. lekce upravte tak, aby uživatelé místo čísel zadávali přímo jména osob. Užitím poslední z uvedených funkcí bude řešení snadné. Trochu složitější bude výpočet výsledného čísla pokud první součet bude dvojciferný, budete potřebovat operaci % (zbytek po dělení - viz 2. lekce).

Název školy:Základní škola, Hradec Králové, M. Horákové 258
Název projektu:EU peníze školám
Číslo projektu:CZ.1.07/1.4.00/21.2575
Téma:Programování v PHP
Název:VY_32_INOVACE_09_10A_PHP9
Autor:Pavel Petr
Použité zdroje: Není-li uvedeno jinak, jsou všechny ilustrační obrázky dílem autora.