php抓取网页连接函数(PHP程序设计实例讲述代码如下:启动一个套_set_blocking)

优采云 发布时间: 2022-04-07 10:06

  php抓取网页连接函数(PHP程序设计实例讲述代码如下:启动一个套_set_blocking)

  本文中的示例描述了php如何使用fsockopen函数发送post和get请求来获取网页内容。分享给大家,供大家参考。

  具体实现代码如下:

  $post =1;

$url = parse_url($url);

$host ='https://www.nhooo.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 支持 Internet 领域中的目标,并且 unix 在支持的套接字传输列表中指定,支持的传输列表也可以使用 stream_get_transports() 检索。

  socket会默认开启,阻塞模式,可以切换到非阻塞模式使用stream_set_blocking()。如果看不懂上面的例子,就看一下吧,代码如下:

  $fp = fsockopen("www.nhooo.com", 80, $errno, $errstr, 30);

 if (!$fp) {

  echo "$errstr ($errno) ";

 } else {

  $out = "get / http/1.1 ";

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

  $out .= "connection: close ";

  fwrite($fp, $out);

  while (!feof($fp)) {

   echo fgets($fp, 128);

  }

  fclose($fp);

 }

  希望本文对您的 PHP 编程有所帮助。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线