<?php function so($host,$port, $url, $extraData,&$errno,&$errstr,$method='GET'){ $fp = fsockopen($host, $port, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br /> "; return array('errstr'=>$errstr,'errno'=>$errno); } $out = "$method $url HTTP/1.1 /r/n"; $out .= "Host: $host:$port /r/n"; if(strlen($extraData)>3){ $out .= $extraData; }else{ $out .= "Connection: Close "; } fwrite($fp, $out); $content=""; while (!feof($fp)) { $content.=fgets($fp, 128); //echo $content; } fclose($fp); $savedCookies=array(); $contents=explode(" ",$content); foreach($contents as $c){ if(strpos($c,":")!==false){ $curContent=explode(":",$c); if($curContent[0]=='Set-Cookie'){ $cookieInfos=explode(";",$curContent[1]); $pos=strpos($cookieInfos[0],'='); $cookieName=ltrim(substr($cookieInfos[0],0,$pos)); $cookieValue=substr($cookieInfos[0],$pos-1); //echo "$cookieName=>".$cookieValue." "; $savedCookies[$cookieName]=$cookieValue; } } } return array($content,$savedCookies); } $extraData=""; $data='MYUSERINFO='.urlencode('username=leinchu&password=123qwe'); //echo "Data Length:".strlen($data)." "; $extraData.="Cookie: ".$data."; /r/n"; $extraData.="Content-Type: application/x-www-form-urlencoded/r/n"; $extraData.="Content-Length: ".strlen($data)."/r/n"; $extraData.="Connection: Close /r/n/r/n"; $extraData.=$data; //so(服务器名或者ip,服务器端口-通常是80,请求的文件路径-可加参数:?getparam1=123,额外的数据-可以是Accept-Language或者是post的数据或者cookie信息,错误号,错误描述,方法-GET||POST); $rq=so("127.0.0.1", 803, "/cookie.php", $extraData, $errno, $errstr, "POST"); echo "------------------------------------------------- /r/n"; var_dump($rq[0]); echo "------------------------------------------------- "; ?>
结果:
Cookie: array 'MYUSERINFO' => string 'username=leinchu&password=123qwe' (length=32)
POST: array 'MYUSERINFO' (length=32)