在php中运行url脚本(包含ajax)

时间:2015-01-08 15:00:47

标签: php ajax curl cron

我有一个网站通过电子邮件将网址发送到我的客户端,一旦收到它们,他们点击链接,它会在浏览器中加载并完成一些调用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运行它(或者我可以吗?)

1 个答案:

答案 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