>백엔드 개발 >PHP 튜토리얼 > Php 应用 fsockopen发送http请求

Php 应用 fsockopen发送http请求

WBOY
WBOY원래의
2016-06-13 12:38:561049검색

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://




성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.