php文件下载适用于浏览器,但不适用于cron作业

时间:2018-04-08 10:31:09

标签: php cron file-get-contents

我看过这个网站,看看是否有人有这个确切的问题无济于事。 我正在尝试使用file_get_contents下载URL,但是当我在浏览器中键入php脚本的URL时它会起作用,当我通过cron运行脚本时,无法获取该文件。

我已经发出一个邮件命令来查看是否有任何返回(我已经删除了电子邮件地址) - 当我直接运行脚本时,电子邮件的正文包含URL内容但是当通过cron运行时它是空的

            $filen = file_get_contents( "http://forum.forteantimes.com/index.php?forums/ghosts-general.18/" );

            $to = "xxxx";
            $subject = "test";
            $from = "xxxx";

            $body=$filen;

            $headers="From: xxx\n";
            $headers.= "To: \"".$to."\" <".$to.">\n";
            $headers.= "Return-Path: <".$from.">\n";
            $headers.= "MIME-Version: 1.0\n";
            $headers.= "Content-type: text/plain; charset=utf-8\n";

            mail($to, $subject, $body, $headers);

1 个答案:

答案 0 :(得分:0)

您可能正在从cron(即PHP CLI)调用另一个php.ini文件,并且其中的设置可能不同(例如,allow_url_fopen()可能已关闭)。您可以运行php --ini来检查php.ini的位置并检查其中的设置。您也可以直接在您的文件中调试,如:

try {
    file_get_contents( "http://forum.forteantimes.com/index.php?forums/ghosts-general.18/" );
}
catch (Exception $e) {
    $body = $e->getMessage();
}