网站制作学习网PHP→正文:php模拟提交之fsockopen
字体:

php模拟提交之fsockopen

PHP 2010/10/14 17:00:37  点击:不统计

<网f站o学a习s制p作.cn>

php模拟提交之fsockopen,对于这种提交还不是很理解.看了一个网友写的关于fsockopen.参考
<?
function socketPost($url, $post_string, $connectTimeout = 30, $readTimeout = 30){
$urlInfo = parse_url($url);
$urlInfo["path"] = ($urlInfo["path"] == "" ? "/" : $urlInfo["path"]);
$urlInfo["port"] = (!isset($urlInfo["port"]) ? 80 : $urlInfo["port"]);
$hostIp = gethostbyname($urlInfo["host"]);

$urlInfo["request"] =  $urlInfo["path"] .
(empty($urlInfo["query"]) ? "" : "?" . $urlInfo["query"]) .
(empty($urlInfo["fragment"]) ? "" : "#" . $urlInfo["fragment"]);

$fsock = fsockopen($hostIp, $urlInfo["port"], $errno, $errstr, $connectTimeout);
if (false == $fsock) {
  $fp = @fopen('/tmp/error.log',"a+");
  fwrite($fp,sprintf("%s\t[%s]\t%s\n",date('Y-m-d H:i:s'),$errno,$errstr ));
  return false;
}
/* begin send data */
$in = "POST " . $urlInfo["request"] . " HTTP/1.0\r\n";
$in .= "Accept: */*\r\n";
$in .= "Host: " . $urlInfo["host"] . "\r\n";
$in .= "Content-type: application/x-www-form-urlencoded\r\n";
$in .= "Content-Length: " . strlen($post_string) . "\r\n";
$in .= "Connection: Close\r\n\r\n";
$in .= $post_string . "\r\n\r\n";

stream_set_timeout($fsock, $readTimeout);
if (!fwrite($fsock, $in, strlen($in))) {
  fclose($fsock);
  return false;
}
unset($in);

//process response
$out = "";
while ($buff = fgets($fsock, 2048)) {
  $out .= $buff;
}
//finish socket
fclose($fsock);
$pos = strpos($out, "\r\n\r\n");
$head = substr($out, 0, $pos);          //http head
$status = substr($head, 0, strpos($head, "\r\n"));              //http status line
$body = substr($out, $pos + 4, strlen($out) - ($pos + 4));              //page body
if (preg_match("/^HTTP\/\d\.\d\s([\d]+)\s.*$/", $status, $matches)) {
  if (intval($matches[1]) / 100 == 2) {//return http get body
    return $body;
  } else {
    return false;
  }
} else {
  return false;
}
}
$result=socketPost("http://xx.xx.com/index.php","clientname=test08&clientpasswd=test08&submit=submit");
echo $result;
?>

原载于:
http://blog.izhoufeng.com/posts/156.html


http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E

·上一篇:php中的json >>    ·下一篇:php解析url函数 >>
推荐文章
最新文章