Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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_Gd_Truetype - Fatal编程技术网

PHP imagettftext无效的字体文件名

PHP imagettftext无效的字体文件名,php,gd,truetype,Php,Gd,Truetype,我正在尝试使用imagettftext创建带有文本的图像。它告诉我警告:imagettftext():第32行C:\xampp\htdocs\recentpost.php中的字体文件名无效。下面是我用来添加文本的第32行代码 imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!"); 我从C:/Windows/Fonts文件夹中复制了字体,因此它是一种有效的字体。如果您在Windows上,您应该使用。\Fon

我正在尝试使用imagettftext创建带有文本的图像。它告诉我警告:imagettftext():第32行C:\xampp\htdocs\recentpost.php中的字体文件名无效。下面是我用来添加文本的第32行代码

imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.ttf", "News!");

我从C:/Windows/Fonts文件夹中复制了字体,因此它是一种有效的字体。

如果您在Windows上,您应该使用
。\Fonts\arial.ttf“
作为路径,我认为可以尝试以下方法:

$font = dirname(__FILE__) . '/arial.ttf';
//OR
$font = dirname(__FILE__) . '/fonts/arial.ttf';    
imagettftext($img, 12, 0, 20, 1, $black, $font, "News!");
希望对您有所帮助

您是否尝试过使用

imagettftext($img, 12, 0, 20, 1, $black, "../fonts/arial.TTF", "News!");
相反?(.TTF而不是.TTF)


还有@Fab,你可以在windows上同时使用\和/。

噢,哇,我真蠢。。。对我来说,现在开始编写php:p已经太晚了,我正试图访问一个不存在的文件夹。真正的代码应该是

imagettftext($img, 12, 0, 20, 1, $black, "fonts/arial.ttf", "News!");

感谢大家试图纠正我的愚蠢错误:p

尝试使用双斜杠:

imagettftext($img, 12, 0, 20, 1, $black, "..\\fonts\\arial.ttf", "News!");

我试着使用上面的建议,但没有一个对我有效

所以,我将添加对我有用的东西,以防有人站在我的立场上

我曾经

imagettftext($img, 12, 0, 20, 1, $black, getcwd()."\fonts\\arial.ttf", "News!");
请注意,“arial.ttf”之前的额外反斜杠用于转义原始字体文件目录中的反斜杠

getcwd()
用于获取当前工作目录。你可以读更多


您可以使用
echo getcwd().“\font\\arial.ttf”
获取完整目录,并根据需要将所有反斜杠更改为正斜杠。它仍然可以正常工作

您尝试过使用完整路径而不是相对路径吗?是的,我尝试过,但它给了我相同的错误。请查看。在$fontfile参数的解释下,它解释了在某些情况下,如果文件名不是以斜杠开头,则会将“.ttf”附加到该路径。这可能会导致问题吗?只是尝试了一下,但也不起作用。我不明白发生了什么事。我有xampp,我相信它是最新的。我已经尝试了我能想到的一切,以及我在网上发现的每一个窍门,但我一辈子都无法让它发挥作用。虽然现在已经很晚了,并且已经为此工作了一段时间。这意味着字体必须与文件位于同一文件夹中,对吗?我以前没有使用过dirname(文件),所以我不确定它在alldirname中是如何工作的。dirname实际上返回父目录的路径,因此您可以将字体放在fonts文件夹中并使用上面提到的dirname,但是fonts文件夹应该在您的项目文件夹中。另外,您是否尝试过从根文件夹中包含字体?