使用chdir(__ DIR__)后,imagettfbbox不再有效

时间:2014-10-31 20:17:26

标签: php

我正在使用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]
    }
}

0 个答案:

没有答案