使用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之第八天
Oct 09 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
php桌面中心(一) 创建数据库
Mar 11 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
Yii框架表单模型和验证用法
May 20 PHP
PHP文件与目录操作示例
Dec 24 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
PHPTree――php快速生成无限级分类
Mar 30 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
Laravel 错误提示本地化的实现
Oct 22 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实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
mouse_on_title.js
2006/08/25 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
js日期联动示例
2014/05/02 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Pytorch之finetune使用详解
2020/01/18 Python
python logging.info在终端没输出的解决
2020/05/12 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
大学军训自我鉴定
2013/12/15 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
单位接收证明格式
2015/06/18 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL