我正在使用imagettfbbox
来规范化动态生成图像的多个文本长度。
我正在使用字体名称的绝对路径。这完全没问题。
只要我在文件顶部使用chdir(__DIR__)
来简化我的包含,它就会停止工作,我收到以下错误:
Warning: imagettfbbox(): Invalid font filename
我知道导致问题的不是包含的文件,因为当我对这些文件使用绝对路径而不使用chdir(__DIR__)
时,它工作正常,如果我使用{{1}并且不包含文件,它不起作用。
有没有办法让chdir(__DIR__)
与imagettfbbox
合作?
编辑:这是澄清的代码示例
chdir(__DIR__)
编辑2:如果我更改目录,它也可以工作,但我更喜欢更优雅的解决方案:
chdir(__DIR__); //Works if this is removed and I use an absolute path for the include
include '../filename.php';
class Foo {
public function __construct() {
$this->font_size = 13;
$this->font_directory = __DIR__.'/../fonts/';
$this->font_name = "arial.ttf";
}
private function getStringLength($string) {
$font_size = $this->font_size;
$font_directory = $this->font_directory;
$font_name = $this->font_name;
return imagettfbbox($font_size,0, $font_directory.$font_name, $string)[2]
}
}