'/', 1=>'/', 2=>'/', 3=>'/', 4=>'/', ); // 本番サーバードメイン名 $livesrv = 'witc.co.jp'; // wwwつきのURLにするか $addwww = TRUE; // テンプレートファイル $template = $_SERVER['DOCUMENT_ROOT'].'/template/index.html'; // Web基本認証「ID:PW」 $idpw = ''; // プログラムとして扱うファイルの拡張子 // プログラムのインクルードの場合はHTTPで取得してインクルードする $progsuf = array('php','htm','cgi','pl'); // 携帯リダイレクトするか $mobredirect = FALSE; // 実行 $redirect = FALSE; $carrier = mobileCarrier(); $server = $_SERVER['HTTP_HOST']; // SSLは解除する if( isset($_SERVER['HTTPS']) ){ $redirect = TRUE; } // www付きのURLにする場合 if($addwww){ // 本番サーバーの場合 if( preg_match('/'.$livesrv.'$/i', $server) ){ // wwwが付いていない場合 if( !preg_match('/^www\./', $server) ){ // wwwを付ける $server = 'www.'.$server; $redirect = TRUE; } } } // 携帯リダイレクトをするか if($mobredirect == TRUE){ // 携帯版の場合 if($carrier != 0){ // リダイレクトする $redirect = TRUE; } } // リダイレクト if($redirect == TRUE){ header('HTTP/1.1 301 Moved Permanently'); header('Location: http://'.$server.$nextPage[$carrier]."\x0D\x0A"."\x0D\x0A"); exit(); } // リダイレクトしない場合 // テンプレートを読み込んで、表示 // SSIはincludeにする $tmpl = file_get_contents($template); $ssiincexp = ''; $ssifszexp = ''; $ssicfgexp = ''; $tmpl = preg_replace_callback('/'.$ssiincexp.'/i', 'includer', $tmpl); $tmpl = preg_replace_callback('/'.$ssifszexp.'/i', 'filesizer', $tmpl); $tmpl = preg_replace('/'.$ssicfgexp.'/i', '', $tmpl); print $tmpl; exit(); // 関数 // SSIのファイルサイズを置換 // [an error occurred while processing this directive] function filesizer($m){ $unit = array('K','M','G','T'); clearstatcache(); $ret = filesize($_SERVER['DOCUMENT_ROOT'].$m[1]); if( ($ret / 1024) > 1 ){ for($i = 0; $i < count($unit); $i++){ $ret = round($ret / 1024); if(strlen($ret) == 4){ $ret = sprintf('%.1f', $ret / 1024); $ret = $ret.$unit[$i+1]; break; } if(strlen($ret) < 4){ $ret = $ret.$unit[$i]; break; } } } return($ret); } // SSIのインクルードを置換 // [an error occurred while processing this directive] // プログラムの呼び出しはallow_url_fopenが有効な場合のみ可能だが、ログにアクセス記録が残る。 function includer($m){ global $idpw,$progsuf; $ret = ''; $auth = ($idpw != NULL) ? $idpw.'@' : ''; $path = pathinfo($m[1]); if( in_array(strtolower($path['extension']), $progsuf) || $path['extension'] == ''){ if( ini_get('allow_url_fopen') == 1){ $url = ( isset($_SERVER['HTTPS']) ) ? 'https' : 'http'; $url .= '://'.$auth; $url .= $_SERVER['SERVER_NAME']; $ret = implode( '', file($url.$m[1]) ); } }else{ $ret = implode( '', file($_SERVER['DOCUMENT_ROOT'].$m[1]) ); } return($ret); } // ユーザーエージェントから、携帯電話のキャリアを判別する // 0:PC等、1:DoCoMo、2:Softbank、3:au、4:WILLCOM function mobileCarrier(){ $agent = $_SERVER['HTTP_USER_AGENT']; $ret = 0; if( preg_match('/^DoCoMo/', $agent) ){ $ret = 1; }else if( preg_match('/^J-PHONE/', $agent) || preg_match('/^Vodafone/', $agent) || preg_match('/^MOT/', $agent) || preg_match('/^SoftBank/', $agent) || preg_match('/^J-EMULATOR/', $agent) || preg_match('/^Vemulator/', $agent) ){ $ret = 2; }else if( preg_match('/^KDDI/', $agent) || preg_match('/^UP.Browser/', $agent) ){ $ret = 3; }else if( preg_match('/\(DDIPOCKET;/', $agent) || preg_match('/\(WILLCOM;/', $agent) ){ $ret = 4; } return($ret); } ?>