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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
实现php删除链表中重复的结点
Sep 27 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
获得Google PR值的PHP代码
2007/01/28 PHP
php Mysql日期和时间函数集合
2007/11/16 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
Javascript倒计时代码
2010/08/12 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python设置环境变量的原因和方法
2019/06/24 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
.NET面试题:什么是反射
2016/09/30 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
农场厂长岗位职责
2013/12/28 职场文书
个人安全承诺书
2014/05/22 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
初婚初育证明范本
2015/06/18 职场文书
党员证明模板
2015/06/19 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android