<?php
/*
 *  PHP3 串 1.1
 *      v1.0--2000/4/18
 *      v1.1--2000/4/19
 *  制作/qqq
 *  http://qqq.tripod.co.jp/
*/ 
// by ToR 2000/9/13
//        2001/5/13
//        2001/10/09
// 改良の余地あり
//-------------------------設定----------------------
//Agent(何でも良い)
if(!$agent$agent' (゚ο゚人)) ((人゚ο゚)意味なーいじゃーん; PHP Proxy-"http://php.s3.to/)';

//タイムアウト
$time_out 30;
//-----------------------設定ここまで---------------
if(isset($u)){
  
//URL分解
  
$url parse_url($u);

  
$host $url["host"];
  
$path $url["path"];
  if(
$path == ""$path "/";
  
$query $url["query"];
  if(
$query != "")  $path "$path?$query";

  function 
fullurl($uri){ //自サイト内リンクを変換
    
global $host,$path;

    
$home substr($path0strrpos($path,"/"));
    
    if(
ereg("^http://",$uri)||ereg("^#",$uri)){
      return 
$uri;
    }elseif(
ereg("^/.*",$uri)){
      return 
"http://".$host.$uri;
    }elseif(
ereg("^(\./.*)$",$uri)){
      return 
ereg_replace("^(\./)","http://".$host.$home."/",$uri);
    }elseif(
ereg("^(\.\./.*)$",$uri)){
      
$updir substr($home0strrpos($home,"/")+1);
      return 
ereg_replace("^(\.\./)","http://".$host.$updir,$uri);
    }else{
      return 
"http://".$host.$home."/".$uri;
    }
  }

  
$ref StripSlashes($ref);
  
$agent StripSlashes($agent);

  
$method strtoupper($REQUEST_METHOD);//大文字に
  
$buffer="";$length "";
    
//POST送信に対応
  
if ($method == "POST"){
    while (list(
$name,$value) = each($HTTP_POST_VARS)) {
      
$buffer .="&$name=$value";
    }
    
$buffer  StripSlashes(substr($buffer1));//?以降
    
$length  "Content-type: application/x-www-form-urlencoded\n";
    
$length .= "Content-Length: ".strlen($buffer)."\n";
  }
  if(
$method == ""$method="GET";

  
//socketで送るデータ
  
$dat "$method $path HTTP/1.0\n";
  
$dat .= "User-Agent: $agent\n";
  
$dat .= "Referer: $ref\n";
  
$dat .= "Host: $host\n";
  
$dat .= "Connection: close\n";
  
$dat .= "$length\n";
  
$dat .= "$buffer\n\n";

  
$timeout time() + $time_out;
  
//socket通信
  
$fp fsockopen($host80, &$errno, &$errstr$time_out);
  if(!
$fp) {
    echo 
"Connect Error! $errstr ($errno)";//エラー処理
  
}else {
    
fputs($fp,$dat);

    if(
$timeout<time()) die("Time out Error!");
    
//ヘッダは飛ばす
    
while (!feof($fp) && $he != "\r\n"){
      
$hefgets($fp512);
    }
    
//本体
    
while(!feof($fp) && time()<$timeout) {
      
$line fgets($fp,1024);
      
      
//リンク先のURL変更
      
$pat = array("/(<[^>]*\bhref\s*=\s*['\"]?)([^\s\"'>]*)/sie",
                   
"/(<[^>]*\bsrc\s*=\s*['\"]?)([^\s\"'>]*)/sie",
                   
"/(<[^>]*\bbackground\s*=\s*['\"]?)([^\s\"'>]*)/sie",
                   
"/(<[^>]*\baction\s*=\s*['\"]?)([^\s\"'>]*)/sie");
      
$rep = array("StripSlashes('\\1').'$PHP_SELF?u='.fullurl('\\2')",
                   
"StripSlashes('\\1').fullurl('\\2')",
                   
"StripSlashes('\\1').fullurl('\\2')",
                   
"StripSlashes('\\1').'$PHP_SELF?u='.fullurl('\\2')");
      echo 
preg_replace($pat$rep$line);
    }
    
fclose($fp);

    if(
$timeout<time()) die("Time out Error!");
  }
  exit;
}
?>
<html><head><title>PHP Proxy</title>
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW">
<meta name="robots" content="noindex,nofollow">
<meta name="robots" content="noarchive">
<style type="text/css">
<!--
body{font-size:10pt;font-family:Tahoma,Verdana,Arial;color:#ffffff;background-color:#053015;}
td{font-size:10pt;font-family:Tahoma,Verdana,Arial;color:#ccddcc;}
h2{color:#ffffff;font-family:Tahoma,Verdana,Arial,sans-serif;}
a:link,a:active,a:visited{color:#57AF74;text-decoration:none;}
a:hover{color:#277F44;text-decoration:underline;}
hr{height: 2px;color: #156025;filter:alpha(opacity=100,finishopacity=20,style=3);}
input{border:1px solid #659025;color:#A7FFC4;background-color:#154025;font-family:Verdana,Arial;font-size:9pt;}
span.type{color:#9EB2A6;font-family:"Courier New","Lucida Console",Courier,Terminal; }
-->
</style>
</head>
<body link="#A7C4FF" vlink="#A7C4FF" alink="#A7C4FF">
<hr><h2>PHP Proxy</h2>
<blockquote>
<form action="<?php echo $PHP_SELF;?>" method="GET">
    URL : <input type="text" size="60" name="u" value="http://php.s3.to/net/testpage.php?"><br>
   Ref : <input type="text" size="60" name="ref" value="Let'sPHP http://php.s3.to"><br>
   UA : <input type="text" size="60" name="agent" value="DoCoMo CoDoMo">
    <input type="submit" value=" Start ">
</form>
<p align=right><a href="http://php.s3.to">Let's PHP!</a>
<hr>
</body></html>