В настоящее время я пытаюсь сохранить изображение на своем локальном сервере с 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, но до сих пор не вижу, что я сделал не так.
До сих пор я также проверял эти пункты:
"ext-gd": "*"
, который необходим для функции.allow_url_fopen = On
, чтобы разрешить использование URL-адреса в качестве параметра.Я не знаю, важная ли это информация, но я использую эту командную строку для запуска моего локального сервера:
php -S локальный: 8000 -t публичный/
Что я пропустил ?
Результат вашего phpinfo();
может помочь.
@LeviathanCalumet Совет \imagecreatefrompng
не сработал. Что касается phpinfo();
, какая информация будет актуальной? Кстати, я заметил, что раздел gd отсутствует, когда я запускаю функцию, но это происходит, когда я обращаюсь к вкладке «информация о php» из MAMP. Значит ли это, что gd установлен неправильно?
Я не специалист по MAMP или любой (L/W/M/X)версии AMP, но, возможно, вам следует решить свою проблему следующим образом:
В результате выполнения phpinfo();
у вас должна быть запись для пути к файлу конфигурации (php.ini), откуда разрешается php.ini.
Затем в этом файле php.ini должна быть строка с комментариями, например ;extension=gd.so
. Вам нужно будет раскомментировать эту строку (убрать точку с запятой), чтобы сделать gd
активным.
Может быть, попробуйте использовать
$img = \imagecreatefrompng('https://ddragon.leagueoflegends.com/cdn/10.25.1/img/champion/Aatrox.png');
, чтобы заставить разрешение пространства имен PHP выглядеть в глобальном масштабе.