2010-09-06 10 views
20

Wie kann ich analysieren eine Zeichenfolge alle nicht Englisch Zeichen in PHPentfernen Nicht Englisch Charaktere PHP

jetzt entfernen ich Dinge wie

სოფო ნი

Thanks :)

entfernen möchten
+0

Ich nehme an, Sie meinen nicht-lateinische/römische Buchstaben. –

+0

ja Entschuldigung, das ist, was ich meinte –

Antwort

45
$str = preg_replace('/[^\00-\255]+/u', '', $str); 
+1

Sehr schön gemacht. Etwas Neues gelernt! –

+1

Ich bin froh, dass ich helfen kann und das Wissen teilen :) – aularon

+0

Oktal 0 bis 255, also dezimal 0 bis 173? – Gumbo

5

Durch die Verwendung von preg_replace()

$string = "some სოფო text"; 
$string = preg_replace('/[^a-z0-9_ ]/i', '', $string); 

echo $string; 

Zugegeben, Sie müssen das preg_replace Muster erweitern, aber das ist eine Möglichkeit, es zu tun. Es gibt wahrscheinlich einen besseren Weg, ich weiß es einfach nicht.

-1

Verwendung dieser Code:

$illegalChars = array("",); 
$string = str_replace($illegalChars,"",$string); 
echo $string; 
+0

müssten Sie mit jedem nicht-englischen Zeichen –

+0

vergleichen Ich würde eher eine "Whitelist" -Ansatz als eine "Blacklist" -Ansatz verwenden. Das heißt, ich würde die Routine identifizieren die Zeichen, die gehalten werden sollten, die Zeichen, die _ARE_ "englische Zeichen" und den Rest beseitigen, anstatt zu versuchen, die Zeichen zu identifizieren, die entfernt werden sollten. – spencer7593

6

Ihre beste Option wäre iconv verwenden, die Zeichenketten zu anderen Zeichensatz umwandelt.

iconv('UTF-8', 'ASCII//TRANSLIT', $yourtext); 

mit //translit erhalten Sie eine sinnvolle Umwandlung in ASCII (z ß -> ss). Durch die Verwendung von // IGNORE werden nicht-ASCII-Zeichen vollständig entfernt.

iconv('UTF-8', 'ASCII//IGNORE', $yourtext); 

Siehe http://php.net/manual/en/function.iconv.php

Verwandte Themen