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”;$request.=”Host:
“.$URL_Info[“host”].””;$request.=”Referer: $referrer”;$request.=”Content-type: application/x-www-form-
urlencoded”;$request.=”Content-length: “.strlen($data_string).””;$request.=”Connection:
close”;$request.=””;$request.=$data_string.””;$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中使用Curl、socket、file_get_contents三种方法POST提交数据php提交表单时判断
if($_POST[submit])与 if(isset($_POST[submit])) 的区别php采用ajax数据提交post与post常见方法总结php curl模拟post提交数
据示例php获取通过http协议post提交过来xml数据及解析xmlphp socket方式提交的post详解PHP防止post重复提交数据的简
单例子php中用socket模拟http中post或者get提交数据的示例代码php表单提交与$_POST实例分析功能强大的PHP POST提
交数据类
评论0
最新资源