繁体   English   中英

使用cron作业执行PHP AJAX调用

[英]execute PHP AJAX call using cron jobs

我为客户创建了一个HTML页面,以便每次客户访问该页面时,都会执行一个脚本来更新数据库中的某些数据。 他登陆该页面后,就会立即对Google API进行AJAX调用,返回一些结果,然后执行一些PHP脚本以更新数据库并将数据插入数据库。 例如,如果他去http://www.example.com/updateScript.html ,上述所有操作都会发生。

不必他去那里,我想使用cron作业安排日常任务。 我不想用PHP编写所有逻辑,因为JavaScript部分有点复杂。 cron作业是否可以打开HTML页面以便执行我的脚本?

我在SO中检查了几个问题,例如以下问题: 使用cron作业访问url? 但这对我不起作用。

我的cron作业命令是/ usr / bin / wget https://www.example.com/updateScript.html 我也尝试过将udpateScript.html更改为PHP,但是没有用。 有什么建议我可以做什么?

可悲的是,cron无法在页面上执行javascript。 但是,由于您说过需要建议,因此您可能需要查看PHP的cURL。 您可以使用cURL使用PHP访问其他网站。 您可以使用许多协议,而您需要的是GET 在此站点上有一个示例。

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://testcURL.com/?item1=value&item2=value2',
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);

另外,由于您要访问的网站包含javascript,因此您可能希望模仿浏览器如何像thisthis这样向服务器请求。

我希望您有一些想法,祝您项目顺利。

Cron不适用于您,因为您需要执行JavaScript,但是Cron只是拉出代码bur而不执行它。

如果您希望将JavaScript用作处理器,则可以考虑使用Phantom.js: http ://phantomjs.org/

这是一个如何完成的示例: https : //github.com/ariya/phantomjs/blob/master/examples/waitfor.js

Wget不会为您执行页面上的JavaScript:这必须在浏览器中完成(或在服务器上可以执行的任何操作)。 因此,对您来说,要么用PHP重写逻辑(这可能很痛苦,但从长远来看却非常有益),要么尝试按照此处的建议服务器上进行设置。

也许您可以尝试Lynx。 sudo apt-get install lynx * * * * * lynx -dump http://www.aaa.com/cron.php祝你好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM