file_get_contents实际上没有抓取文件?空白?

时间:2011-08-22 21:47:49

标签: php

试试这个示例代码,我把它放在一起说明一点:

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

亚马逊主页使用此方法正常工作(它在浏览器中回显),但此页面不输出任何内容。这有什么原因,我该如何解决?

1 个答案:

答案 0 :(得分:1)

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

你对这个问题发表评论(强调我的):

  

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

这意味着,当您运行此代码时,您的浏览器中会出现一个Amazon页面。 完全可以预料到这一点。

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

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

如果您只想查看代码,但不想渲染它,那么您需要先将其转换为html实体:

echo htmlentities($html);