2013-07-05 9 views
5

アラビア語でサポートされていないプログラムでサポートされるアラビア語のテキストを置き換えるコードを作成しようとしています
置き換え後にテキストを逆にする必要がありますが、代わりに指名手配結果ここStrRev()DosentサポートUTF-8

のものはコードです:

<?php 
$string = "اهلا بك"; 
echo "$string <br>"; 
$Reversed = strrev($string); 
echo "<br><b>After Reverse</b><br><br>"; 
echo "<br> $Reversed"; 
?> 

結果:

اهلا بك 

After Reverse 


�٨� �؄ه٧ 

私はそれが方法であることが必要それは逆だが?ガーベージじゃない!

+0

あなた自身の質問には回答しましたがUTF-8を適切に処理できるようにするためには、さらに多くの関数を置き換える必要があります。 http://stackoverflow.com/questions/16858915/migrating-a-php-application-to-handle-utf-8/16862181#16862181 – Danack

答えて

9

ので、我々は)(utf8_strevするために私たちのコード内で)(strrevをチャゲに行くあなたはこのFunction

function utf8_strrev($str){ 
    preg_match_all('/./us', $str, $ar); 
    return join('', array_reverse($ar[0])); 
} 

を使用する必要がstrrev()サポートUTF-8 ことを確認するために:

$string = "اهلا بك"; 
echo "$string <br>"; 
$Reversed = utf8_strrev($string); // here we have changed it 
echo "<br><b>After Reverse</b><br><br>"; 
echo "<br> $Reversed"; 

、結果は

اهلا بك 

After Reverse 


كب الها 
+0

確かに、私はアラビア語を話さない。しかしそれは実際に私に同じ文字のように見えません –

+0

それはですが、アラビア語では文字を一緒に置くと、それはその言葉の後ろまたは前の場所から異なって見えます。真ん中にある –

+0

奇妙なこと:あなたはそれに慣れていれば論理的だと確信しています...私は、ギリシア語にはσが冒頭または中間または単語で使用されるとき、最後に使用される –