【问题标题】:Cronjob php file with curl in it works in browser but at crontab it works wrong带有 curl 的 Cronjob php 文件在浏览器中工作,但在 crontab 中工作错误
【发布时间】:2014-02-07 23:18:02
【问题描述】:

我有一个文件cron.php,它是一个CURL 函数。 CURL 函数将来自不同网站的内容写入我的数据库中。 如果我在浏览器中调用它,它可以正常工作,但在 cron 作业中,它会将站点中的错误内容写入我的数据库。

php文件中crontabCURL之间有问题吗?

更新

卷曲函数:

function CurlPost($sURL,$sMessage = "")
{

    $cookie_file_path = "cookies/cookies.txt";
    print_r($sMessage);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_URL, $sURL);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $sMessage);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);


    $sResult = curl_exec($ch);
    curl_close($ch);
    return $sResult;


}

【问题讨论】:

  • 请举例说明应该写入的数据以及在开发和生产服务器上都写入的数据。
  • 您能否提供一些来自 cron.php 的代码作为示例?
  • 已修复,感谢大家的帮助

标签: php mysql curl crontab


【解决方案1】:

从 cron 运行文件时,您必须提供文件名的完整/绝对路径。您必须在 curl 中使用 cookie,并且缺少绝对路径。因此 cookie 不起作用,您得到的内容有误。

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

所以cookie.txt 应该是/home/tmp/cookie.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2019-07-15
    • 1970-01-01
    • 2014-09-02
    • 2018-07-26
    • 1970-01-01
    • 2021-07-14
    相关资源
    最近更新 更多