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

前端技术 2023/09/02 PHP

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

具体实现代码如下:

复制代码 代码如下:
$post =1;
$url = parse_url($url);
$host =\'http://www.phpstudy.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.phpstudy.net\", 80, $errno, $errstr, 30);
 if (!$fp) {
  echo \"$errstr ($errno) \";
 } else {
  $out = \"get / http/1.1 \";
  $out .= \"host: www.phpstudy.net\";
  $out .= \"connection: close \";
  fwrite($fp, $out);
  while (!feof($fp)) {
   echo fgets($fp, 128);
  }
  fclose($fp);
 }

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

本文地址:https://www.stayed.cn/item/4095

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。