PHP の imgttftext() 関数を使用して、画像にウルドゥー語のテキストを書き込もうとしています。次のコードを使用してテキストを変換しない限り、文字は表示されません。
function convert($text){
$out="";
mb_language('uni');
mb_internal_encoding('UTF-8');
$text = mb_convert_encoding($text, 'HTML-ENTITIES',"UTF-8");
$text = html_entity_decode($text,ENT_NOQUOTES, "ISO-8859-1");
for($i = 0; $i < strlen($text); $i++) {
$letter = $text[$i];
$num = ord($letter);
if($num>127) {
$out .= "&#$num;";
} else {
$out .= $letter;
}
}
return $out;
}
現在、テキスト、たとえば عچں (3 文字の ع چ ں を含む) は、文字を切り取り結合して عچں のようなウルドゥー語を形成するのではなく、個別の完全な文字として画像に印刷されます。
このページhttp://en.wikipedia.org/wiki/List_of_Unicode_characters#Arabicから、コード U+0627、U+0628、U+0629 などの文字 ا ت ث を使用しました。
ここでコードを共有しました: https://code.google.com/p/urdu-captcha/downloads/list
注:提供されたコードの文字間にスペースを追加しましたが、画像にテキストが表示される方法に違いはありません。
適切な単語を形成するために結合された文字を書くにはどうすればよいですか?