php 模拟POST提交的2种方法详解
2015-01-24信息快讯网
本篇文章是对php模拟POST提交的2种方法进行了详细的分析介绍,需要的朋友参考下
一、通过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);
二、通过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=<PRE class=php name="code">{1}</PRE><BR> SERVER["SCRIPT_URI"]; // making string from $dataforeach($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); <PRE></PRE> <P><BR> </P> <P>Snoopy 类(2)<BR> sourceforge.net/projects/snoopy/</P> <P>http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm</P> <P>HTTP类(1,2)</P> <P>http://www.phpclasses.org/browse/download/1/file/5/name/http.php</P> <P>PEAR HTTP_Request</P> <P>http://pear.php.net/package/HTTP_Request</P> <P class=akpc_pop>Popularity: 70%</P> <P> </P>
PHP面向对象之旅:深入理解static变量与方法
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
php curl模拟post提交数据示例
php使用strtotime和date函数判断日期是否有效代码分享
phpstrom使用xdebug配置方法
PHP PDOStatement:bindParam插入数据错误问题分析
php curl模拟post请求小实例
使用PHP Socket写的POP3类
php 模拟post_验证页面的返回状态(实例讲解)
php strrpos()与strripos()函数
php中用socket模拟http中post或者get提交数据的示例代码
php.ini修改php上传文件大小限制的方法详解
PHP的curl实现get,post和cookie(实例介绍)
php fsockopen伪造post与get方法的详解
探讨:如何通过stats命令分析Memcached的内部状态
php读取二进制流(C语言结构体struct数据文件)的深入解析
深入apache host的配置详解
PHP stripos()函数及注意事项的分析
深入理解curl类,可用于模拟get,post和curl下载
php的POSIX 函数以及进程测试的深入分析
PHP 读取Postgresql中的数组