【问题标题】:file_get_contents not actually grabbing file? Blank?file_get_contents 实际上没有抓取文件?空白的?
【发布时间】:2011-11-01 12:17:08
【问题描述】:

试试这个我拼凑的示例代码来说明一点:

<?php 
$url = "http://www.amazon.com/gp/offer-listing/B003WSNV4E/";
$html = file_get_contents($url);
echo($html);
?>

亚马逊主页使用这种方法可以正常工作(它在浏览器中回显),但是这个页面没有输出任何东西。这是有原因的,我该如何解决?

【问题讨论】:

  • 在这里工作正常...可能是您的计算机有问题吗?防火墙?
  • 该死,堆栈溢出弄乱了我的链接。正确的链接在这里:amazon.com/gp/offer-listing/B003WSNV4E
  • 使用 Firebug 的 Net 选项卡或 HTTPFox 来查看浏览器-服务器交换 - 这不是一个简单的 url - 亚马逊会进行重定向。
  • @Rampage 问题中的 URL 和您评论中更新的 URL 都对我有用。

标签: php


【解决方案1】:

我认为您的问题是您误解了自己的代码。

您对这个问题发表了以下评论(强调我的问题):

我以前从未使用过这些实用程序,所以也许我做错了,但似乎只是在下载此页面https://www.amazon.com/gp/offer-listing/B003WSNV4E/ref=dp_olp_new?ie=UTF8&condition=new

这对我来说意味着当您运行此代码时,您的浏览器中会出现一个亚马逊页面。 这完全是意料之中的。

当您尝试下载 https://rads.stackoverflow.com/amzn/click/B003WSNV4E 时,您将被重定向到 https://www.amazon.com/gp/offer-listing/B003WSNV4E/ref=dp_olp_new?ie=UTF8&amp;condition=new,这是 StackOverflow 的 RADS 系统的意图。

从那里发生的事情是,您的代码正在将 原始 HTML 加载到您的 $html 变量中并将其直接转储到浏览器。因为您将原始 HTML 传递给浏览器,所以浏览器会这样解释它,并尝试(并成功)呈现页面。

如果你只是想看代码,不渲染,那么你需要先把它转换成html实体:

echo htmlentities($html);

【讨论】:

  • 或做一个header('Content-type: text/plain');
  • @Marc 好吧,如果你想对它感兴趣的话。 ;) 说真的,你是绝对正确的。如果 OP 想在他的页面上输出任何其他 HTML,它也会导致问题。
  • @AgentConundrum:感谢您的帮助。但是,我想你误解了我的意思。我正在使用的页面是直接来自浏览器中 URL 的页面。 Stack Overflow 将其更改为其他内容(可能是因为我是新用户?)。我在浏览器中没有看到 any 重定向,使用此链接:http://amazon.com/gp/offer-listing/B003WSNV4E
  • @Rampage 我在这里迷路了。重定向与此有什么关系?您一直发布的 RADS 链接和亚马逊链接对我来说都很好。您到底希望发生什么?
  • @Agent:好的,你有一个可以测试这个脚本的实时服务器吗?您能否发布该脚本运行并显示除空白页之外的任何内容的屏幕截图吗?
猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 2011-05-15
  • 2014-10-10
  • 1970-01-01
相关资源
最近更新 更多