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反弹shell实现代码
Apr 22 PHP
php下保存远程图片到本地的办法
Aug 08 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
Win7 64位系统下PHP连接Oracle数据库
Aug 20 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 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
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
PHP连接access数据库
2015/03/27 PHP
php实现算术验证码功能
2018/12/05 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
use jscript Create a SQL Server database
2007/06/16 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
vue实现循环切换动画
2018/10/17 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python reduce函数作用及实例解析
2020/05/08 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
Python 图片处理库exifread详解
2021/02/25 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
测试工程师岗位职责
2013/11/28 职场文书
公益活动邀请函
2014/02/05 职场文书
六查六看剖析材料
2014/02/15 职场文书
创先争优个人总结
2015/03/04 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书