gpt4 book ai didi

php - file_get_contents 显示图像不正确

转载 作者:可可西里 更新时间:2023-11-01 00:05:57 26 4
gpt4 key购买 nike

我正在尝试将通用网站和 URL 作为我自己网站的一部分显示。这是我使用的相对简单代码的一部分:

浏览.php

<?   
$enteredurl = $_GET["url"];
$page = file_get_contents($enteredurl);
echo $page;
?>

如果 URl 是相对的而不是绝对的,忽略一些链接/图像将不起作用的事实,这很好用。使用 $_GET 访问页面,类似于

browse.php?url= http://itracki.com

网页将按预期显示。但是,当我尝试获取其他内容(例如图像)时,我会得到类似这样的内容,我认为它是二进制的还是什么?

browse.php?url= http://images.itracki.com/2011/06/favicon.png

‰PNG  IHDRóÿa%IDAT8Ëc8sæÌJ0M ```ã3`xaÔ€aa]r#f.–ÄíNIEND®B`‚

我一直在网上寻找并尝试修改页眉,比如

<? header('Content-type: image/png;'); ?>

但我仍然得到同样困惑的结果。有谁知道如果我只是通过在地址栏中输入“http://images.itracki.com/2011/06/favicon.png”来访问它,我如何才能真正看到图像?

谢谢!

最佳答案

试试这个:

<?php
$img = 'http://images.itracki.com/2011/06/favicon.png';
$info = getimagesize($img);
header('Content-type: ' . $info['mime']);
readfile($img);
?>

在这种情况下,您应该使用 readfile() 而不是 file_get_contents(),因为 readfile() 会将文件内容直接发送到浏览器而不是将其存储在内存中以供以后检索,这就是 file_get_contents() 所做的。

另请注意,content-type 是动态检索的,因此您不必担心在 header 中指定不正确。

某些图像的扩展名可能与其 content-typemime-type 不匹配,因此这可以纠正这些类型的问题。

关于php - file_get_contents 显示图像不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com