【发布时间】:2014-02-28 00:57:59
【问题描述】:
我正在使用 DOMDocument() 在我的代码中包含 RSS 提要。但是我得到这个错误:
在服务器配置中禁用 URL 文件访问
那是因为我的服务器不允许我修改 php.ini 文件或将 allow_url_fopen 设置为 ON。
有解决办法吗?这是我的完整代码:
<?php
$rss = new DOMDocument();
$rss->load('rss.php');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
echo '<table>';
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
echo <<<EOF
<tr>
<td><a href="$link"><b>$title</b></a></td>
</tr>
EOF;
}
echo '</table>';
?>
谢谢。
【问题讨论】:
-
除非
allow_url_fopen设置为 ON ,否则您将无法访问远程 URL。 -
它实际上有点奇怪,因为 RSS 提要在我的同一台服务器上......
-
使用 DOM 加载本地文件不需要 URL 文件访问。一定有其他问题。但就像随机拍摄一样尝试 $dom->loadXml(file_get_content('rss.php'))。另请注意,当您在本地加载 rss.php 时,不会执行该 rss.php 中的 PHP,因此无论如何这可能都不是您想要的。
-
谢谢,但没用。它说 Warning: DOMDocument::load() [domdocument.load]: Start tag expected, '