我遇到问题,cURL无法连接到返回xml提要的服务器,并且不确定我的代码是否堆叠并导致问题。当下一个循环迭代到来时,是否有可能在此foreach循环中调用的最终函数仍在运行。
是否有可能确保循环中的所有函数在下一次迭代开始之前完成,或者默认情况下是否默认执行此操作?我尝试在process_xml()上设置return true并在循环中运行测试:if($ this-> process_xml($ xml_array))continue; 但它似乎没有效果,反正似乎是一个坏主意。
foreach($arrayOfUrls as $url){
//retrieve xml from url as string.
if($url_xml_string = $this->getFeedStringUsing_cURL($url)){
$xml_object = simplexml_load_string($url_xml_string);
$xml_array = $this->feedStringToArray($xml_object);
//process the xml.
$this->process_xml($xml_array);
}
}
答案 0 :(得分:1)
不,这是不可能的。每个语句都在下一个语句运行之前执行并完成。
答案 1 :(得分:0)
我不确定我的代码是否正在堆叠
不确定?如果这对你很重要,为什么不找出来?不知道你在运行什么操作系统很难建议你如何去做 - 但netstat可能是一个很好的起点。
这个foreach循环中调用的最终函数是否仍然可以运行
这是非常不可能的 - PHP脚本在单个执行线程中运行,除非你告诉他们不要 - 但是curl扩展允许你在操作完成之前运行的php代码中定义回调,并且curl_multi_系列函数也是允许您在请求进行时运行php代码。