【问题标题】:PHP function file_get_contents retrieves encoded information - header: "'Content-Type: image/png'"PHP 函数 file_get_contents 检索编码信息 - header: "'Content-Type: image/png'"
【发布时间】:2012-09-18 02:00:17
【问题描述】:

大家好,我遇到了一些与 php 函数 file_get_contents 相关的问题。

我多次使用它,没有问题,但是当我试图从特定站点获取一些信息时,我在echo 得到的信息几乎是经过编码的(例如:���IHDR�)。

我查看了网站的标题,而不是说

Content-Type: text/html;

它在说

Content-Type: image/png

如何对其进行解码,以便获取网站的源代码 (html)?当我在浏览器中访问该网站时,它看起来就像一个普通的网站:文本、图像并没有什么特别之处。

当我查看源代码时,也没有什么不寻常的地方。但是当我执行file_get_contents 时,我并没有像以前在其他网站上那样获得源代码。

有什么想法吗?

注意:过去我也遇到过同样的问题,它是用 GZIP 编码的,我能够找到一个函数来解码它,但使用 Content-Type: image/png 我不知道如何继续。

【问题讨论】:

    标签: php content-type decode file-get-contents


    【解决方案1】:

    为什么不呢,创建一个基本的测试脚本来输出返回的图像,虽然我怀疑它的图像说:

    停止报废我的网站!!!雅达雅达

    header('Content-Type: image/png');
    echo file_get_contents('http://example.com');
    

    【讨论】:

    • 感谢您的回答;这也是我的错误,我不小心将错误的链接粘贴到了 file_get_contents 函数中。但这绝对是一种体验,我不知道在使用 file_get_contents 检索之前我必须先发送使用 header 函数
    • 没有在上面的例子中使用我的标题只会告诉你的浏览器下面是一个图像/png。如果您期望 html,则无需添加标题。很高兴你把它整理好了。
    【解决方案2】:

    Content-Type 标头告诉您请求的文件具有哪种内容类型,在您的情况下它是 PNG 图像 (image/png)。

    您可以在网上找到许多内容类型的描述(以所谓的 mime 类型规范编写),这是一个不错的列表:fileformat.info MIME types。

    正如您可以想象的那样,不可能以文本形式显示图像(至少在将其转换为 ascii 艺术之前不能),因此这次您不会有太多运气。

    检查 URI 是否真的是您想要获取的那个。

    【讨论】:

      猜你喜欢
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2019-03-06
      • 2018-03-17
      • 1970-01-01
      相关资源
      最近更新 更多