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
详解:――如何将图片储存在数据库里
Dec 05 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
mongodb和php的用法详解
Mar 25 PHP
php用户名的密码加密更安全的方法
Jun 21 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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 urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
PHP的几个常用加密函数
2016/02/03 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
JS实现图片预加载无需等待
2012/12/21 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python线程创建和终止实例代码
2018/01/20 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
Python3 修改默认环境的方法
2019/02/16 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python不同系统中打开方法
2020/06/23 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
PHP如何删除一个Cookie值
2012/11/15 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
防灾减灾日活动总结
2014/08/26 职场文书
个人简历求职信范文
2015/03/20 职场文书
会计求职自荐信
2015/03/26 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
深入详解JS函数的柯里化
2021/06/09 Javascript
Java常用函数式接口总结
2021/06/29 Java/Android
MySQL系列之二 多实例配置
2021/07/02 MySQL