php中使用socket方式get、post数据实例,socketget1. 使用 php 获得网页内容 get方式
复制代码 代码如下:
function socketget($url, &$ret)
{
$urlarr = parse_url($url);
$host = $urlarr['host'];
$port = isset($urlarr['port'])?$urlarr['port']:80;
$path = isset($urlarr['path'])?$urlarr['path']:/;
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
echo $errstr ($errno)
\n;
return false;
}
else
{
$out = get $path http/1.1\r\n;
$out .= host: $host\r\n;
$out .= connection: close\r\n\r\n;
$ret = ;
fwrite($fp, $out);
while (!feof($fp))
{
$ret .= fgets($fp, 128);
}
fclose($fp);
}
return true;
}
?>
2. 使用 php 向页面 post 数据
复制代码 代码如下:
function socketpost($url, $data, &$ret)
{
$urlarr = parse_url($url);
$host = $urlarr['host'];
$port = isset($urlarr['port'])?$urlarr['port']:80;
$path = isset($urlarr['path'])?$urlarr['path']:/;
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
echo $errstr ($errno)
\n;
return false;
}
else
{
$out = post $path http/1.1\r\n;
$out .= host: $host\r\n;
$out .= content-type: application/x-www-form-urlencoded\r\n;
$out .= content-length: .strlen($data).\r\n;
$out .= connection: keep-alive\r\n\r\n;
$out .= $data;
$ret = ;
fwrite($fp, $out);
while (!feof($fp))
{
$ret .= fgets($fp, 128);
}
fclose($fp);
}
return true;
}
?>
如果post报错,把$out .= connection: keep-alive\r\n\r\n;中的keep-alive改成close
http://www.bkjia.com/phpjc/978385.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/978385.htmltecharticlephp中使用socket方式get、post数据实例,socketget 1. 使用 php 获得网页内容 get方式 复制代码 代码如下: php function socketget($url, nbsp;$urlarr = parse_u...
