首页 / PHP / PHP异步处理的实现方案
PHP异步处理的实现方案
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP异步处理的实现方案,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2031字,纯文字阅读大概需要3分钟。
内容图文
![PHP异步处理的实现方案](/upload/InfoBanner/zyjiaocheng/148/86ee9993cef34fac81f2071ed086c605.jpg)
1、使用前端Ajax处理
$.get("doAsync.php", { name: 'raykaeso',job:'PHP Programmer'} );
2、使用popen,执行本地文件
pclose(popen('php /var/www/doAsync.php &', 'r'));
3、使用curl
设置curl的超时时间 CURLOPT_TIMEOUT 为1 (最小为1),因此客户端需要等待1秒,curl请求地址必须为绝对路径
$param = array( 'name'=>'raykaeso', 'job'=>'PHP Programmer' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://www.example.com/doAsync.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param)); //将数组转换为URL请求字符串 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_exec($ch); curl_close($ch);
4、使用fsockopen,需要自己拼接header部分
function doRequest($url, $param=array(),$timeout =10){ $urlParmas = parse_url($url); $host = $urlParmas['host']; $path = $urlParmas['path']; $port = isset($urlParmas['port'])? $urlParmas['port'] :80; $errno = 0; $errstr = ''; $fp = fsockopen($host, $port, $errno, $errstr, $timeout); $query = isset($param)? http_build_query($param) : ''; $out = "POST ".$path." HTTP/1.1\r\n"; $out .= "host:".$host."\r\n"; $out .= "content-length:".strlen($query)."\r\n"; $out .= "content-type:application/x-www-form-urlencoded\r\n"; $out .= "connection:close\r\n\r\n"; $out .= $query; fputs($fp, $out); fclose($fp); } $url = 'http://www.example.com/doAsync.php'; $param = array( 'name'=>'raykaeso', 'job'=>'PHP Programmer' ); doRequest($url, $param);
注意:
1、如果使用Apache作为Web服务器,让PHP支持异步首先必须得在Apache配置文件httpd.conf配置enablesendfile on。
2、在异步执行的PHP文件中建议加上一下两个配置:
ignore_user_abort(true); // 忽略客户端断开 set_time_limit(0); // 设置执行不超时
内容总结
以上是互联网集市为您收集整理的PHP异步处理的实现方案全部内容,希望文章能够帮你解决PHP异步处理的实现方案所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。