Asa cum bine stiti, caracterelele speciale intr-un text, pot strica armonia acestuia. Fie pagina nu are setata setul de caractere respectiv, fie nu il recunoaste, ele vor fi afisate defectuos. Spre exemplu, cuvintele romanesti cu diacritice, si multe altele, pot fi eliminate prin acest cod PHP.
Asadar, urmatorul exemplu PHP elimina toate cuvintele ‘non-english’ dintr-un text, ce contin caractere speciale :
$string = "text scris bine ócaracter_special, zÂr 666, bun valid øinvalid iø1"; $string = preg_replace('/\S*[^a-z0-9A-Z\s,\.]+\S*/', '', $string); print "$string\n"; La iesire va fi: text scris bine 666, bun valid
Parametrul Charset
Informatiile transmise prin protocolul HTTP, care sunt de tipul text/html , text/plain, pot trimite in header-ul HTTP parametrul ‘charset’ ce reprezinta tipul de codare al respectivului document trimis.
Spre exemplu, daca vrei ca pe o pagina HTML sa folosesti diacriticile (scri text folosind diacritice), trebuie sa setezi parametrul charset in fiserul HTML cu “UTF-8″ (sau un alt charset ce va recunoaste aceste diacritice).
In cazul in care nu setezi corect acest parametru, serverul va interpreta cererea ta HTTP asa cum este compusa (gresit sau un charset default), returnandu-ti rezultate caractere speciale (patratele, forme ciudate).
Insa scriptul de mai sus, in cazul in care vrei sa elimini cuvintele cu caractere speciale, iti poate fi de ajutor in diverse situatii.




Interesant! Voi incerca sa-l adaptez sa elimine numere de telefon si adrese de e-mail din texte…
Cred ca merge pana la urma, codul asta elimina adresele de e-mail si numerele dintr-un text dat:
$string = preg_replace(’/\S*[0-9\@]+\S*/’, ”, $string);
Probabil functioneaza, insa daca nu ai noroc cu el, incearca-l pe cel de sus. Este testat