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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP数字格式化
Dec 06 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
隐性调用php程序的方法
Mar 09 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
php curl基本操作详解
Jul 23 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
PHP中预定义的6种接口介绍
May 12 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 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
用PHP读注册表
2006/10/09 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
python记录程序运行时间的三种方法
2017/07/14 Python
python使用Tesseract库识别验证
2018/03/21 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Django单元测试工具test client使用详解
2019/08/02 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
群众路线剖析材料
2014/02/02 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
党员公开承诺书范文
2014/03/25 职场文书
班长演讲稿范文
2014/04/24 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
普通党员整改措施
2014/10/24 职场文书
扬州个园导游词
2015/02/06 职场文书