我想从rss网址获取链接。这是我的代码:
$doc = new DOMDocument();
$doc->load("http://www.alef.ir/rssdx.gmyefy,ggeltshmci.62ay2x.y.xml");
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$title = $node->getElementsByTagName('title')->item(0)->nodeValue;
$title=strip_tags($title);
$link=$node->getElementsByTagName('link')->item(0)->nodeValue;
}
我已经将这段代码用于其他几个网址,并且所有这些网址都有效,但在这个网址上我得到了:
警告:
DOMDocument :: load(http://www.alef.ir/rssdx.gmyefy,ggeltshmci.62ay2x.y.xml):无法打开流:HTTP请求失败!
HTTP / 1.1 403禁止在第14行的/home/xxxxxxx/domains/xxxxxxx/public_html/data.php中生效 的警告:
DOMDocument :: load():I / O警告:无法加载外部实体“http://www.alef.ir/rssdx.gmyefy,ggeltshmci.62ay2x.y.xml”
在第14行的/home/xxxxxxx/domains/xxxxxxx/public_html/data.php中 http://www.alef.ir/rssdx.gmyefy,ggeltshmci.62ay2x.y.xml
第14行是:
$doc->load("http://www.alef.ir/rssdx.gmyefy,ggeltshmci.62ay2x.y.xml");
你可以帮帮我吗?为什么这个请求会给我一个错误?
由于
答案 0 :(得分:1)
使用上面的代码对我来说失败了,这不是因为我评论的逗号。我发现,使用curl,我能够检索xml文件。
cabal repl
答案 1 :(得分:1)
在调用您的Feed之前添加此代码,这将更改用户代理。
$opts = array(
'http' => array(
'user_agent' => 'PHP libxml agent',
)
);
$context = stream_context_create($opts);
libxml_set_streams_context($context);