PHP – formátování řetězců
PHP - formátování řetězců
V této části se budeme zabývat relativně podrobně formátováním řetězců v PHP. Kdy se nám může formátování řetězců hodit? Například při generování loginů, jako jednoznačných identifikátorů uživatelů, nebo při formátování vstupu od uživatele. Každá aplikace tohoto typu musí tyto kontroly provádět. A to alespoň do té míry aby nesprávné zadání nezpůsobilo havárii systému nebo nesprávné výstupní zpracování případného výpisu zadaných dat.
květen ’06
Střední průmyslová škola Bruntál
2
PHP - formátování řetězců
Funkce substr () • Vrací podřetězec podle zadaného intervalu. string substr ( string string, int start [, int length] ) • •
•
string string – je vstupní řetězec z něhož se bude extrahovat výsledek. int start – vyjadřuje pořadí znaku ve formátovaném řetězci, od kterého se bude ořezávat. Číslován je od nuly. [, int length] – je délka podřetězce od startovního znaku
Zdroj: http://php.ftp.cvut.cz/manual/cs/function.substr.php
květen ’06
Střední průmyslová škola Bruntál
3
PHP - formátování řetězců
Příklady: květen ’06
s řetězci", 1)."
"; s řetězci", 5, 11)."
"; s řetězci", 0, 5)."
"; s řetězci", -1)."
"; s řetězci", -7)."
"; s řetězci", -10, 4)."
";
Střední průmyslová škola Bruntál
4
PHP - formátování řetězců
Funkce substr_replace () • Funguje podobně jako substr () s tím, že vybraný podřetězec nahradí jiným. string substr_replace ( string string, string replacement, int start [, int length] ) •
string replacement – řetězec který má být substituován. Délka je libovolná. Ostatní parametry viz. předchozí fce.
Zdroj: http://www.php.net/manual/cs/function.substr-replace.php
květen ’06
Střední průmyslová škola Bruntál
5
PHP - formátování řetězců
Příklady:
květen ’06
'Br.', 0)."
"; 'SPŠ ', 0, 0)."
"; ' 792 01', 7, -1)."
"; 'Á', -2, -1)."
"; 'x', -6, -1)."
";
Střední průmyslová škola Bruntál
6
PHP - formátování řetězců
Funkce substr_count () • Tato funkce spočítá počet výskytů podřetězce ve vstupní řetězci. int substr_count ( string haystrack, string needle ) • •
string haystrack – původní řetězec. string needle – zde zadáte řetězec, jehož počet má být vypsán.
Zdroj: http://www.php.net/manual/cs/function.substr-replace.php
květen ’06
Střední průmyslová škola Bruntál
7
PHP a MySQL - formátování času
Příklady:
květen ’06
substr_count("Ahoj jak se máte?", "?"); substr_count("Ahoj jak se máte?", "Ahoj"); substr_count("Ahoj jak se máte?", "e a"); - proč? substr_count("Ahoj jak se máte?", (""); - proč?
Střední průmyslová škola Bruntál
8
PHP - formátování řetězců
Funkce str_pad () • Doplní řetězec na určitou délku string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] ) • • • •
string input – původní řetězec. string pad_lenght – délka nového řetězce. pad_string – definice posloupnosti znaků, které se mají doplnit na požadovanou délku pad_type – způsob doplněníní, respektive umístění. • • •
STR_PAD_LEFT STR_PAD_BOTH STR_PAD_RIGHT
Zdroj: http://www.php.net/manual/cs/function.str-pad.php
květen ’06
Střední průmyslová škola Bruntál
9
PHP a MySQL - formátování času
Příklady: "; // vypíše "Ahoj " není zadán řetězec - doplní se nulami echo str_pad("Ahoj", 8, " ", STR_PAD_RIGHT)."
"; // vypíše "Ahoj " není zadán řetězec doplní se nulami echo str_pad("Ahoj", 9, "000", STR_PAD_LEFT)."
"; // "00000Ahoj" echo str_pad("Ahoj", 10, "+", STR_PAD_BOTH)."
"; // "+++Ahoj+++" echo str_pad("Ahoj", 9, "", STR_PAD_LEFT)."
"; // Zamyslete se nad tím jak dopadne výstup zde? ?>
květen ’06
Střední průmyslová škola Bruntál
10
PHP - formátování řetězců
Funkce str_pad () • Doplní řetězec na určitou délku string str_repeat ( string input, int multiplier )
• •
string input – řetězec, který chceme aby se opakoval. int multiplier – počet opakování řetězce.
Zdroj: http://www.php.net/manual/cs/function.str-repeat.php
květen ’06
Střední průmyslová škola Bruntál
11
PHP a MySQL - formátování času
Příklady: "; // vypíše na výstup řetězce "010101" echo str_repeat (" ", 3)."
"; // vypíše na výstup řetězce "" - proc? echo str_repeat(" ", 3).str_repeat("2", 3)."
"; // vypíše na výstup řetězce "222" echo str_repeat ("", 3)."
"; // zamyslete se nad tím jaký výstup bude mít tento příkaz? ?>
květen ’06
Střední průmyslová škola Bruntál
12
PHP - formátování řetězců
Funkce str_replace () • Tato funkce nahradí všechny výskyty hledaného textového vstupu string str_replace ( string needle, string str, string haystack [, int &count] ) • • • •
string needle – hledaný výskyt. string str – řetězec, který se má vsunout. string haystack – původní řetězec. int &count – počet nahrazení.
Zdroj: http://www.php.net/manual/cs/function.str-replace.php
květen ’06
Střední průmyslová škola Bruntál
13
PHP a MySQL - formátování času
Příklady: "; // na výstupu bude "**ahoj**" echo str_replace("a", "ahoj", "*a*a*a*")."
"; // na výstupu bude "*ahoj*ahoj*ahoj*" echo str_replace("a", "", "**a**")."
"; // na výstupu bude "****" echo str_replace("", "1", "*a*")."
"; // na výstupu "*a*" echo str_replace("", "1", "*")."
"; // na výstupu "*" ?>
květen ’06
Střední průmyslová škola Bruntál
14
PHP - formátování řetězců
Funkce str_split () • Tato funkce převede vstupní řetězec na pole.
array str_split ( string string [, int split_length] )
• •
string string – vstupní řetězec. split_length – počet znaků prvků jednotlivého pole.
Zdroj: http://www.php.net/manual/cs/function.str-split.php
květen ’06
Střední průmyslová škola Bruntál
15
PHP a MySQL - formátování času
Příklady: "; // naformátuje výstup: /*Array ( [0] => a [1] => h [2] => o [3] => j )*/
echo str_split("ahoj", 2)."
"; // naformátuje výstup: /*Array ( [0] => ah [1] => oj )*/
?>
květen ’06
Střední průmyslová škola Bruntál
16