php 模拟POST提交的解决办法
内容摘要
这篇文章主要为大家详细介绍了php 模拟POST提交的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
一、通过curl函数
代
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
一、通过curl函数
代
文章正文
这篇文章主要为大家详细介绍了php 模拟POST提交的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
一、通过curl函数
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <code> $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 ); </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <code> $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> </code> |
注:关于php 模拟POST提交的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释