2010-09-06 11 views
20

nasıl benKaldır Olmayan İngilizce Karakterler PHP

şu anda სოფო ნი

Teşekkür :)

gibi şeyler kaldırmak istediğiniz php olmayan tüm ingilizce karakterleri kaldırmak için bir dize ayrıştırabileceğiniz Verilen preg_replace()

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

echo $string; 

kullanarak

+0

bakınız. –

+0

evet üzgünüm demek istediğim buydu –

cevap

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

Çok güzel bitti. Yeni bir şey öğrendim! –

+1

Yardım edip bilgileri paylaşabileceğime sevindim :) – aularon

+0

Octal 0 - 255, ondalık 0 - 173? – Gumbo

5

, preg_replace modelini genişletmeniz gerekecek, ancak bunu yapmanın bir yolu. Muhtemelen daha iyi bir yol var, sadece bilmiyorum.

-1

kullanımı bu kodu:

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

İngilizce olmayan her karaktere karşı karşılaştırmanız gerekir –

+0

"Kara liste" yaklaşımından ziyade "beyaz liste" yaklaşımı kullanma eğilimindeyim. Yani, rutin olarak tutulması gereken karakterleri tanımlamak yerine, tutulması gereken karakterleri tanımlamak yerine, karakterleri _ARE_ "ingilizce karakterleri" ve geri kalanları ortadan kaldıracağım. – spencer7593

6

En iyi seçenek istenen karakter kodlamasını dizeleri dönüştürür iconv kullanılarak olacaktır. (-> ss örneğin ß) //translit ile

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

ASCII için anlamlı bir dönüşüm olsun. // IGNORE kullanımı, ascii olmayan karakterleri tamamen ortadan kaldıracaktır.

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

Ben Latin olmayan/Roma alfabetik karakterler demek kabul http://php.net/manual/en/function.iconv.php