手记 / php使用fsockopen函数发送post,get请求获取网页内容的方法

php使用fsockopen函数发送post,get请求获取网页内容的方法

3个月前37浏览0评论

本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。

具体实现代码如下:

$post =1; 
$url = parse_url($url); 
$host ='http://www.jb51.net'; 
$path ='/'; 
$query ='?action=phpfensi.com'; 
$port =80; 
  
if($post) { 
  $out = "post $path http/1.0 "; 
  $out .= "accept: */* "; 
  //$out .= "referer: $boardurl "; 
  $out .= "accept-language: zh-cn "; 
  $out .= "content-type: application/x-www-form-urlencoded "; 
  $out .= "user-agent: $_server[http_user_agent] "; 
  $out .= "host: $host "; 
  $out .= 'content-length: '.strlen($post)." "; 
  $out .= "connection: close "; 
  $out .= "cache-control: no-cache "; 
  $out .= "cookie: $cookie "; 
  $out .= $post; 
 } else { 
  $out = "get $path http/1.0 "; 
  $out .= "accept: */* "; 
  //$out .= "referer: $boardurl "; 
  $out .= "accept-language: zh-cn "; 
  $out .= "user-agent: $_server[http_user_agent] "; 
  $out .= "host: $host "; 
  $out .= "connection: close "; 
  $out .= "cookie: $cookie "; 
 } 
 $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); 
 if(!$fp)  
 { 
  return '';//note $errstr : $errno  
 } else { 
  return '成功访问'; 
 }

fsockopen语法:

resource fsockopen(string $hostname [,int $port 
= -1 [, int &$errno [,string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

启动一个套接字连接到指定的主机的资源,php支持在互联网领域的目标和unix在所支持的套接字传输列表说明,所支持的传输列表也可以检索使用stream_get_transports().

该插座预设会被启用,阻塞模式,你可以切换到非阻塞模式使用stream_set_blocking(),如果上面实例看不懂,就来看个简的吧,代码如下:

$fp = fsockopen("www.jb51.net", 80, $errno, $errstr, 30); 
 if (!$fp) { 
  echo "$errstr ($errno) "; 
 } else { 
  $out = "get / http/1.1 "; 
  $out .= "host: www.jb51.net"; 
  $out .= "connection: close "; 
  fwrite($fp, $out); 
  while (!feof($fp)) { 
   echo fgets($fp, 128); 
  } 
  fclose($fp); 
 }

更多关于php使用fsockopen函数发送post,get请求获取网页内容的方法请关注PHP中文网(www.php.cn)其他文章!

相关标签:PHP
    0推荐

      作者的热门手记