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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
如何在PHP中使用Oracle数据库(6)
Oct 09 PHP
php 文件夹删除、php清除缓存程序
Aug 25 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP生成条形图的方法
Dec 10 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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函数
2017/01/15 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
用YUI做了个标签浏览效果
2007/02/20 Javascript
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
微信小程序实现留言板
2018/10/31 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
理解python正则表达式
2016/01/15 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
会议室使用管理制度
2015/08/06 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Java tomcat手动配置servlet详解
2021/11/27 Java/Android