当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-26 16:20:50 浏览: 评论:0 

这篇文章主要介绍了php使用fsockopen函数发送post,get请求获取网页内容的方法,是PHP关于socket编程的一个典型应用,需要的朋友可以参考下

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

具体实现代码如下:

  1. $post =1; 
  2. $url = parse_url($url); 
  3. $host ='https://www.phpfensi.com'
  4. $path ='/'
  5. $query ='?action=phpfensi.com'
  6. $port =80; 
  7.  
  8. if($post) { 
  9.   $out = "post $path http/1.0 "
  10.   $out .= "accept: */* "
  11.   //$out .= "referer: $boardurl "; 
  12.   $out .= "accept-language: zh-cn "
  13.   $out .= "content-type: application/x-www-form-urlencoded "
  14.   $out .= "user-agent: $_server[http_user_agent] "
  15.   $out .= "host: $host "
  16.   $out .= 'content-length: '.strlen($post)." "
  17.   $out .= "connection: close "
  18.   $out .= "cache-control: no-cache "
  19.   $out .= "cookie: $cookie "
  20.   $out .= $post
  21.  } else { 
  22.   $out = "get $path http/1.0 "
  23.   $out .= "accept: */* "
  24.   //$out .= "referer: $boardurl "; 
  25.   $out .= "accept-language: zh-cn "
  26.   $out .= "user-agent: $_server[http_user_agent] "
  27.   $out .= "host: $host "
  28.   $out .= "connection: close "
  29.   $out .= "cookie: $cookie "
  30.  } 
  31.  $fp = @fsockopen(($ip ? $ip : $host), $port$errno$errstr$timeout); 
  32.  if(!$fp)  
  33.  { 
  34.   return '';//note $errstr : $errno  
  35.  } else { 
  36.   return '成功访问'
  37.  } 

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(),如果上面实例看不懂,就来看个简的吧,代码如下:

  1. $fp = fsockopen("www.phpfensi.com", 80, $errno$errstr, 30); 
  2.  if (!$fp) { 
  3.   echo "$errstr ($errno) "
  4.  } else { 
  5.   $out = "get / http/1.1 "
  6.   $out .= "host: www.phpfensi.com"
  7.   $out .= "connection: close "
  8.   fwrite($fp$out); 
  9.   while (!feof($fp)) { 
  10.    echo fgets($fp, 128); 
  11.   } 
  12.   fclose($fp); 
  13.  } 

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

Tags: fsockopen post get

分享到: