[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с imagettftext
715kg
Здравствуйте, подскажите как сделать перенос текста на другую строку после допустим 8 символов.

Вот сам код. $server_name Выводит имя
imagettftext($im, 10, 0, 35, 72, $text_cl, $font, $server_name );


Если имя длинное, то оно выходит за рамки (не умещаеться)
user posted image

Как же сделать чтобы он переносил текст. Пример
user posted image

Заранее спасибо.



Спустя 8 минут, 24 секунды (13.04.2011 - 13:55) sharki написал(а):
Скорее всего, нужно делать условие
if(strlen($str) > 30) {
$server_name = wordwrap($server_name, 30, "\n", 1);
imagettftext($im, 10, 0, 35, 72, $text_cl, $font, $server_name );
}else{
imagettftext($im, 10, 0, 35, 72, $text_cl, $font, $server_name );
}

Спустя 5 минут, 28 секунд (13.04.2011 - 14:00) 715kg написал(а):
sharki

Поставил, но текст как был, так и остался за рамкой.
Мб что не так делаю? Просто новичёк.

Поясни что означают цифры 30 и "\n", 1
user posted image



Спустя 5 минут, 47 секунд (13.04.2011 - 14:06) sharki написал(а):
wordwrap -- Выполняет перенос строки на данное количество символов с использованием символа разрыва строки.
http://www.php.su/functions/?wordwrap

т.е wordwrap($server_name, 30, "\n", 1); берем строку $server_name считаем первые 30 символов, и по окончанию этих символов, разделить строку символом переноса строки \n, если последний аргумент установлен в 1, разрыв делается точно в заданной колонке. Поэтому если исходная строка содержит слово длиннее, чем заданная длина, то в этом случае слово будет разорвано.

Функция возвращает уже обработанную строку, почитай в мане.

if(strlen($str) > 30) здесь проверяется если длина строки больше 30 символов то выполнить условие, а если меньше то выполнить блок кода в else

Вообще надо поэкспериментировать, если не получается, обреж строку и сделай два imagettftext(); со сдвигом пикселей вниз.

Спустя 5 минут, 35 секунд (13.04.2011 - 14:12) 715kg написал(а):
Вообщем если ставить так,
$server_name = wordwrap($server_name, 21, "\n", 2);
imagettftext($im, 10, 0, 35, 72, $text_cl, $font, $server_name );


То работает. Но применяется ко всем всем imagettftext С $server_name
Вот что вышло.

user posted image

А это не желательно.

Спустя 1 минута, 20 секунд (13.04.2011 - 14:13) sharki написал(а):
715kg
Ну так назови разными именами, ведь это разные блоки)

А применяется ко всем, т.к переменная находится внутри одного блока функций, т.е она общая, в этом и проблема.

Спустя 3 минуты, 35 секунд (13.04.2011 - 14:17) 715kg написал(а):
Я так и подумал. Спасибо. Всё сделал.

Спустя 2 минуты, 48 секунд (13.04.2011 - 14:20) sharki написал(а):
715kg
Кстати как ты получаешь изображение с сервера? какая карта и сколько народу гамает?)

Спустя 9 минут, 51 секунда (13.04.2011 - 14:29) 715kg написал(а):
Ещё вопрос, а как сделать чтобы когда вторая строка так же заканчивалась, она не вылезала далее а больше не показывалась. Ну то есть поставить ограничения.

Пример.
$server_name, 21, "\n", 2


После 21 символа, перенос строки. Вторая строка тоже 21 символ, после чего не перенос, а обрезание.

--------------------------------------------------------------------
Что касается карты,

$status = imagecreatefromjpg('maps/'.$server_maps.'.jpg');
imagecopyresized($im, $status, 34, 105, 0, 0, 120, 90, 120, 90);


Думаю понятно что переменная $server_maps Так же выводит имя карты.

Спустя 10 минут, 30 секунд (13.04.2011 - 14:40) sharki написал(а):
715kg
Ну это понятно насчет картинки, она тебе пересылается с сервера CS?

есть функция $cutStr =mb_substr($str,0,21); т.е взять строку $str и вырезать 21 символ с 0 (нулевого)

Спустя 5 минут, 51 секунда (13.04.2011 - 14:46) 715kg написал(а):
sharki
Спасибо, всё понял.

Нет, скрины карт лежат в папке maps рядом со скриптом.

Спустя 10 минут, 58 секунд (13.04.2011 - 14:57) sharki написал(а):
715kg
Скрины вручную чтоль кидаешь? т.е ты идешь на сервер, делаешь скрин сервера и т.п

Спустя 3 часа, 40 минут, 23 секунды (13.04.2011 - 18:37) 715kg написал(а):
sharki
Нет, можно скачать пак скринов карт)) Иногда сам делаю. Я вот где то скачал пак из 10000 скринов карт и все)

Спустя 13 минут, 51 секунда (13.04.2011 - 18:51) sharki написал(а):
Ужас))

Спустя 9 минут, 44 секунды (13.04.2011 - 19:01) 715kg написал(а):
почему ужас? У всех мониторингов такая система. _) Не видел ни одного мониторинга у которого небыло бы папки содержащий скиншоты карт)

Спустя 14 минут, 32 секунды (13.04.2011 - 19:15) sharki написал(а):
Ну это понятное дело, я думал там на сервере есть какой скрипт, который выполняется через какой то промежуток времени, он идет и смотрит что за карта, возвращает ответ, и тут уже распоряжайтесь что и как.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.