Ignore:
Timestamp:
2007/07/23 22:20:27 (17 years ago)
Author:
nanasess
Message:

getLocation() 追加

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/LC_Page.php

    r15113 r15117  
    9797                          . "|" . preg_quote(SSL_URL, '/') . ")/", $url)) { 
    9898 
     99            // TODO パラメータが存在する場合の対応 
    99100            header("Location: " . $url . "?" . TRANSACTION_ID_NAME . "=" . $this->getToken()); 
    100101        } 
     
    162163    } 
    163164 
     165    /** 
     166     * $path から URL を取得する. 
     167     * 
     168     * 以下の順序で 引数 $path から URL を取得する. 
     169     * 1. realpath($path) で $path の 絶対パスを取得 
     170     * 2. $_SERVER['DOCUMENT_ROOT'] と一致する文字列を削除 
     171     * 3. $useSSL の値に応じて, SITE_URL 又は, SSL_URL を付与する. 
     172     * 
     173     * 返り値に, QUERY_STRING を含めたい場合は, key => value 形式 
     174     * の配列を $param へ渡す. 
     175     * 
     176     * @param string $path 結果を取得するためのパス 
     177     * @param array $param URL に付与するパラメータの配列 
     178     * @param boolean $useSSL 結果に SSL_URL を使用する場合 true, 
     179     *                         SITE_URL を使用する場合 false, 
     180     *                         デフォルト false 
     181     * @param string $documentRoot DocumentRoot の文字列. 指定しない場合は, 
     182     *                              $_SERVER['DOCUMENT_ROOT'] が付与される. 
     183     * @return string $path の存在する http(s):// から始まる絶対パス 
     184     */ 
     185    function getLocation($path, $param = array(), $useSSL = false, $documentRoot = "") { 
     186 
     187        if (empty($documentRoot)) { 
     188            $documentRoot = $_SERVER['DOCUMENT_ROOT']; 
     189        } 
     190        // DocumentRoot を削除した文字列を取得. 
     191        $root = str_replace($documentRoot, "", realpath($path)); 
     192        // 先頭の / を削除 
     193        $root = substr_replace($root, "", 0, 1); 
     194 
     195        if ($useSSL) { 
     196            $url = SSL_URL . $root; 
     197        } else { 
     198            $url = SITE_URL . $root; 
     199        } 
     200 
     201        // QUERY_STRING 生成 
     202        $queryString = ""; 
     203        $i = count($param); 
     204        foreach ($param as $key => $val) { 
     205            $queryString .= $key . "=" . $val; 
     206 
     207            if ($i > 1) { 
     208                $queryString .= "&"; 
     209            } 
     210            $i--; 
     211        } 
     212 
     213        // QUERY_STRING が存在する場合は付与して返す. 
     214        if (empty($queryString)) { 
     215            return $url; 
     216        } else { 
     217            return $url . "?" . $queryString; 
     218        } 
     219    } 
     220 
    164221    // }}} 
    165222    // {{{ private functions 
Note: See TracChangeset for help on using the changeset viewer.