我有一个网站通过电子邮件将网址发送到我的客户端,一旦收到它们,他们点击链接,它会在浏览器中加载并完成一些调用PHP脚本的Ajax。在这个脚本中调用了几个AJAX函数。
他们已要求自动执行此过程,因此他们无需单击链接并每次等待大约15分钟即可完成所有Ajax。
理想情况下,如果不重新编码功能并继续使用完全相同的Ajax,我很乐意自动执行此过程。所以我想运行一个加载调用这些URL的脚本的cron。
这可能吗?
我尝试了几件事,但是在加载脚本时没有发生任何事情。当我的意思是什么时,我的意思既不是错误,也不是脚本的功能。 (我打开了错误报告)。
E.g。
cUrl作者
init_set('display_errors',1);
error_reporting(E_ALL);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/myscript.php?varialbe=sample_get_content");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
EXEC
exec('http://example.com/myscript.php');
只需打开脚本......
$contents = file_get_contents('http://example.com/myscript.php?varialbe=sample_get_content');
我知道另一个选择是重建功能,以便我不使用AJAX,但我不希望这样做,因为它需要时间。
编辑:由于GET变量的变化,实际的脚本URL本身被调用,所以我不能直接通过cron运行它(或者我可以吗?)答案 0 :(得分:1)
建议的方法。
在发送链接的脚本中,不要发送包含唯一GET数据的链接,请执行以下操作:
exec("./myscript.php $param_1 $param_2");
在myscript.php中替换:
$param_1 = $_GET['param_1'];
$param_2 = $_GET['param_2'];
使用
$param_1 = $argv[1];
$param_2 = $argv[2];
http://php.net/manual/en/reserved.variables.argv.php
同时添加
#!/path/to/phpcgibin -q
到<?
之前的myscript.php,并确保上传为ascii