Ignore:
Timestamp:
2014/08/14 11:37:36 (12 years ago)
Author:
kimoto
Message:

recursiveMkDirのPHP4サポートは不要
Windows環境の場合はmkdirのmodeは効かないのでテストを変更する
isAbsoluteRealPathの修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/class/util/SC_Utils.php

    r23546 r23590  
    17951795     * この関数は, パスの存在チェックを行なわないため注意すること. 
    17961796     * 
    1797      * @param string $realpath チェック対象のパス 
     1797     * use File_Util::isAbsolute 
     1798     * http://pear.php.net/package/File_Util/ 
     1799     * 
     1800     * @param string $path チェック対象のパス 
    17981801     * @return boolean 絶対パスの場合 true 
    17991802     */ 
    1800     public static function isAbsoluteRealPath($realpath) 
    1801     { 
    1802         if (strpos(PHP_OS, 'WIN') === false) { 
    1803             return substr($realpath, 0, 1) == '/'; 
    1804         } else { 
    1805             return preg_match('/^[a-zA-Z]:(\\\|\/)/', $realpath) ? true : false; 
    1806         } 
     1803    public static function isAbsoluteRealPath($path) 
     1804    { 
     1805        if (preg_match('/(?:\/|\\\)\.\.(?=\/|$)/', $path)) { 
     1806            return false; 
     1807        } 
     1808        if (!strncasecmp(PHP_OS, 'win', 3)) { 
     1809            return (($path{0} == '/') ||  preg_match('/^[a-zA-Z]:(\\\|\/)/', $path)); 
     1810        } 
     1811        return ($path{0} == '/') || ($path{0} == '~'); 
    18071812    } 
    18081813 
    18091814    /** 
    18101815     * ディレクトリを再帰的に作成する. 
    1811      * 
    1812      * mkdir 関数の $recursive パラメーターを PHP4 でサポートする. 
    18131816     * 
    18141817     * @param  string  $pathname ディレクトリのパス 
     
    18171820     * @see http://jp.php.net/mkdir 
    18181821     */ 
    1819     public static function recursiveMkdir($pathname, $mode = 0777) 
    1820     { 
    1821         /* 
    1822          * SC_Utils_Ex への再帰は無限ループやメモリリークの懸念 
    1823          * 自クラスへ再帰する. 
    1824          */ 
    1825         is_dir(dirname($pathname)) || SC_Utils::recursiveMkdir(dirname($pathname), $mode); 
    1826  
    1827         return is_dir($pathname) || @mkdir($pathname, $mode); 
     1822    public static function recursiveMkdir($path, $mode = 0777) 
     1823    { 
     1824        // Windows環境ではmodeは効かない 
     1825        return mkdir($path, $mode, true); 
    18281826    } 
    18291827 
Note: See TracChangeset for help on using the changeset viewer.