Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

379

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Советник

378

Россия, Санкт-Петербург


ID: 401888

puporev

Профессор

216

Россия, Пермский край


ID: 405338

vovaromanov.jr

1-й класс

130


ID: 400669

epimkin

Профессионал

112


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

26

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-19 18:16:01-standard


Создание программ на языках PHP, Perl и Python.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)

Консультация онлайн # 109004

Раздел: PHP / Perl / Python
Автор вопроса: Fyrfox
Дата: 12.11.2007, 08:38 Консультация закрыта
Поступило ответов: 1

Привет!
Вопрос: "как вывести на картинке текст в несколько строк?"
Подробнее: из базы получаем массив строк(курсы валют например) и преобразуем в переменной в строку типа "1р=0,5$<br>1p=0,25Y<br>" итд
Тоесть текстом мы прекрасно можем вывести на страницу. Даже отформатировать. Это не проблема. Забуксовал при выводе этого на картинку. Выводит и "/n" и "<br>" как обычный текст. А надо разбить на строки.
Дополнительно - текст в базе в UTF-8 - с этим тоже надо бороться, иначе выводит кракозябры. ПХП 5.2.2 мускул 4.
Благодарю за внимание.

Ответ # 193362 от Маров Николай Станиславович
Здравствуйте, 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("<br>", $text);

Приложение:


Маров Николай Станиславович

Посетитель
12.11.2007, 10:49
Мини-форум консультации # 109004
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 48

Асмик Гаряка

Советник

Рейтинг: 0

SAW

Студент

Рейтинг: 0

Хватов Сергей

Академик

Рейтинг: 0

Марк Крейн

5-й класс

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0