WebDeveloper
 g│≤wna | forum manual | skrypty |  artyku│y |  projekty | porady |  zasoby |  linki 
dzia│y
  •  manual PHP
  •  skrypty PHP
  •  artyku│y
  •  projekty
  •  porady
  •  zasoby
  •  linki
  •  
    forum
  •  php
  •  apache
  •  mysql
  •  postgresql
  •  faq php
  •  pomocnik php
  •  
    news
  • Porcjowanie wynik≤w zapytania
  • Kartki Internetowe
  • PHP + MySQL + Windows 98
  • Bezpieczne uploadowanie plik≤w
  • Przegl▒danie obrazk≤w z bazy PostgreSql.
  • Co to jest WebDeveloper?
  • Instalujemy serwer baz danych !
  • Sesje w PHP4 !
  • Dodaj poradΩ !!!
  • Zastosowano... PHP !
  • redakcja

    Je╢li masz ciekawe informacje odno╢nie PHP, skrypty, porady, linki itp. lub chcia│by╢ wsp≤│tworzyµ serwis PHP.zone.pl daj nam znaµ na email !



    dodaj poradΩ !


    Powered by:
    PHP
    Apache
    MySql
    Linux

    users online: 7

    LI. Funkcje wyra┐e± regularnych

    Wyra┐enie regularne s▒ u┐ywane do kompleksowych manipulacji na │a±cuchach znakowych w PHP. Do funkcji kt≤re wspieraj▒ wyra┐enia regularne nale┐▒:

    • ereg

    • ereg_replace

    • eregi

    • eregi_replace

    • split

    Wszystkie te funkcje pobieraj▒ ci▒g znak≤w, opisuj▒cych wyra┐enia regularne, jako pierwszy argument. PHP uzywa rozszerzonych wyra┐e± regularnych POSIX zdefiniowanych przez POSIX 1003.2. Aby uzyskaµ pe│ny opis wyra┐e± regularnych POSIX zobacz strony manuala regex dostΩpne w katalogu regex dystrybucji PHP. Pliki te s▒ dostΩpne w formacie manuala, wiΩc bΩdziesz musia│ u┐yµ polecenia w rodzaju man /usr/local/src/regex/regex.7 aby je przeczytaµ.

    Przyk│ad 1. Przyk│ady wyra┐e± regularnych

    ereg("abc",$string);            
    /* Zwraca true je╢li "abc"
       wystΩpuje gdziekolwiek w $string. */
    
    ereg("^abc",$string);
    /* Zwraca true je╢li "abc"
       znajduje siΩ na pocz▒tku $string. */
    
    ereg("abc$",$string);
    /* Zwraca true je╢li "abc"
       znajduje siΩ na ko±cu $string. */
    
    eregi("(ozilla.[23]|MSIE.3)",$HTTP_USER_AGENT);  
    /* Zwraca true je╢li przegl▒dark▒
       jest Netscape 2, 3 lub MSIE 3. */
    
    ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)",
         $string,$regs); 
    /* Umieszcza trzy s│owa oddzielone spacjami
       w zmiennych $regs[1], $regs[2] i $regs[3]. */
    
    $string = ereg_replace("^","<BR>",$string); 
    /* Wstawia znacznik <BR> na pocz▒tek $string. */
     
    $string = ereg_replace("$","<BR>",$string); 
    /* Wstawia znacznik <BR> na koniec $string. */
    
    $string = ereg_replace("\n","",$string);
    /* Usuwa wszystkie znaki nowej linii w $string. */
         

    ereg

    ereg — dopasowanie wyra┐enia regularnego

    Opis

    int ereg(string pattern, string string, array [regs]);

    Przeszukuje string w celu dopasowania wyra┐enia regularnego podanego w zmiennej pattern.

    Je╢li uda siΩ dopasowaµ ujΩty w nawiasach podci▒g zmiennej pattern oraz funkcja jest przywo│ywana z trzecim argumentem regs, dopasowany ci▒g zostanie zapamiΩtany w elementach tablicy regs. $regs[1] bΩdzie zawieraµ podci▒g zaczynaj▒cy siΩ od pierwszego lewego nawiasu; $regs[2] zawieraµ bΩdzie podci▒g zaczynaj▒cy siΩ od drugiego lewego nawiasu itd. $regs[0] bΩdzie zawieraµ kopiΩ zmiennej string.

    Przeszukiwanie rozr≤┐nia wielko╢µ liter.

    Zwraca true je╢li dopasowywany wzorzec znajduje siΩ w ci▒gu, lub false gdy nie mo┐na dopasowaµ ci▒gu lub wyst▒pi│ b│▒d.

    NastΩpuj▒cy przyk│adowy kod pobiera datΩ w formacie ISO (RRRR-MM-DD) i drukuje j▒ w formacie DD.MM.RRRR:

    Przyk│ad 1. Przyk│ad zastosowania ereg()

    if ( ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs ) ) {
        echo "$regs[3].$regs[2].$regs[1]";
    } else {
        echo "Niew│a╢ciwy format daty: $date";
    }
    

    Zobacz r≤wnie┐ eregi, ereg_replace, oraz eregi_replace.

    Opis

    string ereg_replace(string pattern, string replacement, string string);

    Funkcja przeszukuje zmienn▒ string w celu dopasowania wzorca pattern, nastΩpnie zamienia dopasowany tekst ci▒giem replacement.

    Zwracany jest zmodyfikowany ci▒g. (Co mo┐e oznaczaµ, ┐e w przypadku gdy nic nie mo┐na dopasowaµ, zwracany jest niezmieniony ci▒g)

    Je╢li pattern zawiera podci▒gi ujΩte w nawiasy, zmienna replacement mo┐e zawieraµ podci▒g w postaci \\cyfry n, kt≤ry zostanie zast▒piony przez tekst pasuj▒cy do n-tego wyst▒pienia podci▒gu zapisanego w nawiasie; \\0 da w wyniku ca│▒ zawarto╢µ ci▒gu. Mo┐na u┐yµ maksymalnie do dziewiΩciu podci▒g≤w. Nawiasy mog▒ byµ zagnie┐d┐one, w takim przypadku zliczane s▒ nawiasy otwieraj▒ce.

    Je╢li nie mo┐na znale╝µ wzorca w zmiennej string, wtedy string pozostanie niezmieniony.

    Na przyk│ad nastΩpuj▒cy kod drukuje trzy razy ci▒g "To by│ test":

    Przyk│ad 1. Przyk│ad zastosowania ereg_replace()

    $string = "To jest test";
    echo ereg_replace( " jest", " by│", $string );
    echo ereg_replace( "( )jest", "\\1by│", $string );
    echo ereg_replace( "(( )jest)", "\\2by│", $string );
          

    eregi

    eregi — dopasowanie wyra┐enia regularnego bez rozr≤┐niania wielko╢ci liter

    Opis

    int eregi(string pattern, string string, array [regs]);

    Ta funkcja jest praktycznie identyczna z ereg opr≤cz tego, ┐e nie rozr≤┐nia wielko╢ci liter.

    Zobacz r≤wnie┐ ereg, ereg_replace, oraz eregi_replace.

    eregi_replace

    eregi_replace — zastΩpowanie z u┐yciem wyra┐e± regularnych bez rozr≤┐niania wielko╢ci liter

    Opis

    string eregi_replace(string pattern, string replacement, string string);

    Ta funkcja jest praktycznie identyczna z ereg_replace opr≤cz tego, ┐e nie rozr≤┐nia wielko╢ci liter.

    Zobacz r≤wnie┐ ereg, eregi, oraz ereg_replace.

    Opis

    array split(string pattern, string string, int [limit]);

    Zwraca tablicΩ ci▒g≤w, z kt≤rych ka┐dy jest podci▒giem ci▒gu utworzonego przez podzia│ na czΩsci wyznaczone przez wyra┐enie regularne pattern. W przypadku wyst▒pienia b│Ωdu, zwraca false.

    Przyk│ad jak uzyskaµ piΩµ pierwszych p≤l z pliku /etc/passwd:

    Przyk│ad 1. Przyk│ad zastosowania split()

    $passwd_list = split( ":", $passwd_line, 5 );
    	  

    Przetworzenie daty, kt≤rej pola mog▒ byµ przedzielone przez uko╢niki, kropki lub my╢lniki:

    Przyk│ad 2. Przyk│ad zastosowania split()

    $date = "04/30/1973";  // Delimiters may be slash, dot, or hyphen
    list( $month, $day, $year ) = split( '[/.-]', $date );
    echo "Month: $month; Day: $day; Year: $year<br>\n";
    	  

    Uwaga: w zmiennej pattern rozr≤┐niana jest wielko╢µ liter.

    Zwr≤µ uwagΩ, ┐e je╢li nie wykorzystujesz potΩgi wyra┐e± regularnych szybsza w dzia│aniu jest funkcja explode, kt≤re nie anga┐uje zasoboch│onnego mechanizmu wyra┐e± regularnych.

    Zwr≤µ uwagΩ, ┐e pattern jest wyra┐eniem regularnym. Je╢li zajdzie potrzeba podzia│u │a±cucha w miejscach oznaczonych znakami, kt≤re zgodnie z zasadami wyra┐e± regularnych s▒ znakami specjalnymi - wtedy najpierw nale┐y przed tymi miejscami wstawiµ znaki unikowe ("\"). Je╢li uwa┐asz, ┐e split (lub te┐ inne funkcje zwi▒zane z regularnymi wyra┐eniami w tym przypadku) daje w wyniku co╢ dziwnego, przeczytaj plik regex.7, umieszczony w podkatalogu regex/ dystrybucji PHP. Pliki te s▒ dostΩpne w formacie manuala, wiΩc bΩdziesz musia│ u┐yµ polecenia w rodzaju man /usr/local/src/regex/regex.7 aby je przeczytaµ.

    Zobacz r≤wnie┐ explode i implode.

    sql_regcase

    sql_regcase — tworzenie wyra┐e± regularnych dla dopasowa± bez rozr≤┐niania wielko╢ci liter

    Opis

    string sql_regcase(string string);

    Zwracane jest poprawne wyra┐enie regularne kt≤rΩ bΩdzie dopasowywaµ string, nie zwracaj▒c uwagi na wielko╢µ liter. Wyra┐enie te jest ci▒giem string w kt≤rym ka┐dy znak jest zamieniany w wyra┐enie ujΩte w nawiasy kwadratowe; wyra┐enie te zawiera wielkie i ma│e litery, lub sk│ada siΩ z powt≤rzonego oryginalnego znaku.

    Przyk│ad 1. sql_regcase() example

    echo sql_regcase( "Foo bar" );
    
    drukuje
    [Ff][Oo][Oo][  ][Bb][Aa][Rr]
    .

    Wyra┐enie takie mo┐e byµ u┐yte by osi▒gn▒µ dopasowywanie bez rozr≤┐niania wielko╢ci liter w wynikach, kt≤re wspieraj▒ tylko dopasowania z rozr≤┐nianiem wielko╢ci liter.

    kontakt

    autor:

    Hubert Mierzwiak

    wsp≤│praca:

    Piotr Karolak

    Chcesz prowadziµ sw≤j dzia│ tematyczny typu XML, SQL, admin, JavaScript, itp?
    Napisz do nas !
     
    skrypty
  • designer.zip
  • vipAuth.tgz
  • phpCenzura.tgz
  • vip_php.tgz
  • pomocnik_light
  • ankieta
    Co s▒dzisz o stworzeniu FAQ PHP?
    super!
    po co?

    poprzednie

    newsletter

    wpisz sw≤j email i wci╢nij Enter

    linuxnews.pl
  • KRRiTV stra┐nikiem!?
  • Dzisiejsze zebranie...
  • Felieton w warunkach ekstremalnych
  • Nexidion Designer
  • Solaris OpenSource
  • KDE 2.0.1
  • Jest ju┐ nowy Debian...
  • Tydzie± min▒│...




  • Manual | Skrypty | Artyku│y | Projekty
    Porady | Zasoby | Linki
    G│≤wna | Forum

    Copyright 2000 Hubert Mierzwiak