在 php 中运行 url scipt(包含 ajax)

Running a url scipt inside php (that contains ajax)

我有一个网站通过电子邮件向我的客户发送 url,一旦他们收到他们点击 link,它在浏览器中加载并完成一些 Ajax 调用 PHP 脚本。此脚本中调用了多个 AJAX 函数。

他们要求将此过程自动化,这样他们就不必单击 link 并每次等待大约 15 分钟才能完成所有 Ajax。

理想情况下,无需重新编码功能并继续使用完全相同的功能 Ajax 我希望自动执行此过程。所以我想运行一个 cron 来加载一个调用这些 URLS 的脚本。

这可能吗?

我尝试了几种方法,但加载脚本时没有任何反应。当我什么意思都没有时,我的意思既不是错误,也不是脚本的功能。 (我打开了错误报告)。

例如

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('http://example.com/myscript.php');

只需打开脚本...

$contents = file_get_contents('http://example.com/myscript.php?varialbe=sample_get_content');

我知道另一种选择是重建功能,这样我就不会使用 AJAX,但我不想这样做,因为这需要时间。

编辑:由于 GET 变量的变化,实际脚本 URL 本身被调用发生了变化,所以我不能通过 cron 直接运行它(或者我可以吗?)

建议的方法。

在发送 link 的脚本中,不是发送带有唯一 GET 数据的 link,而是让它这样做:

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