2014-11-07 2 views
1

я пытаюсь заменить некоторые арабский Caractere с другим SYMBOLE некоторые arbic Caractere заменен, но один из этой Caractere он не заменил первым я пытаюсь разделить слово второй попытки заменить Caractere Caractere является все это сменяются, но проблема с этим Caractere сильный текст это кодstr_replace с арабской вязью

$spelling=""; 

function str_split_unicode($str, $l = 0) { 

if ($l > 0) { 

$ret = array(); 

$len = mb_strlen($str, "UTF-8"); 

for ($i = 0; $i < $len; $i += $l) { 

$ret[] = mb_substr($str, $i, $l, "UTF-8"); 

} 
return $ret; 
} 
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); 
} 

if(isset($_POST['txt_word'])){ 

$spelling = implode(" ", str_split_unicode($_POST['txt_word'])); 

} 


$search = array('ّّ ','ً ','ٍ ','ٌ ','ُ ','َ ','ِ ','ْ '); 

$replace = array('0/','/0','/0','/0','/','/','/','0'); 

$subject= str_replace($search, $replace, $spelling); 

$alphabet=array('أ','ا','ب','ت','ث','ج','ح','خ','د','ذ','ر','ز','س','ش','س','ص','ط','ظ','ع','غ','ف','ق','ل','م','ن','ه','و','ي','لا','ة','إ','ئ','ؤ','ك','ى','ء'); 

$rep=array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''); 

$res=str_replace($alphabet,$rep,$subject); 
+0

возможно дубликат [PHP Мульти Byte ул \ _replace?] (Http://stackoverflow.com/questions/1451144/php-multi-byte-str-replace) – feeela

ответ

0

str_replace() должен быть в состоянии обрабатывать символы Unicode Если нет, то вывероятно, не передавая его Unicode.

Убедитесь, что вы обрабатываете строки Unicode на всем протяжении от отображаемого веб-сайта до скрипта PHP. См. Эту статью для получения дополнительной информации: „Unicode-friendly PHP and MySQL“.

+0

но это работает для всех символов Исключение одного – user2855148

0

Я использовал http://www.php.net/preg_replace на подобных случаях.

$replace = array(
    '/ä/u'=>'a', 
    '/p/u'=>'r', 
); 

$patterns = array_keys($replace); 
$replacements = array_values($replace); 

echo preg_replace($patterns, $replacements, $string);