【发布时间】:2021-01-15 22:46:13
【问题描述】:
我正在使用 PHP 和 CRON 作业来获取 URL 的内容:
$content = file_get_contents("http://www.example.com");
然后我使用此内容作为 HTML 时事通讯发送。我正在运行 PHP 7,并且已启用相关的 PHP INI 设置:
allow_url_fopen = On
但是,$content 变量仍然为空,并且我的 error_log 显示以下错误:
PHP Warning: file_get_contents(http://www.example.com):
failed to open stream: no suitable wrapper could be found
in /home/xxxx/public_html/cron.php on line xxx
cron.php 中的所有其他内容都按预期工作。
另外,如果我通过浏览器手动访问 cron.php,file_get_contents 工作正常。
运行 WHM/cPanel 等
非常感谢任何帮助。
【问题讨论】:
-
你是如何设置 php.ini 选项的?可能有两种不同的 php.ini 文件:一种用于来自 Web 浏览器的请求,另一种用于从命令行运行 PHP 脚本(您的 cronjob 将执行此操作)。
-
通过 WHM 的 MultiPHP 管理器和 Multi INI 管理器。在 New Multi PHP Manager 和即将弃用的 Manager 中,它们都启用了该设置。此外,我通过 /usr/local/bin/ea-php70 声明 cron.php 来调用 CRON 作业,以确保它使用的是正确版本的 PHP。
-
你可能是对的。我想知道我是否可以以某种方式将 phpinfo 输出为 CRON?
-
嗯,不幸的是,我对 WHM 了解不多。我会询问您的托管服务提供商是否可以为 CLI 提供单独的 php.ini。您也可以尝试使用 curl 扩展名吗?有关使用 curl 获取页面的示例,请参阅 geeksforgeeks.org/php-curl。
-
这很好,您也可以尝试从 cron 脚本中打印出 phpinfo() 并查看内容。
标签: php cron file-get-contents