Используйте PHP для "анализа" изображения с заголовком ответа "content-type: image / jpeg" - PullRequest
0 голосов
/ 22 мая 2019

Я запрашиваю изображение с graph.facebook.com

Заголовок ответа использует «content-type: image / jpeg» и предлагает мне загрузить его вместо отображения в браузере.

Есть ли способ (с использованием PHP) «перехватить» загрузку и преобразовать ее в формат изображения?

Приветствия.

ОБНОВЛЕНИЕ:

Этот вид работ.Он возвращает изображение в браузер (отображается на вкладке Chrome Network), но я не уверен, как отобразить его в теге <img>:

<?php
$data = file_get_contents("https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg");

// $data = base64_decode($data);

$im = imagecreatefromstring($data);

if ($im !== false) {
    header('Content-Type: image/png');
    $qwe = imagepng($im);
    imagedestroy($im);
    return $qwe;
}
else {
    echo 'An error occurred.';
}
?>

1 Ответ

1 голос
/ 22 мая 2019

Ваш код неверен.Вы не используете return из не функции, так как это не имеет смысла.Если в вашем случае вам нужно заменить

return $qwe;

на просто

echo $qwe;

, я бы также последовал за ним мгновенно die(); и удалил закрытие ?>.Это должно быть все, что вам нужно, чтобы это работало.

Не уверен, какой смысл извлекать файл JPEG, а выводить мысль PNG.Вы ничего не получаете, кроме траты времени и ресурсов, поэтому весь код преобразования довольно бесполезен, и повторения только что загруженного файла должно быть достаточно:

header('Content-Type: image/jpeg');
$data = file_get_contents(".....");
if ($data !== false) {
    echo $data;
}
die();

PS: В качестве домашней работы избавьтесь от использования file_get_contets() для доступа к сети и использования cURL, esp.сетевая оболочка, используемая прежними, может быть отключена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...