AL-*_*teb 3 php curl background
我正在尝试使用PHP和cURL扩展名构建某种基于Web的下载管理器,但是我遇到了一个问题,如何在不让用户等待的情况下使用cURL下载和保存文件,这意味着他将该请求,它将在后台处理。
现在我不能使用系统调用(exec,system等),因为我使用的大多数主机都禁用了这些功能,另一个问题是PHP脚本的最大执行时间,但是我想可以更改此脚本在.htaccess或使用ini_set还是可以吗?
我在某处读到将connect_timeout设置为1会起作用,但是那不终止连接吗?
一种解决方案是使用cronjobs,在用户提交要下载的文件后,cronjob将检查数据库,并且队列中是否有文件将开始下载,但我想我想避免使用cron job可能。
回到主要问题,是否有一种方法可以告诉php脚本在后台运行某些功能,并将响应传递给用户,而不管该功能的结果如何
谢谢
我认为已经有其他帖子探讨了这些选项。鉴于您的限制,我看到了另外两种方法:
小智 5
function background_curl_request($url, $method, $post_parameters){
if (is_array($post_parameters)){
$params = "";
foreach ($post_parameters as $key=>$value){
$params .= $key."=".urlencode($value).'&';
}
$params = rtrim($params, "&");
} else {
$params = $post_parameters;
}
$command = "/usr/bin/curl -X '".$method."' -d '".$params."' --url '".$url."' >> /dev/shm/request.log 2> /dev/null &";
exec($command);
}
Run Code Online (Sandbox Code Playgroud)