PHP中使用socket方式GET、POST数据实例


Posted in PHP onApril 02, 2015

1. 使用 PHP 获得网页内容 GET方式

<?php

function socketGet($url, &$ret)

{

 $urlArr = parse_url($url);

 $host = $urlArr['host'];

 $port = isset($urlArr['port'])?$urlArr['port']:80;

 $path = isset($urlArr['path'])?$urlArr['path']:"/";

 $fp = fsockopen($host, $port, $errno, $errstr, 30);

 if (!$fp)

 {

  echo "$errstr ($errno)<br />\n";

  return false;

 }

 else

 {

     $out = "GET $path HTTP/1.1\r\n";

     $out .= "Host: $host\r\n";

     $out .= "Connection: Close\r\n\r\n";

  $ret = "";

     fwrite($fp, $out);

     while (!feof($fp))

  {

         $ret .= fgets($fp, 128);

     }

     fclose($fp);

 }

 return true;

}

?>

2. 使用 PHP 向页面 POST 数据

<?php

function socketPost($url, $data, &$ret)

{

 $urlArr = parse_url($url);

 $host = $urlArr['host'];

 $port = isset($urlArr['port'])?$urlArr['port']:80;

 $path = isset($urlArr['path'])?$urlArr['path']:"/";

 $fp = fsockopen($host, $port, $errno, $errstr, 30);

 if (!$fp)

 {

     echo "$errstr ($errno)<br />\n";

  return false;

 }

 else

 {

     $out = "POST $path HTTP/1.1\r\n";

     $out .= "Host: $host\r\n";

  $out .= "Content-Type: application/x-www-form-urlencoded\r\n";

  $out .= "Content-Length: ".strlen($data)."\r\n";

     $out .= "Connection: Keep-Alive\r\n\r\n";

  $out .= $data;

  $ret = "";

     fwrite($fp, $out);

     while (!feof($fp))

  {

         $ret .= fgets($fp, 128);

     }

     fclose($fp);

 }

 return true;

}

?>

如果post报错,把$out .= "Connection: Keep-Alive\r\n\r\n";中的Keep-Alive改成Close
PHP 相关文章推荐
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
PHP 面向对象详解
Sep 13 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
设定php简写功能的方法
Nov 28 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 #PHP
php中实现获取随机数组列表的自定义函数
Apr 02 #PHP
PHP版微信公众平台红包API
Apr 02 #PHP
php实现TCP端口检测的方法
Apr 01 #PHP
Yii实现自动加载类地图的方法
Apr 01 #PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 #PHP
php微信公众平台开发类实例
Apr 01 #PHP
You might like
如何给phpadmin一个保护
2006/10/09 PHP
MYSQL数据库初学者使用指南
2006/11/16 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
JavaScript验证Email(3种方法)
2015/09/21 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue仿element实现分页器效果
2018/09/13 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python2随机数列生成器简单实例
2017/09/04 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
人力资源职位说明书
2014/07/29 职场文书
汽车转让协议书范本
2014/12/07 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
时尚女魔头观后感
2015/06/04 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
基于Python实现nc批量转tif格式
2022/08/14 Python