(Linux CLI PHP)在执行期间捕获CURL的详细输出到文件

(Linux CLI PHP)在执行期间捕获CURL的详细输出到文件,第1张

概述我刚刚注意到,如果你运行一个命令行php脚本,该脚本使用curl并启用CURLOPT_VERBOSE选项,则无法捕获输出… 例: $php myscript.php > logfile.txt 2>&1 所有PHP输出都将进入日志文件,但curl的输出仍然会出现在屏幕上. 如何使用curl输出捕获PHP输出? $ch = curl_init(); // Initialising cURL 我刚刚注意到,如果你运行一个命令行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的手册页说:

URLOPT_VERBOSE TRUE to output verbose @R_403_4329@ion. Writes output to
STDERR,or the file specifIEd using CURLOPT_STDERR.

因此,为CURLOPT_STDERR指定STDOUT将起作用:

curl_setopt($ch,true);curl_setopt($ch,STDOUT);

原始答案:

检查您是否也设置了CURLOPT_RETURNTRANSFER.

总结

以上是内存溢出为你收集整理的(Linux CLI PHP)在执行期间捕获CURL的详细输出到文件全部内容,希望文章能够帮你解决(Linux CLI PHP)在执行期间捕获CURL的详细输出到文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1019734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存