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

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

  具体实现代码如下:

  

复制代码 代码如下:
$post =1;

  $url = parse_url($url);

  $host ='http://www.glzy8.com';

  $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.glzy8.com", 80, $errno, $errstr, 30);

  if (!$fp) {

  echo "$errstr ($errno) ";

  } else {

  $out = "get / http/1.1 ";

  $out .= "host: www.glzy8.com";

  $out .= "connection: close ";

  fwrite($fp, $out);

  while (!feof($fp)) {

  echo fgets($fp, 128);

  }

  fclose($fp);

  }

  希望本文所述对大家的PHP程序设计有所帮助。