php中socket实现GET与POST异步提交数据
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-16 00:00:41 浏览: 评论:0
在使用php socket时我们需要先开启socket扩展了,我们可以使用phpinfo();查看是否开启了socket扩展,否则在php.ini中开启了,如果没有开启我们可以参考下面方法来设置.
windows 系统中socket扩展
windows 下可以直接修改php.ini 文件 去掉extension=php_sockets.dll 前面的分号重启就OK了
在linux下给PHP安装socket扩展,代码如下:
- #cd /home/php5.2.1/ext/sockets
- #/server/php/bin/phpize
- #./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
- #make
- #make install
- 再修改/usr/local/php/etc/php.ini文件
- #extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加扩展路径)
- extension=sockets.so
重启apache,好了都好了下面就开始吧,代码如下:
- //POST提交
- function socketPost($url,$data){
- $postStr = '';
- $postLen = '';
- $out = '';
- //解析域
- $urlInfo = parse_url($url);
- $host = $urlInfo['host'];
- if(!isset($urlInfo['query'])) $urlInfo['query'] ='';
- $path = $urlInfo['path'].'?'.$urlInfo['query'];
- //组织数据
- foreach($data as $key=>$value){
- $postStr .=$key.'='.rawurlencode($value).'&';#这里需要对post的值进行编码,否则会出现中断
- }
- $postStr = trim($postStr,"&");
- $postLen = strlen($postStr);
- $fp = fsockopen($host, 80, $errno, $errstr, 3);
- if ($fp) {
- $out .="POST ".$path." HTTP/1.0\r\n";
- $out .="Host: ".$host."\r\n";
- $out .= "Content-type: application/x-www-form-urlencoded\r\n";
- $out .= "Content-Length: ".$postLen."\r\n"; #这里最好加上Connection: close
- $out .= "\r\n";
- $out .= $postStr;
- fwrite($fp, $out);
- fclose($fp);
- }
- }
使用方法,代码如下:
- socketPost("提交的地址",array("username"=>"这里是post的username","password"=>321312312));
- function socketGet($url){
- $urlInfo = parse_url($url);
- $host = $urlInfo['host'];
- if(!isset($urlInfo['query'])) $urlInfo['query'] ='';
- $path = $urlInfo['path'].'?'.$urlInfo['query'];
- $fp = fsockopen($host, 80, $errno, $errstr, 3);
- if ($fp) {
- //调用模块进行抓取信息
- $out = "GET {$path} / HTTP/1.1\r\n";
- $out .= "Host: {$host}\r\n";
- $out .= "Connection: Close\r\n\r\n";
- fwrite($fp, $out);
- fclose($fp);
- }
- }
使用方法:socketGet("url");工作需要封装好方法方便同事调用.
Tags: socket 异步提交数据
- 上一篇:PHP自动批量生成会员卡号程序
- 下一篇:php 彩色云标签程序代码
相关文章
- ·php socket讲解与实例(2013-12-09)
- ·PHP socket模拟POST请求实例(2014-01-18)
- ·php socket 使用smtp服务器发送邮件(2014-01-22)
- ·php socket客户端和服务端互相通讯实例(2014-06-19)
- ·PHP中向socket服务器收发数据(2014-08-28)
- ·PHP利用socket模拟post之fsockopen发送数据(2014-09-05)
- ·php Socket 创建 监听等实例(2014-09-09)
- ·php socket通信机制实例说明与代码(2014-09-09)
- ·PHP不支持socket_connect函数开启步骤(2014-09-10)
- ·php基于Socket实现多线程开发教程(2015-04-15)
- ·PHP聊天室_WebSocket技术实战(2016-08-25)
- ·php中socket服务的模型下的编程方式(同步和异步)(2018-09-18)
- ·php socket服务的模型以及实现 多进程IO复用libevent(2018-09-18)
- ·php实现socket推送技术的示例(2018-11-04)
- ·php与flash as3 socket通信传送文件实现代码(2021-03-31)
- ·php socket实现的聊天室代码分享(2021-03-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)