php socket方式提交的post详解


Posted in PHP onJuly 19, 2008

<? 
/* 
** POST报文到主机 
*/ 
function PostToHost($url, $data) { 
$url = parse_url($url); 
if (!$url) return "couldn\'t parse url"; 
if (!isset($url[\'port\'])) { $url[\'port\'] = ""; } 
if (!isset($url[\'query\'])) { $url[\'query\'] = ""; } 

$encoded = ""; 

while (list($k,$v) = each($data)) { 
$encoded .= ($encoded ? "&" : ""); 
$encoded .= rawurlencode($k)."=".rawurlencode($v); 

$port = $url[\'port\'] ? $url[\'port\'] : 80; 
$fp = fsockopen($url[\'host\'], $port, $errno, $errstr); 
if (!$fp) return "Failed to open socket to $url[host] $port ERROR: $errno - $errstr"; 

fputs($fp, sprintf("POST %s%s%s HTTP/1.0\\n", $url[\'path\'], $url[\'query\'] ? "?" : "", $url[\'query\'])); 
fputs($fp, "Host: $url[host]\\n"); 
fputs($fp, "Content-type: application/x-www-form-urlencoded\\n"); 
fputs($fp, "Content-length: " . strlen($encoded) . "\\n"); 
fputs($fp, "Connection: close\\n\\n"); 

fputs($fp, "$encoded\\n"); 

$line = fgets($fp,1024); 
if (!eregi("^HTTP/1\\.. 200", $line)) return; 

$results = ""; $inheader = 1; 
while(!feof($fp)) { 
$line = fgets($fp,1024); 
if ($inheader && ($line == "\\n" || $line == "\\r\\n")) { 
$inheader = 0; 

elseif (!$inheader) { 
$results .= $line; 


fclose($fp); 

return $results; 
}/* end function PostToHost */ 
?>

PHP 相关文章推荐
第三节--定义一个类
Nov 16 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 PHP
php minixml详解
Jul 19 #PHP
php正则校验用户名介绍
Jul 19 #PHP
PHP批量生成缩略图的代码
Jul 19 #PHP
Discuz 模板引擎的封装类代码
Jul 18 #PHP
PHP令牌 Token改进版
Jul 18 #PHP
php下intval()和(int)转换使用与区别
Jul 18 #PHP
PHP入门学习的几个不错的实例代码
Jul 13 #PHP
You might like
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
分享Python文本生成二维码实例
2016/01/06 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
在pycharm中实现删除bookmark
2020/02/14 Python
利用python生成照片墙的示例代码
2020/04/09 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
《少年闰土》教学反思
2016/02/18 职场文书
交通事故协议书范本
2016/03/19 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python