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应用提速面面观
Oct 09 PHP
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
Yii框架中memcache用法实例
Dec 03 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 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
第十三节--对象串行化
2006/11/16 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
javascript 打印页面代码
2009/03/24 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python插入数据到列表的方法
2015/04/30 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
英国著名书店:Foyles
2018/12/01 全球购物
精伦电子Java笔试题
2013/01/16 面试题
时尚休闲吧创业计划书
2014/01/25 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
诚信考试承诺书
2014/03/27 职场文书
双拥工作宣传标语
2014/06/26 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书