• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

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




 

posted @ 2013-08-31 23:30  Class Xman  阅读(299)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3