求问,子进程里curl的问题?

haha
$worker->onWorkerStart = function($worker) { 
    $url = 'https://www.baidu.com'; 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $content = curl_exec($ch); 
    curl_close($ch); 
    echo $content; 
}

curl这段代码放在onWorkerStart里输出是空,放在onWorkerStart外面就有输出内容,服务器是centos7。但是在我的macbook上运行不论放在里边或外边都有输出内容。php都是7.1版本。求问各位大神!!

阅读 1690
4个回答

maq

【curl这段代码放在onWorkerStart里输出是空】,能确保 onWorkerStart 执行了吗?比如你不用 curl 直接用 echo 能看到输出吗?

  • 暂无评论
haha

试过很多次,直接echo是有内容的。太奇怪了,求解答

  • 暂无评论
maq

那你别用 echo $content,改用 var_dump 看看什么情况。

我怀疑是由于某种诡异的原因导致 curl 采用了异步模式……

  • 暂无评论
haha

var_dump是bool(false)。这个问题折腾两天了,搞不懂

  • maq 2018-04-27

    这首先说明 curl 的确执行到了。但是返回值说明出错了,那就用 curl_errno/curl_error 看看是什么错呗。