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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
配置支持SSI
Nov 25 PHP
PHP性能优化 产生高度优化代码
Jul 22 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
PHP加密技术的简单实现
Sep 04 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 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
Zend引擎的发展 [15]
2006/10/09 PHP
也谈 PHP 和 MYSQL
2006/10/09 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
canvas实现钟表效果
2017/02/13 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
对numpy中shape的深入理解
2018/06/15 Python
python如何实现一个刷网页小程序
2018/11/27 Python
python配置grpc环境
2019/01/01 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
项目经理岗位职责
2013/11/11 职场文书
施工班组长岗位职责
2014/01/05 职场文书
竞选村长演讲稿
2014/04/28 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
项目经理岗位职责
2015/01/31 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python