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

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


代码如下:

<?php
/*-----------------------------------------------------------
*功能:使用PHP socke 向指定页面提交数据
*
*作者:Honghe.c
*
*说明:post($url, $data)
*
*      $url    = 'http://www.jb51.net';
*      $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);
*/

?>

(0)

相关推荐

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

    在jquery里用 load post 等等,无法得到我想要的结果!于是突然-----这几天想的东西都白想了,现在只好这样了 现在想在php里面向指定的页面提交数据,应该有,还可以有返回值 于是找了这个函数,不过没有试,我想可以不知道空间能不能通得过 是村里拿来的!  复制代码 代码如下: <?php /*----------------------------------------------------------- *功能:使用PHP socke 向指定页面提交数据 * *作者:Hong

  • ajax 提交数据到后台jsp页面及页面跳转问题

    ajax 提交数据到后台jsp页面及页面跳转问题 我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.getParameter("pwd1"); login.jsp input 取2参数何用ajax 传给logincheck.jsp $.ajax({ type : "POST", url : baseUrl+"m/m

  • asp.net的web页面(aspx)数据量过多时提交失败对策

    asp.net的web页面,数据量过多是提交失败,对策: web.config文件中,增加 复制代码 代码如下: <appSettings> ... <add key="aspnet:MaxHttpCollectionKeys" value="5000" /> ... </appSettings>

  • ci检测是ajax还是页面post提交数据的方法

    本文实例讲述了ci检测是ajax还是页面post提交数据的方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 因为项目需要我们希望知道提交数据来源是由ajax提交过来的数据还是由页面的post提交过来的数据从而进行不同层面上的处理. 二.解决方法: 在php中解决方法如下: 如果是ajax请求,以下表达式的值为真 复制代码 代码如下: $_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest" 就是一个PHP的环境

  • 页面自动刷新,不用按回车键来提交数据!

    如果页面要自动刷新,但该页面有Request.Form,那么通常会出现一个提示框,需要用户确定来提交数据,这就不是自动刷新了.而对于监控或股票显示来说,不要用户干预又非常重要,下面就可以解决该问题: <Script Language="JavaScript"><!--var limit="0:60"                    //定义刷新时间 if (document.images){var parselimit=limit.split

  • 浅谈Web页面向后台提交数据的方式和选择

    1.通过表单提交 这是HTML支持最传统的提交方法,需要创建表单,然后表单包含各种类型的表单元素,还要有一个提交按钮,通过提交按钮来提交到后台,这种方式提交后页面会刷新. 2.通过网页链接提交 可以在网页的链接附上需要提交的参数,当用户点击链接后,浏览器发起向链接的访问,从而也把链接附带的参数提交到后台,这种方式提交后页面也会刷新. 3.通过ajax提交 Javascript支持ajax方式创建HTTP请求,可以通过在HTML页面元素的事件处理函数中创建ajax请求,在url参数里携带所需提交的

  • ajax方式实现注册功能(提交数据到后台数据库完成交互)

    一.当我们在验证表单的时候,为了阻止把错误的也发送到服务器,我们通常这样设置: $(function(){ var isusername;(定一个变量) var ispwd; $('form').submit(function(e){ if(!isusername || !ispwd){ e.preventDefault();(阻止事件的默认事件) }) }); 1.在nodejs中我们可以用以下方法来(加载)跳转页面: JQuery 中的load()  这是实行加载一个页面  window.l

  • asp.net不同页面间数据传递的多种方法

    1. Get(即使用QueryString显式传递)方式:在url后面跟参数.特点:简单.方便.缺点:字符串长度最长为255个字符:数据泄漏在url中.适用数据:简单.少量.关键的数据.适用范围:传递给自己.传递给另一个目标页面:常用于2个页面间传递数据.用法:例如:url后加?UserID=-,跳转到目标页面,目标页面在伺服端可用Request.QueryString["InputText"]获取其指定参数值. 2. Post方式:通用的方式.利用form提交.特点:最常用的方法.常

  • JSP防止网页刷新重复提交数据的几种方法

    本篇文章主要介绍了网页如何防止刷新重复提交与如何防止后退的解决方法,具体如下: 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: if session("ok")=true then response.write "错误,正在提交" response.end end if 数据处理完后,修改session("ok")=false. 数据处理成功马上Redirec

  • jquery ajax post提交数据乱码

    在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件chrome和ie都没有指定,所以出现乱码问题.解决方法: 复制代码 代码如下: $.ajaxSetup({  contentType: "application/x-www-form-urlencoded; charset=utf

随机推荐