通过异步卷曲调用时,Php脚本停止

时间:2016-07-08 13:23:51

标签: php curl asynchronous

这是一个调用$ url的PHP代码:

        $handle = curl_multi_init();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 6000);
        curl_setopt($ch, CURLOPT_USERPWD, "xxxx:xxxx");
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($ch,CURLOPT_COOKIE, CookieName . "=" .Security::getSid());
        //$output = curl_exec($ch);
        //curl_close($ch);
        curl_multi_add_handle($handle, $ch);
        $mrc = curl_multi_exec($handle, $active);

问题: 通过curl调用时,$ url处的脚本会停止,并且在print "something";的行上没有任何错误。如果我拿走网址并在浏览器中打开它,那么它可以正常工作。

这在今天早上在ubuntu 14.04系统上开始发生而不修改任何PHP脚本。

请注意,调用者和$ url都在htaccess上(相同的机器,相同的htaccess凭据)

1 个答案:

答案 0 :(得分:0)

解决方案是在ajax-called php上调用session_write_close(),以便会话释放,从而防止锁定。