使用 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 中检查了几个问题,例如以下问题:Using cron jobs to visit url? 但这对我不起作用。
我的 cron 作业命令是 /usr/bin/wget https://www.example.com/updateScript.html。我也尝试将 udpateScript.html 更改为 PHP 但它没有用。对我可以做什么有什么建议吗?
Wget 不会为您在页面上执行 JavaScript:这是必须在浏览器中完成的事情(或任何可以在服务器上执行的操作)。所以对你来说,要么重写 PHP 中的逻辑(这可能非常痛苦,但从长远来看非常有益),或者尝试按照 here.[= 的建议在服务器上设置一些东西。 11=]
cron 不适合您,因为您需要 JavaScript 才能执行,但是,cron 只是提取代码,但不会执行它。
如果您想使用 JavaScript 作为处理器,您可以考虑使用 Phantom.js:http://phantomjs.org/
这是一个如何完成的例子:
https://github.com/ariya/phantomjs/blob/master/examples/waitfor.js
遗憾的是,cron 无法在页面上执行javascript。但是,既然你说你需要建议,你可能想看看 PHP 的 cURL。您可以使用 cURL. There are lots of protocols you can do with it and the one you need is GET
. An example would be on this site.
访问 PHP 中的其他网站
// 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,您可能希望模仿浏览器向服务器请求的方式,例如 this or this。
我希望你有一些想法,祝你的项目好运。
我为我的客户创建了一个 HTML 页面,这样每次他去那里时,都会执行一个脚本来更新数据库中的一些数据。一旦他登陆该页面,就会对 Google API 进行 AJAX 调用,返回一些结果,然后执行一些 PHP 脚本来更新和在数据库中插入数据。例如,如果他去 http://www.example.com/updateScript.html,以上所有情况都会发生。
我不想让他去那里,而是想使用 cron 作业安排每日任务。我不想在 PHP 中写下我所有的逻辑,因为 JavaScript 部分有点复杂。有什么方法可以让 cron 作业打开那个 HTML 页面以便执行我的脚本吗?
我在 SO 中检查了几个问题,例如以下问题:Using cron jobs to visit url? 但这对我不起作用。
我的 cron 作业命令是 /usr/bin/wget https://www.example.com/updateScript.html。我也尝试将 udpateScript.html 更改为 PHP 但它没有用。对我可以做什么有什么建议吗?
Wget 不会为您在页面上执行 JavaScript:这是必须在浏览器中完成的事情(或任何可以在服务器上执行的操作)。所以对你来说,要么重写 PHP 中的逻辑(这可能非常痛苦,但从长远来看非常有益),或者尝试按照 here.[= 的建议在服务器上设置一些东西。 11=]
cron 不适合您,因为您需要 JavaScript 才能执行,但是,cron 只是提取代码,但不会执行它。
如果您想使用 JavaScript 作为处理器,您可以考虑使用 Phantom.js:http://phantomjs.org/
这是一个如何完成的例子: https://github.com/ariya/phantomjs/blob/master/examples/waitfor.js
遗憾的是,cron 无法在页面上执行javascript。但是,既然你说你需要建议,你可能想看看 PHP 的 cURL。您可以使用 cURL. There are lots of protocols you can do with it and the one you need is GET
. An example would be on this site.
// 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,您可能希望模仿浏览器向服务器请求的方式,例如 this or this。
我希望你有一些想法,祝你的项目好运。