使用PHP socke 向指定页面提交数据


Posted in PHP onJuly 23, 2008

在jquery里用 load post 等等,无法得到我想要的结果!于是突然-----这几天想的东西都白想了,现在只好这样了
现在想在php里面向指定的页面提交数据,应该有,还可以有返回值
于是找了这个函数,不过没有试,我想可以不知道空间能不能通得过
是村里拿来的! 

<?php 
/*----------------------------------------------------------- 
*功能:使用PHP socke 向指定页面提交数据 
* 
*作者:Honghe.c 
* 
*说明:post($url, $data) 
* 
*      $url    = 'https://3water.com'; 
*      $data[user] = 'hong'; 
*      $data[pass] = 'xowldo'; 
*      echo post($url, $data); 
*-----------------------------------------------------------*/ function post($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); 
    } 
    $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80); 
    if (!$fp) return "Failed to open socket to $url[host]"; 
    fputs($fp, sprintf("POST %s%s%s HTTP/1.0n", $url['path'], $url['query'] ? "?" : "", $url['query'])); 
    fputs($fp, "Host: $url[host]n"); 
    fputs($fp, "Content-type: application/x-www-form-urlencodedn"); 
    fputs($fp, "Content-length: " . strlen($encoded) . "n"); 
    fputs($fp, "Connection: closenn"); 
    fputs($fp, "$encodedn"); 
    $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 == "rn")) { 
        $inheader = 0; 
    } 
    elseif (!$inheader) { 
        $results .= $line; 
    } 
    } 
    fclose($fp); 
    return $results; 
} 
/* 
$url = 'http://video.xxx.com:80/game_vm.php'; 
$data['gid'] = '1'; 
echo post($url, $data); 
*/ 
?>
PHP 相关文章推荐
php Ubb代码编辑器函数代码
Jul 05 PHP
解析ajax事件的调用顺序
Jun 17 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
解析php类的注册与自动加载
Jul 05 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
php通过文件头判断格式的方法
May 28 PHP
基于PHP生成简单的验证码
Jun 01 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 #PHP
PHP版自动生成文章摘要
Jul 23 #PHP
php array_merge下进行数组合并的代码
Jul 22 #PHP
用php过滤危险html代码的函数
Jul 22 #PHP
php socket方式提交的post详解
Jul 19 #PHP
php minixml详解
Jul 19 #PHP
php正则校验用户名介绍
Jul 19 #PHP
You might like
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
详解vue 组件的实现原理
2020/11/12 Javascript
Python缩进和冒号详解
2016/06/01 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
vue+django实现下载文件的示例
2021/03/24 Vue.js
竞选演讲稿范文大全
2014/05/12 职场文书
保安公司服务承诺书
2014/05/28 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers