0
因此,我構建了一個腳本,其中包含多個curl來驗證來自更多url的XML和extrac $ xml-> loc,但是當他發現其他任何不是xml文件如何檢查simpleXML是否爲空
...multi curl code...
if($httpcode>=200 && $httpcode<=300) {
$xml = new SimpleXMLElement($data);
if($xml !== NULL) {
foreach ($xml->url as $url_list) {
$url = $url_list->loc;
$newurls[] = $url;
}
}
}
如果我把5個有效XML網址它的工作原理,但如果我把100的鏈接,其中一人是不是一個XML文件中的腳本將停止。
錯誤:
[[email protected] ~]# php a z2
PHP Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /root/a:160
Stack trace:
#0 /root/a(160): SimpleXMLElement->__construct('\r\n<!DOCTYPE htm...')
#1 /root/a(65): mycurl_done('http://southpas...', '\r\n<!DOCTYPE htm...', Resource id #36)
#2 /root/a(175): ThreadsLoop()
#3 {main}
thrown in /root/a on line 160
[[email protected] ~]#
好像我的腳本嘗試從一個HTML文件中提取信息,因爲如果該文件不存在,它將我重定向到主頁(我猜)... 哪些選項如果SimpleHTMLElement無法解析我的$ data變量(這是XML文件中的完整源代碼),那麼我必須繼續下去?
似乎它的作品,但運行我的腳本30秒後不會從操作系統中被殺死......唯一的解釋是因爲數組不能容納那麼多的信息。 –
@ john-smith我相信默認的最大執行時間是30秒。你可能需要在你的php.ini文件中找到它。您可能還需要增加內存限制。 –
不是不是從最大執行時間或內存限制,我不得不研究一點點的問題,但我真的很確定不是從那裏... –