我知道这个问题可能听起来很奇怪,但我很担心我为什么来找你...
我想用imagettftext()从右到左而不是从左到右写一个文本字符串; 功能
我在手册中读到了角度变量控制它,它说0角度意味着从左到右,所以我尝试了180,360但没有任何反应
我需要用什么角度来让它从右到左书写
我正在写一个带有支持希伯来字符的font.ttf的希伯来文本字符串
<?php
$white = imagecolorallocate($background, 255, 255, 255);
$fontfile = "davidtr.ttf";
$string = "??????";
imagettftext($background, 12, 360, 3, 17, $white, $fontfile, $string);
?>
Run Code Online (Sandbox Code Playgroud)
我也使用了这个函数strrev(),
$white = imagecolorallocate($background, 255, 255, 255);
$fontfile = "davidtr.ttf";
$string = strrev("?????");
//imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
imagettftext($background, 12, 0, 3, 17, $white, $fontfile, $string);
Run Code Online (Sandbox Code Playgroud)
现在文字搞砸了图像上的一些字母是白色的盒子
然后我用这个功能:
function utf8_strrev($str){
preg_match_all('/./us', $str, $ar);
return join('',array_reverse($ar[0]));
}
Run Code Online (Sandbox Code Playgroud)
它对我帮助很大,但现在它也扭转了整数
$string = "??? 65 ???";
echo utf8_strrev($string);
//Now string revered but 65 converted to 56
Run Code Online (Sandbox Code Playgroud)
你能不能给我一个更好的解决方案,只有希伯来字符变成反转而不是整数.
在此先感谢,因为我知道一些开发人员会帮助我.
您可以像这样更改utf8_strrev():
function utf8_strrev($str){
preg_match_all('/([^\d]|\d+)/us', $str, $ar);
return join('',array_reverse($ar[0]));
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以匹配所有不是数字或一切数字的东西.
因此,字符串"one 123 two"将导致字符串"owt 123 eno".
utf8_strrev()中的数组$ ar就像preg_match_all()之后的那样:
[0] => o
[1] => n
[2] => e
[3] =>
[4] => 123
[5] =>
[6] => t
[7] => w
[8] => o
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1455 次 |
最近记录: |