如何使用PHP imgttftext()函数正确地将unicode单词写入图像

时间:2013-03-18 12:33:29

标签: php image unicode

我正在尝试使用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;
}

现在,例如عچں(其中包含三个字符عچں)作为单独和完整的字符打印在图像上,而不是剪切和连接字符以形成像عچں这样的乌尔都语单词。

我使用了代码U + 0627,U + 0628,U + 0629等字符来自此页http://en.wikipedia.org/wiki/List_of_Unicode_characters#Arabic

我在这里分享了代码:https://code.google.com/p/urdu-captcha/downloads/list

  

注意:我在提供的代码中的字符之间添加了空格   删除对文本的显示方式没有影响   图像。

如何将连接在一起的字符写成正确的单词?

1 个答案:

答案 0 :(得分:4)

您需要一个额外的库来执行阿拉伯字形加入。查看AR-PHP