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者的疑难问答(2)
Oct 09 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php构造函数的继承方法
Feb 09 PHP
php邮件发送的两种方式
Apr 28 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
zend framework中使用memcache的方法
Mar 04 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 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 什么是PEAR?(第三篇)
2009/03/19 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
让Firefox支持event对象实现代码
2009/11/07 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
python设置中文界面实例方法
2020/10/27 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
行政助理的岗位职责
2014/02/18 职场文书
我的长生果教学反思
2014/04/28 职场文书
银行转正自我鉴定
2014/09/29 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers