12.11.2007, 10:49
общий
это ответ
Здравствуйте, Fyrfox!
1 функция пепеводит текст из cp1251 в UTF (поэтому храни текст в бази в cp1251:))
2 функция делает из текста массив, 1 параметром передаёшь сам текст, 2 - примерное кол-во символов(она бъёт по целым словам), т.е. в твоём случае можно смело указывать 7.
Ну и далее примерно так...
$text = "1р=0,5$ 1p=0,25Y";
$txt_array = text2array($text,30); //Бъём в массив
for($i=0;$i<count($txt_array);$i++) {
$text2 = win2uni($txt_array[$i]); //Переводим в utf
imagettftext($img, 8, 7, 16+$i*2.5, 55+15*$i, $white, "fonts/arial.ttf", $text2);
//(нужно только шрифт в папку fonts закинуть, можно из винды взять, можно использовать любой TrueType)
}
Функцию text2array($text, $width) можно соответственно модернизировать чтобы она была текст не по кол-во символов, а по разделителю... или даже воспользоваться обычным explode("
", $text);
Приложение:
function win2uni($s){ $s = convert_cyr_string($s, ‘w‘,‘i‘); for ($result=‘‘, $i=0; $i<strlen($s); $i++) { $charcode = ord($s[$i]); $result .= ($charcode>175)?"".(1040+($charcode-176)).";":$s[$i]; } return $result;}function text2array($text, $width){ $text = wordwrap($text, $width); return explode("\n",$text);}