Я нашел обходной путь, но он не удовлетворяет меня, потому что я не знаю, почему возникает проблема.
На моем сайте я использую два скрипта: ScriptA.php и ScriptB.php. В ScriptA.php я использую
$font = 'img/cert/f1.ttf'; // path to font
В ScriptB.php это генерирует ошибку:
PHP Warning: imagettfbbox(): Could not find/open font in /var/www/vhosts/br-digitalsolutions.eu/httpdocs/partner/scriptB.php
Поэтому я должен использовать полный путь:
$font = '/var/www/vhosts/br-digitalsolutions.eu/httpdocs/partner/img/cert/f1.ttf'; // path to font
Если вы напишите свой шрифт так:
$font = "{$_SERVER["DOCUMENT_ROOT"]}/partner/img/cert/f1.ttf";
Вы должны быть в состоянии устранить эту ошибку. Это эквивалентно /var/www/vhosts/br-digitalsolutions.eu/httpdocs/partner/img/cert/f1.ttf
,
$_SERVER["DOCUMENT_ROOT"]
уже указывает на /var/www/vhosts/br-digitalsolutions.eu
таким образом, указание путей таким способом становится намного проще и менее подвержено ошибкам.
Надеюсь, это поможет 🙂
Построить полный путь 'f1.ttf'
с пути ScriptA.php
с помощью функции dirname()
и магическая константа __DIR__
(или же __FILE__
если вы используете версию PHP старше 5.3):
$font = __DIR__.'/img/cert/f1.ttf';
Проверьте также этот ответ (и комментарии) на аналогичный вопрос.