我的domdocument不会在所有尝试中加载xml文件

时间:2011-11-10 21:10:36

标签: xml domdocument php

我有以下与我的警告相关的子代码。

$xml[0]="http://www.kat.ph/search/".$_POST['search']."/?rss=1"; //http://www.kat.ph
$xml[1]="http://isohunt.com/js/rss/".$_POST['search']."?iht="; //http://isohunt.com
$xml[2]="http://btjunkie.org/rss.xml?query=".$_POST['search']."&q=".$_POST['search']."&o=52";//http://btjunkie.org          
$xml[3]="http://www.torrentreactor.net/rss.php?search=".$_POST['search'].""; //http://www.torrentreactor.net

 $xmlDoc = new DOMDocument();

for($site_count=0;$site_count<=3;$site_count++)   //LOoP for moving arround all four site

{ 
   $xmlDoc->load($xml[$site_count]);

代码问题是它有时会成功加载链接$ xml [0],但有时它不会加载$ xml [0]文件。并发出以下警告。

  

警告:

     

警告:DOMDocument :: load()[domdocument.load]:解析XML声明:'?&gt;'预期在http://www.kat.ph/search/kung%20fu%20panda/?rss=1,第40行的C:\ wamp \ www \ offlimits \ search_data.php中的第1行

     

警告:DOMDocument :: load()[domdocument.load]:期望开始标记,'&lt;'在http://www.kat.ph/search/kung%20fu%20panda/?rss=1中找不到,第40行的C:\ wamp \ www \ offlimits \ search_data.php中的第1行

任何智能的帮助都会受到赞赏:)

1 个答案:

答案 0 :(得分:0)

您是否确认这些网址确实正在运行并返回有效的XML文档?你的代码虽然语法上很好,但可以使用更多的错误处理。

特别是在构建那些查询字符串时 - 你应该urlencode()每个$ _POST插入所以生成的URL有效 - 现在如果有人搜索(比如说)alpha & beta,结果网址会显示像

 http://example.com?something=alpha & beta

两者都包含空格(不太好),并且只会搜索世界“alpha”,因为“&amp; beta”部分将被视为某些OTHER查询参数。