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 adodb操作mysql数据库
Mar 19 PHP
php flv视频时间获取函数
Jun 29 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
php并发加锁示例
Oct 17 PHP
php封装的mysqli类完整实例
Oct 18 PHP
PHP实现权限管理功能示例
Sep 22 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超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
php新建文件的方法实例
2019/09/26 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
python访问sqlserver示例
2014/02/10 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
保洁主管岗位职责
2013/11/20 职场文书
统计岗位职责
2014/02/21 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
党员领导干部承诺书
2014/05/28 职场文书
2015年试用期工作总结
2014/12/12 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
关于分班的感言
2015/08/04 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL