解析XML文件超时

问题描述:

解析1986年的XML文件时出现问题..它给我执行超时!解析XML文件超时

这里是我的代码:

$XML_File = simplexml_load_file("EXTERNAL URL"); 

$projects = $XML_File->channel->item; 
$i = 0; 
while($projects) 
{ 
    $title = $projects[$i]->title; 
    $link = $projects[$i]->link; 
    $description = $projects[$i]->description; 
    $category = $projects[$i]->category; 
    $i++; 
} 

当我运行它,它超时后30秒,不返回任何结果!

当我改变了一个for循环..最大4它工作正常..有没有办法解析一个大文件?或者我应该转而创建一个桌面应用程序?

+0

取决于你可以尝试使用'的ini_set在服务器上()'和延长执行时间'的ini_set( '的max_execution_time',180)'。您也可以首先获取文件并将其保存在光盘上并从中解析出来,这样可以节省从网络中检索的几秒钟时间。 – Zefiryn

$XML_File = simplexml_load_file("EXTERNAL URL"); 

$projects = $XML_File->channel->item; 
$i = 0; 
while($projects) 
{ 
    $title = $projects[$i]->title; 
    $link = $projects[$i]->link; 
    $description = $projects[$i]->description; 
    $category = $projects[$i]->category; 
    $i++; 
} 

我不认为这会永远完成。你只是检查是否存在$projects

也许这样的事情会工作:

while(isset($projects[$i])) 
.... 
+0

这实际上对我有效!谢谢.. 我已经添加了一个执行时间代码,我google了,这就是结果。 本页面创建时间0.221807956696秒 – sikas

+0

很高兴帮助! – andrewsi