`
wzjs2011
  • 浏览: 30823 次
文章分类
社区版块
存档分类
最新评论

php 模拟POST提交的几种方法

阅读更多
1、curl 网站建设:www.ucantech.com

Php代码

    $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

Php代码

    $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=$_SERVER["SCRIPT_URI"]; 
      
    // making string from $data 
    foreach($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); 


3、其它还有

Snoopy 类 :sourceforge.net/projects/snoopy/(fblww-0106)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics