在GD中显示从右到左连接的语言(如波斯语和阿拉伯语)-可能的PHP错误

Alireza Fallah

我想用php gd库创建一个带有文本的图像。

一切都很好,但是当我尝试使用从右向左连接的语言(如波斯语)写一个单词时imagefttext(),我的文本从左向右(反向)呈现,并且字符不再连接。

示例连接字符的:ماه例如未连接字符的:ماه

这是我的代码:

    header('Content-Type: image/jpeg');
    $thumb_path = "...";
    $font_path = "..."
    $img = imagecreatefromjpeg($thumb_path);
    $color = "...";
    // __month is a Persian word :  ( م ا ه -->  ماه )
    $text = $months." ".__month;
    imagefttext($img,29, 10, 230, 135, $color, $font_path, $text); // <--
    imagejpeg($img);

渲染的图像:

月

我知道我的问题不是编码。因为我已经尝试过:

$text = mb_convert_encoding($text, "HTML-ENTITIES", "UTF-8");

结果是一样的。

有一些库可以解决这个问题。而且我知道你们中的大多数人都不熟悉波斯语阿拉伯语,但是我的问题是为什么原生gd不支持从右到左连接的语言?

这可能是gd库中的错误吗?

等等

似乎没有任何帮助(设置正确的语言环境),原生PHP支持存在问题,这可能就是创建3rd party包的原因:

使用php-gd-farsi

发挥魅力:

在此处输入图片说明

只需将库复制到您的PHP目录(不必是管理员)。用法很简单:

// init:
include('php-gd-farsi-master/FarsiGD.php');
$gd = new FarsiGD();

....
// then convert your text:
$tx = $gd->persianText($str, 'fa', 'normal');

您甚至不必设置正确的语言环境!:-)

整个示例代码:

<?php

include('php-gd-farsi-master/FarsiGD.php');

$gd = new FarsiGD();

// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Path to our ttf font file
//$font_file = './Vera.ttf';
$font_file = './cour.ttf';

// Draw the text 'PHP Manual' using font size 13
$text = imagecreatetruecolor(200, 60);
imagefilledrectangle($text, 0, 0, 200, 60, $red);
$str = '**ماه**';
$tx = $gd->persianText($str, 'fa', 'normal');
imagefttext($text, 24, 10, 10, 50, $black, $font_file,$tx );
$im = $text;

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在GD中显示从右到左连接的语言(如波斯语和阿拉伯语)-可能的PHP错误

来自分类Dev

在php中重命名文件名(波斯语/波斯语/阿拉伯语)

来自分类Dev

Stimulsoft报告richText错误中的Unicode字符(阿拉伯语或波斯语)

来自分类Dev

避免用RTL语言(波斯语,阿拉伯语)错误地包装某些单词

来自分类Dev

php从字符串中删除阿拉伯语/波斯语字符串

来自分类Dev

在PHP中搜索并替换阿拉伯语

来自分类Dev

连接从左到右和从右到左的语言(阿拉伯语等)

来自分类Dev

python3中波斯语或阿拉伯语的unicode和编码

来自分类Dev

如何找到阿拉伯语和波斯语中的mist漏?

来自分类Dev

阿拉伯语的PHP Hashtag不能是链接

来自分类Dev

来自阿拉伯语的PHP Curl编码

来自分类Dev

PHP删除Unicode阿拉伯语字符

来自分类Dev

使用PHP和MySQL按字母顺序检索阿拉伯语单词

来自分类Dev

在ASP.NET中收到阿拉伯语日期时间错误

来自分类Dev

php mysql在数据库中插入阿拉伯语单词

来自分类Dev

在python 2.7中打印阿拉伯语/波斯语字母

来自分类Dev

在python 2.7中打印阿拉伯语/波斯语字母

来自分类Dev

Android Studio 2.3 XML 预览版上可能不显示阿拉伯语

来自分类Dev

从对象填充的下拉列表中未正确显示波斯语/阿拉伯语文本

来自分类Dev

在MySQL数据库中存储波斯语\阿拉伯语文本

来自分类Dev

如何在Java控制台中打印波斯语和阿拉伯语(utf-8)字符?

来自分类Dev

使用阿拉伯语列名称的更新语句中的语法错误

来自分类Dev

仅将指定的div的英语数字转换为波斯语/阿拉伯语

来自分类Dev

RTL(波斯语-阿拉伯语)字母被android studio编辑器弄乱了

来自分类Dev

如何使lubuntu(LXDE)终端支持阿拉伯语或波斯语?

来自分类Dev

如何在Office Word 365中将页码的数字更改为波斯语或阿拉伯语

来自分类Dev

带有阿拉伯语信息的php html联系人表格

来自分类Dev

阿拉伯语PDF格式转换为PHP至MYSQL,Unicode解码?

来自分类Dev

iOS-在推送通知中处理阿拉伯语/从右到左语言

Related 相关文章

  1. 1

    在GD中显示从右到左连接的语言(如波斯语和阿拉伯语)-可能的PHP错误

  2. 2

    在php中重命名文件名(波斯语/波斯语/阿拉伯语)

  3. 3

    Stimulsoft报告richText错误中的Unicode字符(阿拉伯语或波斯语)

  4. 4

    避免用RTL语言(波斯语,阿拉伯语)错误地包装某些单词

  5. 5

    php从字符串中删除阿拉伯语/波斯语字符串

  6. 6

    在PHP中搜索并替换阿拉伯语

  7. 7

    连接从左到右和从右到左的语言(阿拉伯语等)

  8. 8

    python3中波斯语或阿拉伯语的unicode和编码

  9. 9

    如何找到阿拉伯语和波斯语中的mist漏?

  10. 10

    阿拉伯语的PHP Hashtag不能是链接

  11. 11

    来自阿拉伯语的PHP Curl编码

  12. 12

    PHP删除Unicode阿拉伯语字符

  13. 13

    使用PHP和MySQL按字母顺序检索阿拉伯语单词

  14. 14

    在ASP.NET中收到阿拉伯语日期时间错误

  15. 15

    php mysql在数据库中插入阿拉伯语单词

  16. 16

    在python 2.7中打印阿拉伯语/波斯语字母

  17. 17

    在python 2.7中打印阿拉伯语/波斯语字母

  18. 18

    Android Studio 2.3 XML 预览版上可能不显示阿拉伯语

  19. 19

    从对象填充的下拉列表中未正确显示波斯语/阿拉伯语文本

  20. 20

    在MySQL数据库中存储波斯语\阿拉伯语文本

  21. 21

    如何在Java控制台中打印波斯语和阿拉伯语(utf-8)字符?

  22. 22

    使用阿拉伯语列名称的更新语句中的语法错误

  23. 23

    仅将指定的div的英语数字转换为波斯语/阿拉伯语

  24. 24

    RTL(波斯语-阿拉伯语)字母被android studio编辑器弄乱了

  25. 25

    如何使lubuntu(LXDE)终端支持阿拉伯语或波斯语?

  26. 26

    如何在Office Word 365中将页码的数字更改为波斯语或阿拉伯语

  27. 27

    带有阿拉伯语信息的php html联系人表格

  28. 28

    阿拉伯语PDF格式转换为PHP至MYSQL,Unicode解码?

  29. 29

    iOS-在推送通知中处理阿拉伯语/从右到左语言

热门标签

归档