Elimina cuvintele ce contin caractere speciale in PHP

February 26th, 2010 by admin Leave a reply »

caractere speciale 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.

Daca ai gasit util acest post, aboneaza-te prin e-mail.
telefon
laptop
 Scriu de pe un laptop Asus ( camera video incorporata). I-am atasat o tastatura si un mouse la USB-uri, iar uneori, Sistemul Audio imi incanta auzul, in timp ce scriu articole sau citesc lucruri interesante.
Advertisement

3 comments

  1. Junyor says:

    Interesant! Voi incerca sa-l adaptez sa elimine numere de telefon si adrese de e-mail din texte…

  2. Junyor says:

    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);

  3. admin says:

    Probabil functioneaza, insa daca nu ai noroc cu el, incearca-l pe cel de sus. Este testat :)

Leave a Reply