php 模拟POST提交的2种方法
2011-08-18 11:23
621 查看
1.通过curl函数
2.通过fsockopen
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);
Snoopy 类(2)
sourceforge.net/projects/snoopy/
http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm
HTTP类(1,2)
http://www.phpclasses.org/browse/download/1/file/5/name/http.php
PEAR HTTP_Request
http://pear.php.net/package/HTTP_Request
Popularity: 70%
$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={1}
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);
Snoopy 类(2)
sourceforge.net/projects/snoopy/
http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm
HTTP类(1,2)
http://www.phpclasses.org/browse/download/1/file/5/name/http.php
PEAR HTTP_Request
http://pear.php.net/package/HTTP_Request
Popularity: 70%
相关文章推荐
- php 模拟POST提交的2种方法
- php 模拟POST提交的2种方法详解
- php 模拟POST提交的2种方法
- PHP模拟POST提交的2种方法 curl,fsockopen,HttpClient
- PHP模拟POST提交的2种方法
- php 模拟POST提交的2种方法详解
- php 模拟POST提交数据的2种方法
- php 模拟POST提交的2种方法
- PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)
- php模拟post提交数据的方法
- php模拟post提交(方法一)
- 三种方法教你如何用PHP模拟post提交数据
- PHP模拟post提交数据方法汇总
- php 模拟POST提交的三种方法[实例代码]
- php模拟GET与POST向微信接口提交及获取数据的方法
- PHP模拟POST提交数据并获得返回值之CURL方法
- PHP中使用curl及代理IP模拟post提交【两种实用方法】
- php模拟post提交(方法二)
- PHP模拟post提交数据方法汇总
- PHP中使用curl及代理IP模拟post提交【两种实用方法】