Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Regulární výrazy
4. května 1999, 00.00 | Rychlé seznámení s možnostmi regulárních výrazů v PHP..
V jednom emailu jsem se setkal s dotazem, proč je v PHP tak slabá podpora operací s řetězci, hlavně se jednalo o vyhledávání podstringů ap.
Osobně si myslím, že opak je pravdou. Na rozdíl od ANSI C, ze kterého by se dalo říci že PHP vychází, má PHP implementováno velké množství funkcí pro práci s řetězci.
Ovšem, musíte se trochu odprostit od zažitých pravidel. Chcete-li zjistit přítomnost podstringu v řetězci, můžete použít strstr, ale takový ereg je přeci jenom účinější.
Ano řeč dnes bude o regulárních výrazech, jenž klasické C, narozdíl např. od Perlu, nezná.
Krátce v praktických ukázkách:
ereg("abc",$s);
/*vrátí true, jestliže $s obsahuje "abc"*/
ereg("^abc",$s);
/*vrátí true, pokud je "abc" na počátku $s*/
ereg("abc$",$s);
/*true, je-li "abc" na konci $s*/
Pokud máte zkušenost s psaním v C, možná namítnete proč takové složitosti, když bychom mohli použít:
strstr(s,"abc")?1:0;
strncmp(s,"abc",3)?0:1;
strcmp(s-3,"abc")?0:1;
Ok, postoupíme dále..
eregi("(data[123]|abc)",$s);
/*vrátí true, když $s obsahuje "data1", "data2" nebo "data3"
a nebo "abc"*/
ereg_replace("^","Dulezite: ",$s);
/*Vloží "Dulezite: " na začátek $s (ekv. "$" na konec)*/
ereg_replace("\n","
",$s);
/*všechny entery nahradí za
*/
.. což by se v C tak lehce nerealizovalo :)
Pravdou je, že možnosti jsou ještě daleko větší a vřele doporučuji prostudovat manuál.
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007