试试这个示例代码,我把它放在一起说明一点:
<?php
$url = "http://www.amazon.com/gp/offer-listing/B003WSNV4E/";
$html = file_get_contents($url);
echo($html);
?>
亚马逊主页使用此方法正常工作(它在浏览器中回显),但此页面不输出任何内容。这有什么原因,我该如何解决?
答案 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);