`
ericxu131
  • 浏览: 190062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

php 模拟POST提交的2种方法

阅读更多
1.通过curl函数
$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.
$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);
分享到:
评论

相关推荐

    php模拟POST提交的4种方法.pdf

    在PHP编程中,有时我们需要模拟HTTP POST请求,例如...以上就是PHP中模拟POST提交的四种方法。根据项目需求和偏好,可以选择合适的方法。cURL通常是最常用且功能最强大的选择,而其他方法则适用于更简单或特定的情况。

    PHP基于curl模拟post提交json数据示例.docx

    PHP 基于 curl 模拟 post 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...

    php 模拟POST提交的2种方法详解

    在PHP中,模拟POST提交是常见的任务,常用于自动化测试、数据抓取或者与外部API交互。本文将详细解析两种实现方法:cURL和fsockopen。 ### 一、使用cURL模拟POST提交 cURL是PHP的一个强大库,可以处理各种HTTP请求...

    PHP基于curl模拟post提交json数据示例

    主要介绍了PHP基于curl模拟post提交json数据操作,结合实例形式分析了php使用curl实现post方式提交json数据相关操作步骤与注意事项,代码简单实用,需要的朋友可以参考下

    PHP POST提交方式

    在Web开发中,PHP是一种广泛使用的服务器端脚本语言,尤其在处理表单数据时,POST提交方式是非常常见且重要的。本文将深入探讨PHP中的POST提交方式,包括其工作原理、如何实现以及相关注意事项。 1. **POST提交的...

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

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

    php模拟post提交数据的方法

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

    php snoopy 模拟表单提交 数据抓取

    总结来说,Snoopy为PHP开发者提供了一种方便的工具,能够模拟浏览器行为,执行表单提交和数据抓取。通过理解其工作原理和使用方法,我们可以构建自己的数据抓取脚本,高效地获取网络上的信息。然而,值得注意的是,...

    php模拟post请求类.zip

    这个“php模拟post请求类.zip”文件提供了一个PHP类库,专门用于创建这样的请求。以下是对这个类库及其核心概念的详细解释。 1. **HTTP POST请求**: HTTP POST请求是向服务器发送数据的一种方法,常用于提交表单...

    php curl模仿form表单提交图片或文件

    在PHP开发中,有时我们需要模拟用户通过HTML表单提交数据,包括文件和图片。`cURL`库提供了一个强大的功能,允许我们实现这样的任务。在本文中,我们将深入探讨如何使用PHP的cURL库来模仿form表单提交,特别是提交...

    http模拟POST表单上传文件

    在本文中,我们将深入探讨如何通过模拟POST表单上传文件到服务器,这是一项常见的任务,尤其在开发Web应用程序时。我们将涵盖客户端如何构建请求以及服务器如何接收和处理这些请求。 首先,让我们理解POST请求的...

    PHP模拟post提交数据方法汇总

    下面软件开发网小编给大家整理了三种php模拟post传值的方法,file_get_contents、curl和socket。 第一种:file_get_contents来模拟post <php xss=removed xss=removed> array( ‘method‘=>‘POST‘, ‘content‘=>...

    发送POST请求的三种方式的php类.zip

    介绍一个发送POST请求的三种方式的php类,PHP发送POST请求的三种方式 分别使用curl file_get_content fsocket 来实现post提交数据。

    phpCurl请求工具,可模拟表单、上传文件

    通用的http请求工具,可以模拟表单提交、上传文件、发送请求、获取网页内容

Global site tag (gtag.js) - Google Analytics