úa±cuchy

Na tej lekcji zajmiemy siΩ │a±cuchami znak≤w. Sprawne operowanie na danych tego typu jest krokiem do sukcesu w programowaniu PHP. ZachwilΩ opiszΩ szereg bardzo u┐ytecznych funkcji zwi▒zanych z tym tematem. Poniewa┐ w gruncie rzeczy u┐ywanie ich jest proste i intuicyjne, nie bΩdΩ podawa│ konkretnych przyk│ad≤w i opiszΩ je w punktach, jeden pod drugim.

Teraz jeszcze kr≤tko o wyra┐eniach regularnych. ╙w wyra┐enia s│u┐▒ do testowania zawarto╢ci │a±cuch≤w. Sk│adaj▒ siΩ z jednej b▒d╝ kilku podczΩ╢ci oddzielonych znakiem | (pionowa kreska) - co oznacza sumΩ, czyli alternatywΩ wyra┐e±. Dana cz▒stka sk│ada siΩ z liter i specjalnych symboli. No i tak:

TrochΩ tego du┐o, ale tak naprawdΩ to jest jeszcze wiΩcej ;) Je╢li w danym wyra┐eniu regularnym chcieliby╢my u┐yµ jakiego╢ znaku specjalnego, ale by nie dzia│a│ jako specjalny, to musimy poprzedziµ go znakiem \. Dan▒ liczbΩ znak≤w mo┐na rownie┐ umie╢ciµ w nawiasach kwadratowych i w≤wczas okre╢la ona listΩ dopuszczalnych znak≤w. Je╢li tak▒ listΩ poprzedzimy znakiem ^ to oznacza, ┐e nie mo┐e wyst▒piµ dany znak. Mo┐na r≤wniez u┐ywaµ tzw. klas znak≤w. Je╢li chcieliby╢my wypisaµ dopuszczaln▒ liczbΩ znak≤w - wszystkie litery alfabetu - to w≤wczas w│a╢cie u┐ywamy klas znak≤w.

Podajmy trochΩ przyk│ad≤w: [po lewej wyra┐enie, po prawej dopuszczalne ci▒gi

a*bcd    -   bcd, abcd, aabcd, aaabcd
a+bcd    -   abc, aabcd, aaabcd
a?bcd    -   abcd, bcd
kar.l    -   karol, karel, kar1l, korul
^a.*     -   dowony │a±cuch na literΩ "a"
[abc]*a$ -   dowolny │a±cych sk│adaj▒cy siΩ z liter
             abc i ko±cz▒cy na "a"
k[0-9]x  -   k0x, k1x, k2x...k9x

Teraz przyk│ad z wykorzystaniem funkcji regularnych.

<html>
<head>
  <title>Wyra┐enia regularne</title>
</head>
<body>
  <?
   
# kod pocztowy: xx-xxx

   
$kod1="12-100";
   
$kod2="123-100";

   if (
ereg("^([0-9]{2})-([0-9]{3})$",$kod1))
        echo 
"$kod1 - jest poprawny<br>";
   else echo 
"$kod1 - nie jest poprawny<br>";


   if (
ereg("^([0-9]{2})-([0-9]{3})$",$kod2))
        echo 
"$kod2 - jest poprawny<br>";
   else echo 
"$kod2 - nie jest poprawny<br>";     

   echo 
"<br>";

   
$tekst="AAAaaa111aaaAAA";
   
$tekst2=ereg_replace("1","2",$tekst);
   echo 
"Tekst1: ".$tekst."<br>Tekst2: ".$tekst2."<br>";

  
?>
</body>
</html>