realpath有很多情況不能處哩,所以自己寫了一個路徑修正的程式去配合...
修正一個小錯誤...

function 路徑修正($路徑, $編碼 = false, $調整 = false) {
    $陣列 =    explode('://', strtr($路徑, '\\', '/'), 2);
    if (2 == count($陣列)) {
        $前綴 = $陣列[0];
        $陣列 = explode('/', $陣列[1]);
    } else {
        $前綴 = '';
        $陣列 = explode('/', $陣列[0]);
    }
   
    $路徑 = array();
    foreach ($陣列 as $變數) {
        $測試 = trim($變數);
        if ('..' == $測試) {
            if (0 == count($路徑) || '..' == end($路徑) || (1 == count($路徑) && '' == end($路徑))) {
                $路徑[] = '..';
            } else {
                while(1 < count($路徑) && '' == end($路徑)) {
                    array_pop($路徑);
                }
                array_pop($路徑);
            }
        } else if ('.' == $測試 || '' == $測試) {
            continue;
        } else {
            if (false == $編碼) {
                $路徑[] = $變數;
            } else {
                $路徑[] = urlencode($變數);
            }
        }
    }
    $路徑 = implode('/', $路徑);
    if ('' != $前綴) {
        $路徑 = "$前綴://$路徑";
    }
    if ((PHP_OS == 'WIN32' || PHP_OS == 'WINNT') && '' == $前綴 && true == $調整) {
        $路徑 = strtr($路徑, '/', '\\');
    }
    return $路徑;
}
arrow
arrow
    全站熱搜

    HACGIS 發表在 痞客邦 留言(0) 人氣()