例如
<?php
//GetParameters here
//send response/end connection
//keep executing the script with the retrieved parameters.
例如
<?php
//GetParameters here
//send response/end connection
//keep executing the script with the retrieved parameters.
你可以这样做,只是可能需要一些修补。您需要使用不同的脚本处理数据,而不是尝试关闭第一个脚本上的连接。
<?php
//Get Parameters
//Send output to user
//now use curl to access other script
$post = http_build_query($_POST); // you can replace this with a processed array
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/otherscript.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
curl_close($ch);
?>
其他脚本.php
<?php
header( "Connection: Close" );
// do your processing
?>
只是为了解释一下,当 curl 连接时,它会获得一个连接关闭的标头,因此 curl 退出。同时,“其他脚本”正在处理没有打开连接的数据。
我很确定使用 exec() 也可能是一种选择。您可以简单地在命令行上使用 php 调用 otherscript,将变量作为 cmd 行参数传递。如果你正在运行 linux,这样的东西应该对你有用:
exec("nohup php -f otherscript.php -- '$arg1' '$arg2' < /dev/null &");
现在 otherscript.php 正在后台以不同的进程 ID 运行