Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 在本地主机上工作但在live server上不工作的字体_Php_Fonts - Fatal编程技术网

Php 在本地主机上工作但在live server上不工作的字体

Php 在本地主机上工作但在live server上不工作的字体,php,fonts,Php,Fonts,我正在使用imagettftext()在图像上创建文本。我使用了times new roman字体,该应用程序可以在我的开发机器上正常工作,但不能在实时环境中工作 请再见。这是因为我的开发机器在windows和live上都是linux吗 请帮忙 实际问题是,我的locahost上的文本显示为“怪物”,但在实时服务器上显示为“Mo-nster”,这不仅与O有关,还与其他字母有关 $font = './fonts/times.ttf'; $bbox = imagettfbbox(30, 0

我正在使用
imagettftext()
在图像上创建文本。我使用了times new roman字体,该应用程序可以在我的开发机器上正常工作,但不能在实时环境中工作

请再见。这是因为我的开发机器在windows和live上都是linux吗

请帮忙

实际问题是,我的locahost上的文本显示为“怪物”,但在实时服务器上显示为“Mo-nster”,这不仅与O有关,还与其他字母有关

$font = './fonts/times.ttf';    

$bbox = imagettfbbox(30, 0, $font, $word);

$x = $bbox[0] + (imagesx($src) / 2) - ($bbox[4] / 2);
$y = $bbox[1] + (imagesy($src) / 2) - ($bbox[5] / 2)+212;

imagettftext($src, 30, 0, $x, $y, $color, $font, $word);

$bbox2 = imagettfbbox(18, 0, $font, $definition);

$x = $bbox2[0] + (imagesx($src) / 2) - ($bbox2[4] / 2);
$y = $bbox2[1] + (imagesy($src) / 2) - ($bbox2[5] / 2)+245;

imagettftext($src, 18, 0, $x, $y, $white, $font, $definition);

是的,可能linux服务器上没有安装字体(live)

我也有同样的错误,在我的例子中,问题是字体定义扩展。这是ttf,不是ttf。检查文件扩展名的大小写。

我很久以前就发现了这个问题,问题出在php版本上&因为我看到了一个关于这个问题的错误报告&快速修复

下面添加了链接

错误:

解决方案:(不更改PHP版本)

(参见sk89q的解决方案)


谢谢

我在我的网站目录中使用了字体文件,并在函数try
$font='font/times.ttf'中反映了它的路径
$font='../font/times.ttf'
并尝试获取完整路径(
echo realpath($\u SERVER['SCRIPT\u FILENAME'))
imez上面的想法是正确的-如果可以的话,我会标记它。问题是windows不关心文件扩展名,而Linux服务器关心文件扩展名。这可能就是它在本地工作而不是在现场的原因。Lee.-Digital Acorn Ltd.apache有权读取字体所在的文件/目录吗?