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

前端技术 2023/09/04 PHP

一、通过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>

本文地址:https://www.stayed.cn/item/11667

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。