php socket异步
2016-01-18 10:49
633 查看
/** * socket异步请求 * @author mijunzhu 2015-01-14 * @param string $sHost 主机不带http:// 和 端口号 * @param string $sMethod post / get * @param string $sUrl 不带域名 * @param array $arData 数组 * @param int $iPort 端口号 * @param int $iTimeout * @return bool */ function asyn_request($sHost,$sUrl,$arData, $sMethod='POST',$iPort=80, $iTimeout = 1) { $fp = @fsockopen($sHost,$iPort,$errno,$errstr,$iTimeout); //错误 if(!$fp){echo"$errstr ($errno)<br/>uuuuuuu\n";exit;} $qstr = http_build_query($arData);//请求参数 $params = ""; $params.= $sMethod == "GET" ? "GET {$sUrl}?{$qstr} HTTP/1.1\r\n" : "POST {$sUrl} HTTP/1.1\r\n"; $params.= "Host: ".$sHost."\r\n"; $params.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5\r\n"; $params.= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"; $params.= "Accept-Language: zh-cn,zh;q=0.5\r\n"; $params.= [b]"Accept-Encoding: gzip,deflate\r\n"; $params.= "Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7\r\n"; $params.= "Keep-Alive: 300\r\n"; $params.= "Connection: keep-alive\r\n"; $params.= "Content-Type: application/x-www-form-urlencoded\r\n"; $params.= "Content-Length: ".strlen($qstr)."\r\n\r\n"; $params.= $sMethod == "GET" ? null :$qstr; fwrite($fp, $params); fclose($fp); }
相关文章推荐
- php不区分大小写
- PHP 7 测试用例(转)
- ajax+php 实现新闻时时直播
- php实现异步请求
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- PHP实现乘法表
- php截取逗号之前的字符
- phpbb简体中文语言包的安装
- 探究PHP底层
- 电脑插入耳机无声音,显示AMD HDMI OUTPUT未插入,但是外放有声音故障解决方案
- 给PHP开发者的编程指南 第一部分降低复杂程度
- thinkphp中的M方法和D方法
- ThinkPHP多表联合查询的常用方法
- 个人博客-ThinkPHP3.1转移ThinkPHP3.2心得
- 解决The connection was refused when attempting to contact localhost
- 给PHP开发者的编程指南 第一部分降低复杂程度
- PHP mysql事务问题实例分析
- php中使用sqlite,插入和网页展示的问题
- PHP扩展 返回数据
- 1.【ThinkPHP 开发辅助系统】数据库和视图设计