|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
PHP Functii cu expresii regulate (Perl-Compatible) | ||||||
|
||||||
u1j4js Sintaxa pentru pattern-ul folosit in aceste functii este asemanatoare cu cea din functiile Perl. Orice expresie trebuie delimitata de 2 aceleasi caractere, de exemplu slash (/). Ca delimtatori pot fi folositi orice caracter in afara de cele alfanumerice si backslash (\). Daca caracterul delimitator este folosit in expresie el trebuie securizat (precedat de backslash). Dupa caracterul delimitator de sfarsit pot aparea modiifcatorii care fac potrivirea. Vezi Modificatori pattern Exemplu 1. Exemple de pattern valide Cuprins preg_match - Cauta dupa o expresie regulata preg_match_all - Cauta toate potrivirile dupa o expresie regulata preg_replace - Cauta dupa o expresie regulata si inlocuieste preg_split - Desparte un string dupa o expresie regulata preg_quote - Securizeaza caracterele speciale din expresii regulate preg_grep - Returneaza un tablou cu potrivirile unei expresii regulate Descriere int preg_match (string pattern, string subject a, array matchesi) Daca apare si tabloul matches, atunci rezultatul cautarii este stocat in acest tablou. $matchesa0i va contine subsirul care se potriveste intregului pattern, $matchesa1i va avea subsirul care se potriveste primului subpattern dintre paranteze, si.a.m.d. Intoarce true daca s-a gasit un subsir din subject ce se potriveste pattern dat, sau false in caz contrar. Exemplu 1. Cauta subsirul "php" // caracterul "i" de dupa pattern indica o cautare case-insensitive
if (preg_match ("/php/i", "PHP is the web scripting language
of choice.")) A print "A match was found."; Exemplu 2. Cauta cuvantul "web" // sirul \b din pattern indica marginea unui cuvant, deci intregul
cuvantul if (preg_match ("/\bweb\b/i", "PHP is the web scripting language
of choice.")) A print "A match was found."; Exemplu 3. Afla domeniul dintr-o adresa URL preg_match("/^(.*)(a^\.i+\.a^\.i+)(\/.*)?/U", // afiseaza subsirul ce s-a potrivit celui de-al 2-lea subpattern dintre paranteze echo "domain name is: ".$matchesa2i."\n"; Acest exemplu v-a afisa: domain name is: php.net preg_match_all Descriere int preg_match_all (string pattern, string subject, array matches a, int orderi)
Dupa ce prima potrivire a fost gasita, urmatoarele cautari incep de la sfarsitul ultimei potriviri. order poate fi: PREG_PATTERN_ORDER preg_match_all ("|<a^>i+>(.*)i+>|U", Se va afisa: <b>example: </b>, <div align=left>this is a test</div> example: , this is a test Deci, $outa0i contine un tablou de string care s-au potrivit intregului pattern, si $outa1i contine un tablou cu siruri de caractere aflate intre taguri. PREG_SET_ORDER preg_match_all ("|<a^>i+>(.*)</a^>i+>|U", Se va afisa: <b>example: </b>, example: In acest caz, $matchesa0i este primul set de potriviri, si $matchesa0ia0i are sirul potrivit intregului pattern, $matchesa0ia1i are sirul potrivit primului subpattern s.a.m.d. Similar, in $matchesa1i sunt al doilea set de potriviri, etc. Daca order nu este specificat, implicit este PREG_PATTERN_ORDER.Returneaza numarul potrivirilor pentru intregul pattern, sau false daca nu s-a gasit nici o potrivire. Exemplu 1. Aflarea tuturor nr de telefon dintr-un text. preg_match_all ("/\(? (\dA3S)? \)? (?(1) a\-\si ) \dA3S-\dA4S/x", Exemplu 2. Aflarea tagurilor HTML. // sirul \\2 este un exemplu de pre-referire. Inseamna ca $html = "<b>bold text</b><a href=howdy.html>click me</a> preg_match_all ("/(<(a\wi+)a^>i*>)(.*)(<\/\\2>)/", $html, $matches); for ($i=0; $i< count($matchesa0i); $i++) A echo "matched: ".$matchesa0ia$ii."\n"; echo "part 1: ".$matchesa1ia$ii."\n"; echo "part 2: ".$matchesa3ia$ii."\n"; echo "part 3: ".$matchesa4ia$ii."\n\n"; Acest exemplu v-a afisa: matched: <b>bold text</b> part 1: <b> part 2: bold text part 3: </b> matched: <a href=howdy.html>click me</a> part 1: <a href=howdy.html> part 2: click me part 3: </a> preg_replace Descriere mixed preg_replace (mixed pattern, mixed replacement, mixed subject a, int
limiti) Replacement poate contine referinte de forma \\n. Fiecare astfel de referinta va fi inlocuita cu textul capturat de al n-lea subpattern dintre paranteze. n poate lua valori intre 0 si 99, si \\0 se refera la textul potrivit intregului pattern. Parantezele deschise sunt numarate de la stanga la dreapta(pornind de la 1) pentru a obtine numarul de subpattern-uri care captureaza textul. Daca nu se gaseste nici o potrivire in subject, atunci va fi returnat neschimbat. Fiecare parametru din preg_replace() poate fi un tablou. Daca subject este un tablou, atunci cautarea si inlocuirea se fac pe fiecare element din tablou, iar rezultatul este tot un tablou. Daca pattern si replacement sunt tablouri, atunci preg_replace() ia o valoare din fiecare tablou si le foloseste pentru a face cautarea si inlocuirea in subject. Daca replacement are mai putine valori decat pattern, atunci sirul vid este folosit pentru restul valorilor de inlocuire. Daca pattern este un tablou si replacement este un string, atunci acest string este folosit pentru fiecare pattern. Invers nu ar avea sens. Modificatorul /e face ca preg_replace() sa trateze paramentrul replacement ca un cod PHP dupa ce s-a efectuat inlocuirea. Indicatie: aveti grija ca replacement sa fie un cod PHP valid, altfel PHP va da eroare la linia care contine preg_replace(). Exemplu 1. Inlocuire valori $patterns = array ("/(19|20\dA2S)-(\dA1,2S)-(\dA1,2S)/", Acest exemplu v-a afisa: Exemplu 2. Folosirea modificatorului /e preg_replace ("/(<\/?)(\w+)(a^>i*>)/e", Codul de mai sus va scrie toate tagurile HTML cu litere mari. // $document va contine un document HTML // si spatii albe. Va converti de asemenea unele // entitati HTML in caracterul care-l reprezinta. $search = array ("'i*?>.*?'si", // Strip out javascript $replace = array ("", $text = preg_replace ($search, $replace, $document); preg_split Descriere array preg_split (string pattern, string subject a, int limit a, int flagsii)
Intoarce ca valoare un tablou ce contine subsiruri din subject ce se potrivesc cu pattern. Daca apare limit, atunci doar limit subsiruri sunt returnate Daca flags este PREG_SPLIT_NO_EMPTY atunci doar partile nevide vor fi prelucrate de preg_split(). Exemplu 1. Aflarea partilor componente ale unui sir. // imparte fraza in cuvinte despartite de virgula sau spatii albe, preg_quote Descriere string preg_quote (string str a, string delimiteri) preg_quote pune in fata fiecarui caracter care face parte din sintaxa expresiilor regulate un backslash. Aceasta este util cand sirul contine caractere speciale Daca este specificat si parametrul optional delimiter, si acestuia i se va pune un backslash in fata. Este util pentru a securiza si acest delimitator. Cel mai folosit delimitator este / Caracterele speciale din expresiile regulate sunt: . \\ + * ? a ^ i $ ( ) A S = ! < > | : Exemplu 1. $keywords = "$40 for a g3/400"; Exemplu 2. Scrie cu caractere italice un cuvant dintr-un text // In acest exemplu, preg_quote($word) este folosit $textbody = "This book is *very* difficult to find."; Descriere array preg_grep (string pattern, array input) preg_grep() returneaza un tablou care are elemente din tabloul input care s-au potrivit cu pattern Exemplu 1. Exemplu preg_grep() // returneaza toate elementele din tablou |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|