- Introducere PHP
- Instalare si Configurare
- Despre sintaxa PHP
- Varibile PHP
- Constante
- Operatori
- Procesul Decizional
- Instructiuni Repetitive
- Array-uri (Vectori)
- Concepte Web
- Incluziunea fisierelor
- Lucrul cu fisiere
- Functii
- Cookie
- Session
- Trimiterea de mailuri
- File Uploading
- Standarde de Programare
- Metodele GET si POST
- Validarea Formularelor
- Campuri obligatorii
- Variabile Predefinite
- Regular Expressions
- Erori si Exceptii
- Debugging
- Data si Timpul
- Mysqli â Conexiunea la baza de date
- Crearea unei baze de date
- Stergerea unei baze de date
- Inserare date
- Preluare date din MySql
- Stefanescu Mihai a postat in Paginare in PHP
- johhny a postat in Paginare in PHP
- Stefanescu Mihai a postat in Cum pot afisa eroarea cand utilizatorul a scris un username gresit sau o parola gresita?
- madalin a postat in Cum pot afisa eroarea cand utilizatorul a scris un username gresit sau o parola gresita?
- Stefanescu Mihai a postat in Featureuri site
Regular Expressions
Regular expressions sau regex-uri, nu sunt altceva decat tipdare de caractere si ajuta la gasirea unui anumit tipar intr-un sir de caractere.
Folosind un regex puteti cauta un anumit tipar intr-un sir de caractere, puteti inlocui un anumit string cu altul sau il puteti imparti in mai multe siruri de caractere.
PHP ofera dous eturi de functii specifice regular expression:
- POSIX Regular Expressions
- PERL Style Regular Expressions
POSIX Regular Expressions:
Structura POSIX este similara cu expresiile aritmetice: elemente(operator) ce sunt combinate pentru a da o expresie complexa.
Paranteze
Parentezele patrate ([]) au un inteles pecial cand sunt folosite in regex-uri. Sunt folosite pentru a gasi un caracter dintr-un anumit interval.
Expresie | Descriere |
[0-9] | Cauta orice numar intre 0 si 9. |
[a-z] | Cauta orice litera intre a si z (lowercase) |
[A-Z] | Cauta orice litera intre a si z (uppercase) |
[a-Z] | Cauta orice litera intre a si Z |
Intervalele afisate mai sus sunt generale. Puteti folosi intervale proprii (ex: [0-3] sau [b-v], etc).
Cuantificare:
Frecventa sau pozitia specificata in paranteze patrate poate fi denotata cu un caracter specific.
Expresie | Descriere |
p+ | Orice string ce contine cel putin un p |
p* | Orice string ce contine 0 sau mai multi p |
p? | Orice string ce contine 0 sau mai multip. Alternativa p* |
p{N} | Orice string ce contine o secventa N litere p |
p{2, 3} | Orice string ce contine o secventa de 2 sau 3 p-uri |
p{2, } | Orice string ce contine o secventa de 2 sau mai multe p-uri |
p$ | Orice string cu p la sfarsit |
^p | Orice string cu p la inceput |
Exemple
Expresie | Descriere |
[^a-zA-Z] | Orice expresie ce contine orice caracter din intervalele a – z si A – Z. |
p.p | Orice expresie ce contine un p, urmat de orice caracter, iar apoi urmat iar de un p. |
^.{2}$ | Orice string de exact 2 caractere. |
(.*) | orice string pus intre tag-urile |
p(hp)* | Orice string ce contine un p urmat de zero sau mai mutle instante ale secventei hp |
Intervale Predefinite
Pentru a va usura munca, exista cateva intervale predefinite.
Expresie | Descriere |
[[:alpha:]] | Orice string din intervalul aA-zZ |
[[:digit:]] | Orice string ce contine numere intre 0 si 9 |
[[:alnum:]] | Orice string ce contine caractere in intervalele aA-zZ si 0-9 |
[[:space:]] | Orice string ce contine spatiu alb. |
Functii Regexp PHP POSIX
PHP ofera 7 functii pentru regex=uri folosind stilul POSIX
Functie | Descriere |
ereg() | Functia ereg() cauta un anumit string dupa un tipar definit (regex) si returneaza true daca il gaseste, false in caz contrar. |
ereg_replace() | Functia ereg_replace() cauta un anuumit string conform unui tipar definit si il inlocuieste cu un string dat. |
eregi() | Functia eregi() cauta un string conform unui anumit tipar (cautarea nu este case sensitive). |
eregi_replace() | Functia eregi_replace() functioneaza exact ca si ereg_replace(),doar ca nu este case sensitive. |
split() | Functia split() imparte un string in mai multe elemente. |
spliti() | Similar cu split() doar ca nu este case sensitive. |
sql_regcase() | Functia sql_regcase() returneaza expresii in paranteze patrate (cu cate 2 caractere) cu caracterele convertite. (ex: Php 5.0 va returna [Pp] [Hh] [Pp] [ ] [55] [..] [00]) |
PERL Style
PERL este similar cu POSIX si sintaxa este interschimbabila, de fapt puteti folosi tot ce am aratat mai sus si in regex-urile PERL Style.
Hai sa va explic cateva concepte folosite in regex-urile PERL.
Metacaractere
Un metacaracter este un simplu caracter cu un backslash inainte avand un inteles special.
De exemplu puteti cauta sume de bani folosind metacaracterul ‘\d’ in urmatorul mod /([\d]+)000/, In cazul asta\d cauta orice incepe cu un numar.
Mai jos am scris o lista de metacaractere folosite in regex-urile PERL Style
Caracter | Descriere |
. | Un singur caracter. |
\s | Un caracter spatiu (spatiu alb, tab, rand nou). |
\S | Un caracter diferit de un spatiu. |
\d | Un numar (intre 0-9) |
\D | Un caracter ce nu este numar. |
\w | Un caracter din intervalele a-z, A-Z, 0-9 si _ |
\W | Un caracter ce nu face parte din intervalele a-z, A-Z, 0-9 si _ |
[aeiou] | Un caracter ce face parte din cele date. |
[^aeiou] | Un caracter ce nu face parte din cele date. |
(foo|bar|baz) | Cauta oricare dintre alternativele date. |
Modificatori
Sunt valabili mai multi modificatori ce te pot ajuta sa gasesti un anumit string mai usor.
Modificator | Descriere |
i | Face cautarea case insensitive |
m | Specifica daca un string are o linie noua, iar daca are, caracterele ^ si $ va lua in considerare noua linie. |
o | Evalueaza expresia o singura data. |
s | Permite folosirea .cautarea unu carater de tip linie noua. |
x | Permite folosirea spatiilor albe in expresie, pentru claritate. |
g | Gaseste toate potrivirile la nivel global. |
cg | Permite continuarea cautarii chair si dupa ce cautarea globala nu da rezultate. |
Functii regexp PERL Style
Functie | Descriere |
preg_match() | Aceasta functie cauta un string si returneaza true daca il gaseste, altfel returneaza false. |
preg_match_all() | Returneaza numarul de cate ori a gasit un anumit string. |
preg_replace() | Functioneaza exact ca si ereg_replace(), cauta un pattern si il inlocuieste. |
preg_split() | Functioneaza exact ca si split(), imparte un string in mai multe elemente. |
preg_grep() | Cauta in toate elementele unui array si returneza toate elementele gasite. |
preg_quote() | Pune un backslash in fata fiecarui caracter ce s-ar putea gasi intr-un regex |
Comentarii