Home >Backend Development >PHP Tutorial > Php 应用 fsockopen发送http请求

Php 应用 fsockopen发送http请求

WBOY
WBOYOriginal
2016-06-13 12:38:561049browse

Php 使用 fsockopen发送http请求

<?php function HTTP_Post($URL,$data, $referrer="") { 

        // parsing the given URL 
        $URL_Info=parse_url($URL); 

        // Building referrer 
        if($referrer=="") // if not given use this script as referrer 
          $referrer=$_SERVER["SCRIPT_URI"]; 

        // making string from $data 
        foreach($data as $key=>$value) 
          $values[]="$key=".urlencode($value); 
        $data_string=implode("&",$values); 

        // Find out which port is needed - if not given use standard (=80) 
        if(!isset($URL_Info["port"])) 
          $URL_Info["port"]=80; 

        // building POST-request: 
        $request.="POST ".$URL_Info["path"]." HTTP/1.1\n"; 
        $request.="Host: ".$URL_Info["host"]."\n"; 
        $request.="Referer: $referer\n"; 
        $request.="Content-type: application/x-www-form-urlencoded\n"; 
        $request.="Content-length: ".strlen($data_string)."\n"; 
        $request.="Connection: close\n"; 
        $request.="\n"; 
        $request.=$data_string."\n"; 

        $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); 
        fputs($fp, $request); 
        while(!feof($fp)) { 
            $result .= fgets($fp, 128); 
        } 
        fclose($fp); 

        return $result; 
      } 

      $output1=HTTP_Post("http://www.example.com/script1.php",$_POST); 
      $output2=HTTP_Post("http://www.example.net/script2.php",$_POST); 
?>

注意:

Host:对应的值不能带有http://




Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn