我目前有一个非常简单的新闻系统,使用DOMDocument->load()
从本地文件读取RSS。此外,还有一个非常简单的后端,可以将项目添加到已加载的Feed中,并使用DOMDocument->save()
将其保存回来。
这在我的测试服务器上工作正常,但是当部署到客户端时,保存操作失败并出现500错误。我认为这是由于他们已经存在的限制,这也限制了fopen
和file_get_contents
的使用,尽管我对如何加载XML很好感到困惑,但不能再将它保存回来。 / p>
所以我真的有两个问题(顽皮,我知道):
对于它的价值,这里是加载/保存的截断版本:
//load the xml
$doc = new DOMDocument();
$doc->load($_SERVER['DOCUMENT_ROOT'].'/news_rss.xml');
$doc->formatOutput = true;
//add some stuff to the xml ...
//save it again
$doc->save($_SERVER['DOCUMENT_ROOT'].'/news_rss.xml');
答案 0 :(得分:0)
DOM和CURL之间没有链接,所以你不能让DOM调用curl来为你提取/保存。您必须使用CURL获取某些资源并将其保存到临时文件(或变量)中,然后将该文件/变量用作DOM中的源。副版本也是如此 - DOM无法调用curl来保存文件。
鉴于您的加载/保存调用未使用URL(只是本地文件路径),我将检查news_rss.xml文件的权限。通常,系统上的大多数文件都是可供所有人阅读的,但不是每个人都有写权限。