php socket方式提交的post详解
php socket方式提交的post详解
发布时间:2016-12-29 来源:查字典编辑
摘要:

<?

/*

**POST报文到主机

*/

functionPostToHost($url,$data){

$url=parse_url($url);

if(!$url)return"couldn'tparseurl";

if(!isset($url['port'])){$url['port']="";}

if(!isset($url['query'])){$url['query']="";}

$encoded="";

while(list($k,$v)=each($data)){

$encoded.=($encoded?"&":"");

$encoded.=rawurlencode($k)."=".rawurlencode($v);

}

$port=$url['port']?$url['port']:80;

$fp=fsockopen($url['host'],$port,$errno,$errstr);

if(!$fp)return"Failedtoopensocketto$url[host]$portERROR:$errno-$errstr";

fputs($fp,sprintf("POST%s%s%sHTTP/1.0n",$url['path'],$url['query']?"?":"",$url['query']));

fputs($fp,"Host:$url[host]n");

fputs($fp,"Content-type:application/x-www-form-urlencodedn");

fputs($fp,"Content-length:".strlen($encoded)."n");

fputs($fp,"Connection:closenn");

fputs($fp,"$encodedn");

$line=fgets($fp,1024);

if(!eregi("^HTTP/1..200",$line))return;

$results="";$inheader=1;

while(!feof($fp)){

$line=fgets($fp,1024);

if($inheader&&($line=="n"||$line=="rn")){

$inheader=0;

}

elseif(!$inheader){

$results.=$line;

}

}

fclose($fp);

return$results;

}/*endfunctionPostToHost*/

?>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类