fsockopen读取、发送cookie及注意事项 -代码示例
2016-12-06 10:01
344 查看
function httpPost($url, $data,$cookieStr='') { $url_array = parse_url($url); $host = $url_array['host']; $port = isset($url_array['port'])?($url_array['port']):80; if(!($conn = fsockopen($host,$port,$errno, $errstr, 30))) { return false; } $header = "POST ".$url." HTTP/1.1\r\n"; $header.= "Host : {$host}\r\n"; $header.= "Content-type: application/x-www-form-urlencoded\r\n"; $header.= "Content-Length:".strlen($data)."\r\n"; $header.= "Connection: close\r\n"; //这里是用来写cookie的 if (!empty($cookieStr)) { $header.="Cookie: ".$cookieStr."\r\n"; } //注意下面开头还加了个换行,结尾是两个换行 $header.= "\r\n{$data}\r\n\r\n"; //写数据 fwrite($conn,$header); //这里读cookie $cookieStr=array(); //下面的判断,读到空行时,说明头已经结束了,接下来是内容。 while( ($line=trim(fgets($conn))) != "" ) { $header.=$line; /* */ if(strstr($line,"Set-Cookie:")) { list($coo,$cookieLine)=explode(" ",$line); $cookieStr[] = $cookieLine; } } //if($len <= 0) //{ // return false; // } //读数据 //$body=fread($conn,$len); while (!feof($conn)) { $body .= fread($conn, 8192); } fclose($conn); $result['body'] = $body; $result['cookieArr'] = $cookieStr; return $result; }
转自:http://baiyuxiong.iteye.com/blog/786214
相关文章推荐
- markdown代码片段在chrome内核浏览器无法正常显示的解决方法
- c++函数如何返回多值,返回数组的函数该如何调用
- 重构-改善既有代码的设计读书笔记(二)
- Go语言WaitGroup使用时需要注意的坑
- win7Python3.5安装Scrapy出现error: Unable to find vcvarsall.bat
- C# 各种格式化字符串
- 队列之java实现
- python3.5如何安装statsmodels包?
- Python 图形处理库PIL批量修改图片大小和格式
- 文件下载 springmvc
- 获取手机号码被360标记问题(代码备份)
- 按顺序保存一系列图像时文件名的设置使用
- Django
- php libevent 扩展使用示例
- android上C++的简单socket通信
- 基于Eclipse搭建SSH框架:第四篇 使用SSH开发一个小程序
- java 接口讲详解
- Mac中Eclipse安装和使用svn
- 基于FPGA的GoogleNet加速器-前言
- 通过矩阵求两个向量集中元素两两之间的欧氏距离(python实现)