Rimuovere caratteri “sporchi” da una stringa in PHP

August 3, 2007

Capita spesso di dover ripulire una stringa da caratteri diciamo “non standard” come lettere accentate, & commerciali, parentesi etc…

In php per farlo è sufficiente sfruttare la potentissima: ereg_replace() in combinazione con str_replace().

Di seguito ecco una funzione utile e la relativa spiegazione.

function cleanString($string)
{
$string = str_replace(”è”, “e”, $string);
$string = str_replace(”à”, “a”, $string);
$string = str_replace(”ò”, “o”, $string);
$string = str_replace(”ì”, “i”, $string);
$string = str_replace(”ù”, “u”, $string);
$string = ereg_replace(”[^A-Za-z0-9 ]”, “”, $string );
return $string;
} 

Alla funzione viene passata la stringa sorgente da ripulire, successivamente (per scelta) vengono sostituite le classiche lettere accentate con le corrispettive non accentate, giusto per non tagliare brutalmente pezzi di stringa.
A seguito di questo viene eseguita ereg_replace() con una semplice espressione regolare che consente di accettare solo i caratteri da A a Z (maiuscoli), a -> z (minuscoli), i numeri da 0 a 9 e gli spazi.
Infine la stringa viene ritornata ripulita.

Per utilizzare la suddetta funzione è sufficiente richiare un codice di questo tipo:

$stringa_sporca = “Ciao, il mio nome è Massimo & questo è il mio blog”;
echo cleanString($stringasporca);

La stringa si trasforma a video in:
“Ciao il mio nome e Massimo questo e il mio blog”

Naturalmente alla funzione si possono applicare diverse alternative di sostituzione caratteri “pre-pulizia” ed estenderla con argomenti in ingresso che definiscano differenti comportamenti a seconda del caso.

Se qualcuno volesse dilettarsi a farlo e volesse postarlo nei commenti con piacere aggiornerò il post riportando le sue modifiche.

Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com

Related Post

  • No Related Post