PHP模拟post提交数据的函数代码

2010-09-10 09:56:52来源:作者:


PHP Code复制内容到剪贴板


    function A_bbslogin($user_login,$password,$host,$port="80"){   
    //需要提交的post数据   
    $argv = array(   
    'cookie' => array('user_login' =>$user_login,

PHP Code复制内容到剪贴板
  1. function A_bbslogin($user_login,$password,$host,$port="80"){   
  2. //需要提交的post数据   
  3. $argv = array(   
  4. 'cookie' => array('user_login' =>$user_login'password' => $password,'_wp_http_referer'=>'/bbpress/','re'=>'','remember'=>true)   
  5. );   
  6. foreach($argv['cookie'as $key => $value) {   
  7. $params[] = $key . '=' . $value;   
  8. }   
  9. $params = implode('&'$params);   
  10. $header = "POST /bbpress/bb-login.php HTTP/1.1\r\n";   
  11. $header .= "Host:$host:$port\r\n";   
  12. $header .= "Content-Type: application/x-www-form-urlencoded\r\n";   
  13. $header .= "Content-Length: " . strlen($params) . "\r\n";   
  14. $header .= "Connection: Close\r\n\r\n";   
  15. $header .= $params;   
  16. $fp = fsockopen($host$port);   
  17. fputs($fp$header);   
  18. while(!feof($fp)) {   
  19. $str = fgets($fp); //以下是自己的逻辑代码,这里主要是模拟cookie,可用来同步登陆   
  20. if(!(strpos($str,"Set-Cookie:") === false)){   
  21. $tmparray = explode(" ",$str);   
  22. $cookiearray = explode("=",$tmparray[1]);   
  23. $cookiepaths = explode("=",$tmparray[6]);   
  24. $cookiename = urldecode($cookiearray[0]);   
  25. $cookievalue = urldecode(substr($cookiearray[1],0,strlen($cookiearray[1])-1));   
  26. $cookietime = time()+3600*24*7;   
  27. $cookiepath = urldecode(substr($cookiepaths[1],0,strlen($cookiepaths[1])-1));   
  28. setcookie($cookiename,$cookievalue,$cookietime,$cookiepath);   
  29. }   
  30. }   
  31. fclose($fp);   
  32. }  

原文:http://www.52blogger.com/archives/595

关键词:PHP

赞助商链接: