我有一个php例程,可以进行简单的cURL调用,并通过cron作业自动运行。 crontab行是:
<?php
$verbose_log = fopen('log.txt','a');
$my_curl = curl_init();
// initialize options array
$options = array(
CURLOPT_HEADER => false
,CURLOPT_RETURNTRANSFER => true
,CURLOPT_VERBOSE => true
,CURLOPT_STDERR => $verbose_log
,CURLOPT_HTTPHEADER => array('Accept: application/json')
,CURLOPT_CAINFO => realpath('../../certs/ca.crt')
,CURLOPT_TIMEOUT => 5
,CURLOPT_SSL_VERIFYPEER => true
,CURLOPT_SSL_VERIFYHOST => 2
,CURLOPT_SSLCERT => realpath('../../certs/client.crt.pem')
,CURLOPT_SSLKEY => realpath('../../certs/client.key.pem')
,CURLOPT_SSLCERTTYPE => 'PEM'
,CURLOPT_URL => 'https://www.mydomainname.com/api.php'
);
curl_setopt_array($my_curl, $options);
// execute cURL and store results (response/error/errno)
$response = curl_exec($my_curl);
$error_str = curl_error($my_curl);
$error_no = curl_errno($my_curl);
curl_close($my_curl);
if ($error_no != 0)
// email error
fclose($verbose_log);
?>
这是 curl_call.php :
* Closing connection #0
出于某种原因,每次运行(总是成功),服务器都会向我发送一封包含一行的电子邮件:
patch
我在其他帖子中读到 CURLOPT_MUTE 已弃用,我找不到其他方法让它“更安静”。
有谁知道这条线是什么意思? 我该怎么做才能阻止它向我发送这封单行电子邮件?
答案 0 :(得分:0)
谢谢Marc B。
解决方案正是你所说的......
我只需要更改我的crontab行,添加2>&1
。它现在写着:
0 * * * * php5 -q /home/curl_call.php >> /home/curl_call.txt 2>&1
本文详细介绍了其含义:
现在,电子邮件内容(* Closing connection #0
)已添加到输出文件( curl_call.txt ),电子邮件本身已停止。
再次感谢。