php - file_get_contents () пуст, но контент присутствует

0

Я генерирую изображение, основанное на данных uri, в рамках простого скрипта php. Путь к файлу отлично работает при использовании внутри тега изображения. Я пытаюсь загрузить это изображение, используя php zip. В настоящее время он не работает, поскольку содержимое пуста.

Работает отлично:

$image2 = "http://cdn.screenrant.com/wp-content/uploads/Star-Wars-Logo-Art.jpg";
echo file_get_contents( $image2 ); // returns content to screen

Сбой:

$image2 = "/myPath/myPath1/script.php";
echo file_get_contents( $image2 ); // nothing displayed

Если я поместил этот путь в тег изображения на экране, это прекрасно

<img src="/myPath/myPath1/script.php" />

script.php Сценарий, используемый для создания изображения

$imgstr = "data:image/jpeg;base64,/9j/........... rest of string";
if (!preg_match('/data:([^;]*);base64,(.*)/', $imgstr, $matches)) {
die("error");
}

// Decode the data
$content = base64_decode($matches[2]);

// Output the correct HTTP headers
header('Content-Type: '.$matches[1]);
//header("Content-Type: image/jpeg"); // tried this made no difference

// Output the actual image data
echo $content;

Я все пробовал и, кажется, собираюсь по кругу. Любые советы очень приветствуются.

  • 0
    echo file_get_contents( $image2 ) будет отображать содержимое php-файла, а не версию, представленную сервером. Вам нужен CURL или включить.
  • 3
    Абсолютные ссылки на локальные файловые системы (начинающиеся с / ) основаны на корне файловой системы, а не на корне веб-сервера
Показать ещё 5 комментариев
Теги:

1 ответ

1

<img src="/myPath/myPath1/script.php" />

HTML, вызывает выполнение файла, соответствующего /myPath/myPath1/script.php.

Файл может быть расположен где угодно на сервере, в зависимости от конфигурации apache/nginx и .htaccess.

С другой стороны,

$image2 = "/myPath/myPath1/script.php";
echo file_get_contents( $image2 )

Пытается прочитать содержимое файла, расположенного на этом конкретном пути

Если вы хотите выполнить этот файл и знаете путь к нему:

$image2 = "/myPath/myPath1/script.php";
ob_start();
include $image2;
$contents=ob_get_clean();
  • 0
    Я только что попробовал это. На экране ничего не отображается, и var_dump из $ contents возвращает string(0) ""
  • 0
    Вы уверены, что у вас есть правильный путь к файлу скрипта?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню