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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
php 魔术方法详解
Nov 11 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
php中使用websocket详解
Sep 23 PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 PHP
php 截取中英文混合字符串的方法
May 31 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 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 和 COM
2006/10/09 PHP
PHP简洁函数小结
2011/08/12 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
JavaScript实现多维数组的方法
2013/11/20 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Django学习教程之静态文件的调用详解
2018/05/08 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
教师求职信范文分享
2013/12/27 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
要账委托书范本
2014/09/15 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
八年级英语教学计划
2015/01/23 职场文书
入党自荐书范文
2015/03/05 职场文书
幼师自荐信范文
2015/03/06 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers