`
wzjs2011
  • 浏览: 31748 次
文章分类
社区版块
存档分类
最新评论

php 模拟POST提交的几种方法

阅读更多
1、curl 网站建设:www.ucantech.com

Php代码

    $post_data = array(); 
    $post_data['clientname'] = "test08"; 
    $post_data['clientpasswd'] = "test08"; 
    $post_data['submit'] = "submit"; 
    $url='http://xxx.xxx.xxx.xx/xx/xxx/top.php'; 
    $o=""; 
    foreach ($post_data as $k=>$v) 
    { 
        $o.= "$k=".urlencode($v)."&"; 
    } 
    $post_data=substr($o,0,-1); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    //为了支持cookie 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
    $result = curl_exec($ch); 


2、fsockopen

Php代码

    $URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php'; 
    $post_data['clientname'] = "test08"; 
    $post_data['clientpasswd'] = "test08"; 
    $post_data['submit'] = "ログイン"; 
    $referrer=""; 
    // parsing the given URL 
    $URL_Info=parse_url($URL); 
    // Building referrer 
    if($referrer=="") // if not given use this script as referrer 
    $referrer=$_SERVER["SCRIPT_URI"]; 
      
    // making string from $data 
    foreach($post_data as $key=>$value) 
    $values[]="$key=".urlencode($value); 
      
    $data_string=implode("&",$values); 
    // Find out which port is needed - if not given use standard (=80) 
    if(!isset($URL_Info["port"])) 
    $URL_Info["port"]=80; 
    // building POST-request: 
    $request.="POST ".$URL_Info["path"]." HTTP/1.1\n"; 
    $request.="Host: ".$URL_Info["host"]."\n"; 
    $request.="Referer: $referrer\n"; 
    $request.="Content-type: application/x-www-form-urlencoded\n"; 
    $request.="Content-length: ".strlen($data_string)."\n"; 
    $request.="Connection: close\n"; 
    $request.="\n"; 
    $request.=$data_string."\n"; 
    $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); 
    fputs($fp, $request); 
    while(!feof($fp)) { 
        $result .= fgets($fp, 128); 
    } 
    fclose($fp); 


3、其它还有

Snoopy 类 :sourceforge.net/projects/snoopy/(fblww-0106)

分享到:
评论

相关推荐

    PHP版SOCKET模拟提交POST消息(源码)

    在IT行业中,网络通信是至...总的来说,PHP的SOCKET功能为我们提供了一种灵活且强大的工具,可以用来实现各种网络通信任务,包括模拟POST提交。理解并掌握这种技术,对于提升PHP开发者的技能和解决问题的能力大有裨益。

    php模拟post提交数据的方法

    PHP模拟POST提交数据的方法主要有使用PHP内置的cURL库和socket编程两种方式。其中,使用socket模拟POST提交数据是一种基础而强大的方法,它涉及到了网络编程的知识,使用socket可以构造HTTP请求头和内容,并且能够...

    php 模拟浏览器请求网页见容

    当我们需要从网页抓取内容,而直接访问又有困难时,可以利用PHP模拟浏览器请求网页内容。这一技术常被称为“网页抓取”或“屏幕抓取”,在数据分析、信息聚合、自动化测试等场景下非常实用。 首先,模拟浏览器请求...

    php中用socket模拟http中post或者get提交数据的示例代码

    下面的代码展示了如何使用`socket`函数模拟POST和GET请求: 1. **创建socket连接**: 首先,我们需要解析目标URL以获取主机名和端口,然后使用`fsockopen()`函数建立TCP连接。如果无法打开连接,该函数返回错误...

    php中CURL模拟进行微信接口的GET与POST例教程共

    首先,我们需要理解GET和POST两种HTTP方法的基本概念。GET是用于获取资源,通常用于查询操作,参数显示在URL上;而POST则用于向服务器提交数据,通常用于创建或更新资源,参数在请求体中。 在PHP中,CURL的使用主要...

    php使用curl实现简单模拟提交表单功能

    首先,模拟提交表单通常包括以下几个步骤: 1. 初始化cURL会话。 2. 设置cURL选项,包括请求的URL、请求方式、POST数据等。 3. 执行cURL会话。 4. 关闭cURL会话并输出结果。 在PHP中使用cURL首先需要调用curl_init...

    PHP模拟QQ登录的方法

    总结来说,PHP模拟QQ登录的方法涉及到PHP语言的curl扩展库、HTTP协议的POST方法、Cookie的处理机制,同时也强调了代码注释、代码验证和安全性的重要性。掌握这些知识点对于进行相关的网络编程和理解网络应用开发有着...

    详解php用curl调用接口方法,get和post两种方式

    本文将详细介绍如何使用PHP的cURL库来调用接口,特别是GET和POST这两种常见方法。 首先,我们来看客户端执行方法`request_post`。这个函数模拟了HTTP的POST请求。它接受两个参数:URL和POST数据。在函数内部,它...

    php自定义类fsocket模拟post或get请求的方法

    下面将详细介绍fsocket类中包含的方法以及模拟GET和POST请求的具体实现。 首先,fsocket类的构造方法中初始化了几个私有函数,它们分别用于处理不同的任务: 1. _fsockopen函数用来初始化socket连接。它会尝试解析...

    php 模拟POST|GET操作实现代码|angluo-php-58503.pdf

    PHP语言提供了几种方式来模拟这些请求,其中最常见的就是使用cURL库,以及通过构建HTTP上下文(context)来模拟POST请求。 cURL是一个强大的库,支持多种协议,包括HTTP、HTTPS等。使用cURL可以方便地设置各种请求...

    php自动提交表单的方法(基于fsockopen与curl)

    PHP提供了几种方法实现自动提交表单,其中最常用的是fsockopen()和cURL。 fsockopen()是PHP内置的一个函数,它允许脚本打开一个网络连接到远程服务器上的HTTP端口。它是一种低级的HTTP客户端实现方式,可以用来创建...

    易语言写POST实现PHPWind论坛注册登陆视频教程

    HTTP POST是Web应用中常用的一种请求方法,用于向服务器提交数据,例如在论坛注册或登录时填写的信息。POST请求会将数据封装在请求体中发送到服务器,与GET请求相比,POST更适合传递大量或敏感数据,因为它不会显示...

    php防止伪造的数据从URL提交方法

    本文将探讨几种PHP防止伪造数据从URL提交的方法。 1. **检查HTTP_REFERER** 提到的`CheckURL`函数通过检查`$_SERVER["HTTP_REFERER"]`变量来判断请求是否来自预期的域名。这个变量通常包含了用户点击上一个链接的...

    PHP使用CURL模拟登录的方法

    在当今的网络环境中,模拟登录的需求日益频繁,它可以帮助开发者进行自动化测试,也可以用于在安全和隐私的前提下进行程序的开发。PHP语言通过CURL库,能够方便地模拟用户登录的行为。CURL是PHP中的一个强大的库,其...

    PHP 异步执行方法,模拟多线程的应用分析

    为了解决这个问题,PHP提供了几种模拟多线程执行的异步方法,让开发者能够提高应用的性能和响应速度。 在讨论PHP异步执行方法时,我们首先需要认识到PHP本身并不是一个多线程的语言。它不支持像Java或Python中那样...

    PHP file_get_contents 函数超时的几种解决方法

    4. **POST提交数据**:`file_get_contents`不支持POST请求,但可以通过创建POST数据的上下文来模拟,或者使用`cURL`库,它提供了更强大的POST数据发送能力。 5. **错误处理**:确保对`file_get_contents`的结果进行...

    php 模拟 asp.net webFrom 按钮提交事件的思路及代码

    在PHP中,模拟ASP.NET WebForms的按钮提交事件主要涉及到的是服务器端的事件处理和页面生命周期的概念。在ASP.NET中,WebForms模型提供了一种基于控件事件的编程方式,使得开发者可以方便地处理用户交互。然而,PHP...

    1+X认证Web前端开发中级模拟题.docx

    * Laravel框架支持的几种数据库系统是 SQL Server、SQLite 和 MySQL * RESTful架构的特点包括每一个URL代表一种资源、客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化" * 使用RESTful API规范...

Global site tag (gtag.js) - Google Analytics