我想在后台运行一个PHP脚本来记录访问者信息(在用户页面加载之后),这样就不会让用户慢下来。
根据我的发现,有几种方法可以实现这一目标,一种是启动popen
命令,另一种是使用exec
,最后一次我知道< / em>正在使用fsockopen
(source):
$socket = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10);
if($socket) {
$socketdata = “GET /background_script.php HTTP 1.1\r\nHost: “.$_SERVER['HTTP_HOST'].”\r\nConnection: Close\r\n\r\n”;
fwrite($socket,$socketdata);
fclose($socket);
}
我的服务器不允许使用popen
或exec
,因此只留下fsockopen
。
这是我可以使用的最佳方法吗?
感谢您的支持(:
修改
我找到的另一个可能的解决方案是将Connection: close
发送到浏览器以停止在客户端加载,然后include
background_script
。
建议使用此解决方案吗?
E.G:
ob_start();
echo $OUTPUT_DATA;
header("Content-Length: ".ob_get_length());
header('Connection: close');
ob_end_flush();
ob_flush();
flush();
//Do background visitor logging stuff here..