0

所以我有一个简单的 php 文件,它应该读取 rss 提要的源并将其写入 SimpleXML 对象。我的代码适用于大多数网址。我已经与 CNN 和其他一些人进行了测试。但是,我实际上需要它来处理的 URL 挂起。我已经与托管内容的公司谈了一些,他们说没有什么特别的,它应该可以工作。任何人都可以抛出任何关于为什么特定 URL 会挂起的想法吗?(仅供参考,内容来自 Compendium 托管的博客)

这是我的代码:

$url = "http://www.example.com/rss?compendium_feed_count=3";
$xml = file_get_contents($url);
print_r($xml);
$xmldoc = new SimpleXMLElement($xml);
print_r($xmldoc);
4

1 回答 1

0

答案是因为我试图从中提取的博客与它来自的主机共享相同的域名。我编写的脚本位于 example.com,博客位于 example.com/blog。它们是独立的服务器,但显然服务器会看到脚本试图访问的 url,并且在内部而不是外部查看。如果我将脚本放在不同的主机上进行测试,它可以正常工作。所以现在我必须弄清楚如何让服务器将这种请求推送出去。

编辑:所以,问题在于网络服务器为指向另一台服务器的“/博客”路径设置了反向代理。我也必须通过代理路由请求。它是这样完成的:

$aContext = array('http'=>array('proxy'=>'tcp://client-proxy.exampleproxy.com:80','request_fulluri'=>true));
$url = "http://www.example.com/rss?compendium_feed_count=3";
$cxContext = stream_context_create($aContext);
$xml = file_get_contents($url,FALSE,$cxContext);
$xmldoc = new SimpleXMLElement($xml);
于 2013-03-11T20:35:01.697 回答