Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php imagettftext()-找不到字体位置_Php_Captcha_Imagettftext - Fatal编程技术网

Php imagettftext()-找不到字体位置

Php imagettftext()-找不到字体位置,php,captcha,imagettftext,Php,Captcha,Imagettftext,我正在使用imagettftext函数创建自定义验证码脚本 我已经在运行PHP版本5.3.8的PC上成功运行并测试了代码,但是当我上传到运行PHP版本5.2.17的共享主机帐户时,出现了以下错误 Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/pheelco/public_html/captcha.php on line 17 这是17号线 imagettftext($img,

我正在使用imagettftext函数创建自定义验证码脚本

我已经在运行PHP版本5.3.8的PC上成功运行并测试了代码,但是当我上传到运行PHP版本5.2.17的共享主机帐户时,出现了以下错误

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/pheelco/public_html/captcha.php on line 17
这是17号线

imagettftext($img, 25, 0, 0, 25, $text, "fonts/alger.ttf", $num);
我肯定有文件夹字体上传的字体,它在公共的html文件夹

有什么想法吗

注意:我没有权限更改任何PHP配置,因为我使用的是共享主机帐户。

imagettftext文档说明:

字体文件

要使用的TrueType字体的路径

根据PHP使用的GD库的版本,何时 fontfile不以前导/then开头。ttf将附加到 文件名和库将尝试搜索该文件名 沿着库定义的字体路径

当使用低于2.0.18的GD库版本时,空格 字符而不是分号用作“路径分隔符” 对于不同的字体文件。无意中使用此功能将导致 结果显示警告消息:警告:无法找到/打开字体。对于 在这些受影响的版本中,唯一的解决方案是将字体移动到 不包含空格的路径

在许多情况下,字体与脚本位于同一目录中 使用它,下面的技巧将缓解任何include问题

<?php // Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont'; ?>
你试过这个吗?您可以使用检查正在使用的GD的版本。

imagettftext文档说明:

字体文件

要使用的TrueType字体的路径

根据PHP使用的GD库的版本,何时 fontfile不以前导/then开头。ttf将附加到 文件名和库将尝试搜索该文件名 沿着库定义的字体路径

当使用低于2.0.18的GD库版本时,空格 字符而不是分号用作“路径分隔符” 对于不同的字体文件。无意中使用此功能将导致 结果显示警告消息:警告:无法找到/打开字体。对于 在这些受影响的版本中,唯一的解决方案是将字体移动到 不包含空格的路径

在许多情况下,字体与脚本位于同一目录中 使用它,下面的技巧将缓解任何include问题

<?php // Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont'; ?>

你试过这个吗?您可以使用检查正在使用的GD版本。

已解决。原来文件名是alger.TTF,文件扩展名大写,在我的代码中,我用小写扩展名引用它。出于某种原因,这在PHP5.3.8中仍然有效,但在PHP5.2.17中却不起作用。我希望这能帮助其他遇到此问题的人解决此问题。原来文件名是alger.TTF,文件扩展名大写,在我的代码中,我用小写扩展名引用它。出于某种原因,这在PHP5.3.8中仍然有效,但在PHP5.2.17中不起作用。我希望这能帮助其他遇到此问题的人

它不在同一文件夹中,而是在子目录中。@MichaelRuta:Then compensate:putenv'GDFONTPATH='。realpath'.'/字体问题解决了。原来文件名是alger.TTF,文件扩展名大写,在我的代码中,我用小写扩展名引用它。出于某种原因,这在PHP5.3.8中仍然有效,但在PHP5.2.17中不起作用。我希望这能帮助其他遇到此问题的人。虽然它不在同一文件夹中,但它在子目录中。@MichaelRuta:Then compensate:putenv'GDFONTPATH='。realpath'.'/字体问题解决了。原来文件名是alger.TTF,文件扩展名大写,在我的代码中,我用小写扩展名引用它。出于某种原因,这在PHP5.3.8中仍然有效,但在PHP5.2.17中却不起作用。我希望这能帮助其他遇到此问题的人。