imagecreatefrompng() не распознает динамический путь

#php #gd #gettype #imagecreatefrompng

#php #gd #gettype #imagecreatefrompng

Вопрос:

Я хочу динамически открывать изображение в формате PNG, но imagecreatefrompng() ведет себя странно. Если я предоставлю явный путь, например:

 $our_image = imagecreatefrompng("https://example.com/customfiles/avatars/avatar2.png");
  

это работает отлично, но если я попытаюсь отправить строку:

 $our_image = imagecreatefrompng("https://example.com/customfiles/avatars/".$a);
  

это не работает. Когда я вывожу переменную, $a я вижу, что она равна avatar2.png

Кроме того, gettype() говорит, что $a это строка.

  • Что может быть причиной этой проблемы?
  • Может ли это быть связано с другим типом строк?

Комментарии:

1. пожалуйста, сделайте var_dump($a); — может быть, есть дополнительный символ, который вы не видите при повторении (пробел, перевод строки, ..)?

2. «это не работает» — вы получаете какие-либо ошибки? Или $our_image просто null / false?

3. var_dump говорит, что $a — это строка (11) — именно так и должно быть.

4. Я не получаю никаких ошибок. $our_image использует другое изображение (с именем avatar1.png) в этой папке. Он не должен этого делать, так как я вывожу $ a прямо перед строкой imagecreatefrompng, и это «avatar2.png», а не «avatar1.png»

5. под «$our_image принимает другое изображение» вы имеете в виду, что на выходе в вашем браузере отображается avatar1.png, верно? Может ли это быть проблемой кэширования? Как вы вызываете этот скрипт? попробуйте добавить ?test=1234

Ответ №1:

Помогло изменение имени файла. Похоже, что браузер взял старый файл из cash.