шрифты в GD под Linux-ом

Anton108

Новичок
шрифты в GD под Linux-ом

Использую функцию imageTTFtext, указываю в ней путь к шрифту, у меня дома это C:\WINDOWS\FONTS\verdana.ttf. Выкладываю скрипт в инет (на серваке стоит FreeBSD), копирую файл verdana.ttf в каталог со скриптом, в скрипте путь пишу verdana.ttf.
Не работает.
Что делать, как подключить данный шрифт?
 

Anton108

Новичок
Originally posted by SiMM
Указывай абсолютный путь.
А какой у меня абсолютный путь?
Я попробовал /public_html/images/verdana.ttf и public_html/images/verdana.ttf и /images/verdana.ttf и images/verdana.ttf - не работает.
Хостинг - McHost.
 

Фанат

oncle terrible
Команда форума
Anton108
все перечисленное не имеет ничего общего с абсолютными путями.
Специально для тех, кто путается в файлах и каталогах, написан вот этот текст: PHP FAQ: Различие между абсолютными и относительными путями. В файловой системе и на сайте.

Я прекрасно понимаю, что тем, кто не застал ДОСа, а знакомство с компьютером начал с ярлыков виндоуса, просто неоткуда взять информацию.
 

Anton108

Новичок
Люди, почитал, посмотрел, в конфе переменная DOCUMENT_ROOT равна /wrk/hosts/tetthes/public_html.
Я написал путь - /wrk/hosts/tetthes/public_html/images/verdana.ttf - все равно не работает!
Но дело именно в этом - убираю функцию imageTTFtext - и все пашет! А может дело в шрифте - он же виндозный (я его из WINDOWS/FONTS скопировал) - или дело не в этом.

PS.
DOS я застал, так же как и Win 3.11 тоже.
 

Фанат

oncle terrible
Команда форума
1. писать надо не путь, который в DOCUMENT_ROOT , а правильный полный путь к файлу.
2. писать путь надо соблюдая регистр букв.

для проверки сначала попробовать обратиться к файлу с помощью файловых функций.

-~{}~ 02.01.05 16:41:

то есть, ты сейчас всю дорогу описываешь действия - "я попробовал то, я попробовал это... Эдак и наперекосяк". И какая разница - что ты пробовал?
ЕСЛИ ТЫ НЕ ЗНАЕШЬ РЕЗУЛЬТАТА?
Действия надо проверять. Только не надо думать, что работа твоей функции - это и есть проверка.
У тебя задача - прописать полный путь к файлу.
вот эту задачу и надо проверять.

Действия не важны.
Важен результат. Полный путь к файлу. Как ты его получаешь - через документ рут или с помощью интуиции - это никого не волнует, в том числе и тебя самого
Важен РЕЗУЛЬТАТ.
что файл по такому пути однозначно идентифицируется и находится.

Ты пойми, что не действия тебе нужны, а результат.
а результат надо проверять.
Это я тебе вообще говорю, на будущее.
Именно таким подходом программист отличается от гадалки.
 

Anton108

Новичок
Итак. Все заново:
Есть некий хостинг, в нем есть папка public_html, в которой лежит следующее:
- каталог images
- файл index.php
каталог images содержит:
- registcode.php
- verdana.ttf (скопирован из WINDOWS/FONTS/)

Содержимое файла index.php:
PHP:
$font=$_SERVER["DOCUMENT_ROOT"]."/images/verdana.ttf";
$size=filesize($font);  
if (file_exists($font))
     print "Файл <b>$font</b> существует. Его размер: $size"; 
else 
     print "Файла <b>$font</b> не существует!";
Выполнение index.php выдает:
Файл /wrk/hosts/tetthes/public_html/images/verdana.ttf существует. Его размер: 171792


Файл registcode.php среди прочего содержит:
PHP:
...
$font=$_SERVER["DOCUMENT_ROOT"]."/images/verdana.ttf";
$letter=imagecolorallocate($im, 100, 100, 100);
imageTTFtext($im,15,0,100,35,$letter,$font,'A');
...
Вызов registcode.php выдает пустой экран вместо картинки. Если закомментировать функцию imageTTFtext, то картинка рисуется (без букв конечно, но зато рисует остальное - что я не привел в листинге).

Дома это все работает прекрасно, и с функцией imageTTFtext.
Как решить эту проблему?

phpinfo() здесь:

PS. Фанат, спасибо за развернутый комментарий, буду иметь ввиду.
 

Frol

Новичок
ты лучше header закомментируй и посмотри ошибку.
 

Anton108

Новичок
Originally posted by Frol
ты лучше header закомментируй и посмотри ошибку.
Как мне это сделать?

И еще, у меня дома если ошибка - то выдается сообщение об ошибке, а на хостинге никакого сообщения не выдается. Как мне сделать, чтобы выдавалась ошибка?
 

Anton108

Новичок
О! Большое спасибо. Теперь при вызове картинки на экран выдается:
Fatal error: Call to undefined function: imagettftext() in /wrk/hosts/tetthes/public_html/images/registcode.php on line 32

Походу это значит что такая функция не известна!?
Хм... Как бы исправить эту оплошность?
 

SiMM

Новичок
[m]imageTTFtext[/m], читай комментарии пользователей.
PS: там же написано всё в Configure Command
 

Anton108

Новичок
Originally posted by SiMM
[m]imageTTFtext[/m], читай комментарии пользователей.
PS: там же написано всё в Configure Command
Значит из необходимых опций не хватает:
--enable-gd-native-ttf
--with-zlib-dir=/usr/local/lib/zlib-1.2.1
--with-ttf
--with-freetype-dir=/usr/local/lib/freetype-2.1.9/

Чтобы их включить мне необходимо перекомпилить PHP !? Хм... А как это сделать? Админам написать?
 

Anton108

Новичок
Админ мне ответил:
"В данный момент скомпелить PHP с данными параметрами невозможно.
Это будет возможно после выходна новой версии панели управления."

Мда... Будем ждать.
 

CasterTroy

Guest
Админ видно не в состоянии сам собрать php и страдает надеждой на cpanel...
 

Anton108

Новичок
Админ вообще урод - заявляет что все услуги, заявленные в тарифном плане предоставлены. Я ему говорю - PHP работоспособное не предоставлено - он притворяется, что не слышит - "PHP доступно для всех тарифных планов".
Люди, не связывайтесь с хостингом MCHOST !!!
 
Сверху