• PHP之httpRequest


    <?php 

      /**

      * Respose A Http Request

      *

      * @param string $url

      * @param array $post

      * @param string $method

      * @param bool $returnHeader

      * @param string $cookie

      * @param bool $bysocket

      * @param string $ip

      * @param integer $timeout

      * @param bool $block

      * @return string Response

      */ 

      function httpRequest($url,$post='',$method='GET',$limit=0,$returnHeader=FALSE,$cookie='',$bysocket=FALSE,$ip='',$timeout=15,$block=TRUE) { 

        $return = ''; 

        $matches = parse_url($url); 

        !isset($matches['host']) && $matches['host'] = ''; 

        !isset($matches['path']) && $matches['path'] = ''; 

        !isset($matches['query']) && $matches['query'] = ''; 

        !isset($matches['port']) && $matches['port'] = ''; 

        $host = $matches['host']; 

        $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/'; 

        $port = !empty($matches['port']) ? $matches['port'] : 80; 

        if(strtolower($method) == 'post') { 

          $post = (is_array($post) and !empty($post)) ? http_build_query($post) : $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 ''; 

        }else { 

          $header = $content = ''; 

          stream_set_blocking($fp, $block); 

          stream_set_timeout($fp, $timeout); 

          fwrite($fp, $out); 

          $status = stream_get_meta_data($fp); 

          if(!$status['timed_out']) {//未超时 

            while (!feof($fp)) { 

              $header .= $h = fgets($fp); 

              if($h && ($h == " " ||  $h == " ")){ 

                break; 

              }

            } 

            $stop = false; 

            while(!feof($fp) && !$stop) { 

              $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit)); 

              $content .= $data; 

              if($limit) { 

                $limit -= strlen($data); 

                $stop = $limit <= 0; 

              } 

            } 

          } 

          fclose($fp); 

          return $returnHeader ? array($header,$content) : $content; 

        } 

      } 

    ?>

  • 相关阅读:
    在JS中如何去掉千分号
    JS中showModalDialog详细使用
    js里的insertCell和appendChild的区别
    js showModalDialog
    js中innerHTML,innerText,outerHTML的用法和区别
    MYSQL入门指导
    对拍程序C语言实现
    人性的弱点
    POJ3207(2SAT)
    期末考试时间安排
  • 原文地址:https://www.cnblogs.com/alonesky/p/10042639.html
Copyright © 2020-2023  润新知