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调用Oracle存储过程的方法
Sep 12 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
微信access_token的获取开发示例
Apr 16 PHP
php简单防盗链实现方法
Jul 29 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
CI框架常用方法小结
May 17 PHP
php英文单词统计器
Jun 23 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 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
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
python3序列化与反序列化用法实例
2015/05/26 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
Python File readlines() 使用方法
2018/03/19 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
python实现猜拳小游戏
2020/04/05 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
婴儿地球:Baby Earth
2018/12/25 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
自荐信怎么写好
2013/11/11 职场文书
区级文明单位申报材料
2014/05/15 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
微信小程序基础教程之echart的使用
2021/06/01 Javascript
python 多态 协议 鸭子类型详解
2021/11/27 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL