(Linux CLI PHP)在执行期间捕获CURL的详细输出到文件
发布时间:2020-12-13 23:26:03 所属栏目:Linux 来源:网络整理
导读:我刚刚注意到,如果你运行一个命令行php脚本,该脚本使用curl并启用CURLOPT_VERBOSE选项,则无法捕获输出… 例: $php myscript.php logfile.txt 21 所有PHP输出都将进入日志文件,但curl的输出仍然会出现在屏幕上. 如何使用curl输出捕获PHP输出? $ch = curl_in
我刚刚注意到,如果你运行一个命令行php脚本,该脚本使用curl并启用CURLOPT_VERBOSE选项,则无法捕获输出…
例: $php myscript.php > logfile.txt 2>&1 所有PHP输出都将进入日志文件,但curl的输出仍然会出现在屏幕上. 如何使用curl输出捕获PHP输出? $ch = curl_init(); // Initialising cURL curl_setopt($ch,CURLOPT_VERBOSE,TRUE); curl_setopt($ch,CURLOPT_USERAGENT,$this->agentString); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); $data = curl_exec($ch); curl_close($ch); 编辑: 添加线 curl_setopt($ch,CURLOPT_STDERR,STDOUT); 似乎可以做到这一点.但是,现在看来curl输出与php的输出冲突,并用自己的输出覆盖日志文件.奇怪的! 编辑2: 这有效 $php myscript.php >> logfile.txt 2>&1 解决方法
实际上,我的第一个答案是错误的. cURL的手册页说:
因此,为CURLOPT_STDERR指定STDOUT将起作用: curl_setopt($ch,true); curl_setopt($ch,STDOUT); 原始答案: 检查您是否也设置了CURLOPT_RETURNTRANSFER. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |