לא מזמן הייתי גם צריך לעשות משהו דומה, אז קח את הקוד שהשתמשתי בו, זה על אותו עיקרון שאיתי הציע, אתה בודק את הרוחב של הטקסט ואז מוריד אותו מהמיקום שאתה רוצה שהטקסט יופיע בו.
PHP קוד:
function hebrew($text){
preg_match_all('/./us', $text, $ar);
$newtext = implode('',array_reverse($ar[0]));
preg_match_all('/([a-zA-Z0-9 \)\(\.,]+)/',$text,$match);
foreach($match[0] as $v){
$newtext = str_replace(strrev($v),$v,$newtext);
}
return $newtext;
}
$text="טקסט ארוך טקסט ארוך טקסט ארוך טקסט ארוך טקסט ארוך טקסט ארוך טקסט ארוך טקסט ארוך";
$size = 12;
$x = 260;
$y = 30;
$maxwidth = 55;
$arSize = imagettfbbox($size,0,$font,hebrew($text));
$iWidth = abs($arSize[2] - $arSize[0]);
$iHeight = abs($arSize[7] - $arSize[1]);
imagettftext($im,$size,0,$x-$iWidth,$y,$color,$font,hebrew($text));
הפונקציה hebrew לוקחת את הטקסט והופכת את הכל אבל הופכת בחזרה מילים באנגלית ומספרים, היא לא מושלמת אבל עדיפה על הפיכה רגילה שהופכת לך גם דברים שלא צריך.
(אני משתמש בקוד פה:
http://norris.jokey.co.il/quotes.png)