php模拟post提交数据,用处很多,可用来网站的采集,登陆等等 array('user_login' => $user_login, 'password' => $password, '_wp_http_referer' => '/bbpress/', 're' => '', 'remember' => true)); foreach ($argv['cookie'] as $key => $value) { $params[] = $key . '=' . $value; } $params = implode('&', $params); $header = post /bbpress/bb-login.php http/1.1\r\n; $header .= host:$host:$port\r\n; $header .= content-type: application/x-www-form-urlencoded\r\n; $header .= content-length: . strlen($params) . \r\n; $header .= connection: close\r\n\r\n; $header .= $params; $fp = fsockopen($host, $port); fputs($fp, $header); while (!feof($fp)) { $str = fgets($fp); //以下是自己的逻辑代码,这里主要是模拟cookie,可用来同步登陆 if (!(strpos($str, set-cookie:) === false)) { $tmparray = explode( , $str); $cookiearray = explode(=, $tmparray[1]); $cookiepaths = explode(=, $tmparray[6]); $cookiename = urldecode($cookiearray[0]); $cookievalue = urldecode(substr($cookiearray[1], 0, strlen($cookiearray[1]) - 1)); $cookietime = time() + 3600 * 24 * 7; $cookiepath = urldecode(substr($cookiepaths[1], 0, strlen($cookiepaths[1]) - 1)); setcookie($cookiename, $cookievalue, $cookietime, $cookiepath); } } fclose($fp);}?>
复制代码
array( 'method' => 'post', 'header' => 'content-type: application/x-www-form-urlencoded' . '\r\n'.'user-agent : jimmy\'s post example beta' . '\r\n'.'content-length:' . strlen($post_string) + 8, 'content' => 'mypost=' . $post_string) ); $stream_context = stream_context_create($context); $data = file_get_contents($remote_server, false, $stream_context); return $data;} ?>
复制代码