我有以下与我的警告相关的子代码。
$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行
任何智能的帮助都会受到赞赏:)
答案 0 :(得分:0)
您是否确认这些网址确实正在运行并返回有效的XML文档?你的代码虽然语法上很好,但可以使用更多的错误处理。
特别是在构建那些查询字符串时 - 你应该urlencode()
每个$ _POST插入所以生成的URL有效 - 现在如果有人搜索(比如说)alpha & beta
,结果网址会显示像
http://example.com?something=alpha & beta
两者都包含空格(不太好),并且只会搜索世界“alpha”,因为“&amp; beta”部分将被视为某些OTHER查询参数。