php - 使用 PHP 来“解析”带有响应头“content-type: image/jpeg”的图像
问题描述
我正在从 graph.facebook.com 请求一张图片
响应标头使用“content-type: image/jpeg”并提示我下载而不是在浏览器中显示。
有没有办法(使用 PHP)“拦截”下载并将其转换为图像格式?
干杯。
更新:
这种作品。它将图像返回到浏览器(在 Chrome 的网络选项卡中可见),但我不确定如何在<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.';
}
?>
解决方案
您的代码无效。您不要使用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,尤其是。可以禁用以前使用的网络包装器。
推荐阅读
- r - 如何使用 R 和 COM (RDCOMClient) 为 Excel 指定 UTF-8 单元格值和文件名?
- reactjs - 如何在 React js 中创建日期选择器
- c - 静态内联与内联静态
- django - kubernetes 上的 Postgres+django:django.db.utils.OperationalError:无法连接到服务器:连接超时
- sublimetext3 - Sublime Text 3 快捷方式查找和替换不起作用
- sql - 从具有 2 个字段终止的 txt 文件插入表
- vue-i18n - 如何在 Vue i18n 插件中获取当前语言环境?
- scala - 借助 BigDL 库,TransE 的损失在边际值处达到稳定水平
- string - 如何将字符串格式化为日期时间列并跳过空白值?
- python - 现在不推荐使用python 2,我们还需要使用venv来创建虚拟环境吗?