【发布时间】:2020-12-13 14:43:56
【问题描述】:
我目前正在尝试使用以下代码从 url 将图像保存在我的本地服务器上:
private function getDragontailImage() {
/* load image from the url */
$img = imagecreatefrompng('https://ddragon.leagueoflegends.com/cdn/10.25.1/img/champion/Aatrox.png');
/* Save the image on my local server but the execution actualy does not reach this point */
file_put_contents('my/local/path', $img);
}
不幸的是,发生了以下错误:
试图从命名空间调用函数“imagecreatefrompng” “应用\控制器”。
这个命名空间确实是我调用函数的地方。据我了解,这个错误经常发生在语法错误的时候。我将我的语法与php manual 中的语法进行了比较,但我仍然看不出我做错了什么。
到目前为止,我还检查了以下几点:
- 我的 composer.json 文件包含
"ext-gd": "*"- 这是函数所必需的。 - 我的 php.ini 文件有
allow_url_fopen = On以便能够使用 url 作为参数。 - 在我的 php infos 中,我可以看到 GD 支持和 PNG 支持已启用。
- 这些更改后,我已重新启动本地服务器。
我不知道这是否是重要信息,但我使用此命令行来运行我的本地服务器:
php -S localhost:8000 -t public/
我错过了什么?
【问题讨论】:
-
也许可以尝试使用
$img = \imagecreatefrompng('https://ddragon.leagueoflegends.com/cdn/10.25.1/img/champion/Aatrox.png');来强制 PHP 命名空间解析在全局中查找。 -
phpinfo();的结果可能会有所帮助。 -
@LeviathanCalume
\imagecreatefrompng提示无效。关于phpinfo();,哪些信息是相关的?顺便说一句,我注意到当我运行该函数时 gd 部分不存在,但是当我从 MAMP 咨询“php infos”选项卡时。是不是说gd没有正确安装?
标签: php