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中文字母数字验证码实现代码
Apr 25 PHP
php GeoIP的使用教程
Mar 09 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
浅析php原型模式
Nov 25 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
PHP实现权限管理功能示例
Sep 22 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
Laravel 集成 Geetest验证码的方法
May 14 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP插入排序实现代码
2013/04/04 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php生成与读取excel文件
2016/10/14 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
Javascript - HTML的request类
2006/07/15 Javascript
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
使用js 设置url参数
2013/07/08 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Node 模块原理与用法详解
2020/05/13 Javascript
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
python开启debug模式的方法
2019/06/27 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
tensorflow的计算图总结
2020/01/12 Python
python numpy数组中的复制知识解析
2020/02/03 Python
详解Python yaml模块
2020/09/23 Python
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
初任培训自我鉴定
2013/10/07 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
优秀高中学生评语
2014/12/30 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
解析目标检测之IoU
2021/06/26 Python