Ignore:
Timestamp:
2007/07/20 15:58:59 (15 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/data/include/file_manager.inc

    r12157 r15078  
    77  
    88/*  
    9  * ´Ø¿ô̾¡§sfGetFileList() 
    10  * ÀâÌÀ¡¡¡§»ØÄê¥Ñ¥¹ÇÛ²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¼èÆÀ 
    11  * °ú¿ô1 ¡§¼èÆÀ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹ 
     9 * 関数名:sfGetFileList() 
     10 * 説明 :指定パス配下のディレクトリ取得 
     11 * 引数1 :取得するディレクトリパス 
    1212 */ 
    1313function sfGetFileList($dir) { 
     
    1818        if ($dh = opendir($dir)) {  
    1919            $cnt = 0; 
    20             // ¹ÔËö¤Î/¤ò¼è¤ê½ü¤¯ 
     20            // 行末の/を取り除く 
    2121            while (($file = readdir($dh)) !== false) $arrDir[] = $file; 
    2222            $dir = ereg_replace("/$", "", $dir); 
    23             // ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ô»ú¤Ç¥½¡¼¥È 
     23            // アルファベットと数字でソート 
    2424            natcasesort($arrDir); 
    2525            foreach($arrDir as $file) {              
    26                 // ./ ¤È ../¤ò½ü¤¯¥Õ¥¡¥¤¥ë¤Î¤ß¤ò¼èÆÀ 
     26                // ./ と ../を除くファイルのみを取得 
    2727                if($file != "." && $file != "..") { 
    2828 
    2929                    $path = $dir."/".$file; 
    30                     // SELECTÆâ¤Î¸«¤¿ÌܤòÀ°¤¨¤ë¤¿¤á»ØÄêʸ»ú¿ô¤ÇÀÚ¤ë 
     30                    // SELECT内の見た目を整えるため指定文字数で切る 
    3131                    $file_name = sfCutString($file, FILE_NAME_LEN);                      
    3232                    $file_size = sfCutString(sfGetDirSize($path), FILE_NAME_LEN); 
    3333                    $file_time = date("Y/m/d", filemtime($path)); 
    3434                     
    35                     // ¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë¤Ç³ÊǼÇÛÎó¤òÊѤ¨¤ë 
     35                    // ディレクトリとファイルで格納配列を変える 
    3636                    if(is_dir($path)) { 
    3737                        $arrDirList[$cnt]['file_name'] = $file; 
     
    5454    } 
    5555 
    56     // ¥Õ¥©¥ë¥À¤òÀèƬ¤Ë¤·¤Æ¥Þ¡¼¥¸ 
     56    // フォルダを先頭にしてマージ 
    5757    return array_merge($arrDirList, $arrFileList); 
    5858} 
    5959 
    6060/*  
    61  * ´Ø¿ô̾¡§sfGetDirSize() 
    62  * ÀâÌÀ¡¡¡§»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ð¥¤¥È¿ô¤ò¼èÆÀ 
    63  * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê 
     61 * 関数名:sfGetDirSize() 
     62 * 説明 :指定したディレクトリのバイト数を取得 
     63 * 引数1 :ディレクトリ 
    6464 */ 
    6565function sfGetDirSize($dir) { 
    6666    if(file_exists($dir)) { 
    67         // ¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì¹ç²¼ÁØ¥Õ¥¡¥¤¥ë¤ÎÁíÎ̤ò¼èÆÀ 
     67        // ディレクトリの場合下層ファイルの総量を取得 
    6868        if (is_dir($dir)) { 
    6969            $handle = opendir($dir);  
    7070            while ($file = readdir($handle)) { 
    71                 // ¹ÔËö¤Î/¤ò¼è¤ê½ü¤¯ 
     71                // 行末の/を取り除く 
    7272                $dir = ereg_replace("/$", "", $dir); 
    7373                $path = $dir."/".$file; 
     
    7575                    $bytes += filesize($path);  
    7676                } else if (is_dir($path) && $file != '..' && $file != '.') { 
    77                     // ²¼ÁØ¥Õ¥¡¥¤¥ë¤Î¥Ð¥¤¥È¿ô¤ò¼èÆÀ¤¹¤ë°Ù¡¢ºÆµ¢Åª¤Ë¸Æ¤Ó½Ð¤¹¡£ 
     77                    // 下層ファイルのバイト数を取得する為、再帰的に呼び出す。 
    7878                    $bytes += sfGetDirSize($path);  
    7979                }  
    8080            }  
    8181        } else { 
    82             // ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç 
     82            // ファイルの場合 
    8383            $bytes = filesize($dir); 
    8484        } 
    8585    } 
    86     // ¥Ç¥£¥ì¥¯¥È¥ê(¥Õ¥¡¥¤¥ë)¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï0byte¤òÊÖ¤¹ 
     86    // ディレクトリ(ファイル)が存在しない場合は0byteを返す 
    8787    if($bytes == "") $bytes = 0; 
    8888     
     
    9191 
    9292/*  
    93  * ´Ø¿ô̾¡§sfDeleteDir() 
    94  * ÀâÌÀ¡¡¡§»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü 
    95  * °ú¿ô1 ¡§ºï½ü¥Õ¥¡¥¤¥ë 
     93 * 関数名:sfDeleteDir() 
     94 * 説明 :指定したディレクトリを削除 
     95 * 引数1 :削除ファイル 
    9696 */ 
    9797function sfDeleteDir($dir) { 
    9898    $arrResult = array(); 
    9999    if(file_exists($dir)) { 
    100         // ¥Ç¥£¥ì¥¯¥È¥ê¤«¥Á¥§¥Ã¥¯ 
     100        // ディレクトリかチェック 
    101101        if (is_dir($dir)) { 
    102102            if ($handle = opendir("$dir")) { 
     
    118118            $arrResult[$cnt]['file_name'] = "$dir/$item"; 
    119119        } else { 
    120             // ¥Õ¥¡¥¤¥ëºï½ü 
     120            // ファイル削除 
    121121            $arrResult[0]['result'] = @unlink("$dir"); 
    122122            $arrResult[0]['file_name'] = "$dir";             
     
    128128 
    129129/*  
    130  * ´Ø¿ô̾¡§sfGetFileTree() 
    131  * ÀâÌÀ¡¡¡§¥Ä¥ê¡¼À¸À®ÍÑÇÛÎó¼èÆÀ(javascript¤ËÅϤ¹ÍÑ) 
    132  * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê 
    133  * °ú¿ô2 ¡§¸½ºß¤Î¥Ä¥ê¡¼¤Î¾õÂÖ³«¤¤¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤Î¥Ñ¥¹¤¬ | ¶èÀÚ¤ê¤Ç³ÊǼ 
     130 * 関数名:sfGetFileTree() 
     131 * 説明 :ツリー生成用配列取得(javascriptに渡す用) 
     132 * 引数1 :ディレクトリ 
     133 * 引数2 :現在のツリーの状態開いているフォルダのパスが | 区切りで格納 
    134134 */ 
    135135function sfGetFileTree($dir, $tree_status) { 
     
    139139    $default_rank = count(split('/', $dir)); 
    140140 
    141     // ʸËö¤Î/¤ò¼è¤ê½ü¤¯ 
     141    // 文末の/を取り除く 
    142142    $dir = ereg_replace("/$", "", $dir);     
    143     // ºÇ¾å°ÌÁؤò³ÊǼ(user_data/) 
     143    // 最上位層を格納(user_data/) 
    144144    if(sfDirChildExists($dir)) { 
    145145        $arrTree[$cnt]['type'] = "_parent"; 
     
    150150    $arrTree[$cnt]['rank'] = 0; 
    151151    $arrTree[$cnt]['count'] = $cnt; 
    152     // ½é´üɽ¼¨¤Ï¥ª¡¼¥×¥ó 
     152    // 初期表示はオープン 
    153153    if($_POST['mode'] != '') { 
    154154        $arrTree[$cnt]['open'] = lfIsFileOpen($dir, $tree_status); 
     
    164164 
    165165/*  
    166  * ´Ø¿ô̾¡§sfGetFileTree() 
    167  * ÀâÌÀ¡¡¡§¥Ä¥ê¡¼À¸À®ÍÑÇÛÎó¼èÆÀ(javascript¤ËÅϤ¹ÍÑ) 
    168  * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê 
    169  * °ú¿ô2 ¡§¥Ç¥Õ¥©¥ë¥È¤Î³¬ÁØ(/¶èÀÚ¤ê¤Ç¡¡0,1,2¡¦¡¦¡¦¤È¥«¥¦¥ó¥È) 
    170  * °ú¿ô3 ¡§Ï¢ÈÖ 
    171  * °ú¿ô4 ¡§¸½ºß¤Î¥Ä¥ê¡¼¤Î¾õÂÖ³«¤¤¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤Î¥Ñ¥¹¤¬ | ¶èÀÚ¤ê¤Ç³ÊǼ 
     166 * 関数名:sfGetFileTree() 
     167 * 説明 :ツリー生成用配列取得(javascriptに渡す用) 
     168 * 引数1 :ディレクトリ 
     169 * 引数2 :デフォルトの階層(/区切りで 0,1,2・・・とカウント) 
     170 * 引数3 :連番 
     171 * 引数4 :現在のツリーの状態開いているフォルダのパスが | 区切りで格納 
    172172 */ 
    173173function sfGetFileTreeSub($dir, $default_rank, &$cnt, &$arrTree, $tree_status) { 
     
    176176        if ($handle = opendir("$dir")) { 
    177177            while (false !== ($item = readdir($handle))) $arrDir[] = $item;  
    178             // ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤È¿ô»ú¤Ç¥½¡¼¥È 
     178            // アルファベットと数字でソート 
    179179            natcasesort($arrDir); 
    180180            foreach($arrDir as $item) { 
    181181                if ($item != "." && $item != "..") { 
    182                     // ʸËö¤Î/¤ò¼è¤ê½ü¤¯ 
     182                    // 文末の/を取り除く 
    183183                    $dir = ereg_replace("/$", "", $dir); 
    184184                    $path = $dir."/".$item; 
    185                     // ¥Ç¥£¥ì¥¯¥È¥ê¤Î¤ß¼èÆÀ 
     185                    // ディレクトリのみ取得 
    186186                    if (is_dir($path)) { 
    187187                        $arrTree[$cnt]['path'] = $path; 
     
    192192                        } 
    193193                         
    194                         // ³¬Áؤò³ä¤ê½Ð¤¹ 
     194                        // 階層を割り出す 
    195195                        $arrCnt = split('/', $path); 
    196196                        $rank = count($arrCnt); 
    197197                        $arrTree[$cnt]['rank'] = $rank - $default_rank + 1; 
    198198                        $arrTree[$cnt]['count'] = $cnt; 
    199                         // ¥Õ¥©¥ë¥À¤¬³«¤¤¤Æ¤¤¤ë¤« 
     199                        // フォルダが開いているか 
    200200                        $arrTree[$cnt]['open'] = lfIsFileOpen($path, $tree_status); 
    201201                        $cnt++; 
    202                         // ²¼Áإǥ£¥ì¥¯¥È¥ê¼èÆÀ¤Î°Ù¡¢ºÆµ¢Åª¤Ë¸Æ¤Ó½Ð¤¹ 
     202                        // 下層ディレクトリ取得の為、再帰的に呼び出す 
    203203                        sfGetFileTreeSub($path, $default_rank, $cnt, $arrTree, $tree_status); 
    204204                    } 
     
    211211 
    212212/*  
    213  * ´Ø¿ô̾¡§sfDirChildExists() 
    214  * ÀâÌÀ¡¡¡§»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥êÇÛ²¼¤Ë¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤« 
    215  * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê 
     213 * 関数名:sfDirChildExists() 
     214 * 説明 :指定したディレクトリ配下にファイルがあるか 
     215 * 引数1 :ディレクトリ 
    216216 */ 
    217217function sfDirChildExists($dir) { 
     
    220220            $handle = opendir($dir);  
    221221            while ($file = readdir($handle)) { 
    222                 // ¹ÔËö¤Î/¤ò¼è¤ê½ü¤¯ 
     222                // 行末の/を取り除く 
    223223                $dir = ereg_replace("/$", "", $dir); 
    224224                $path = $dir."/".$file; 
     
    234234 
    235235/*  
    236  * ´Ø¿ô̾¡§lfIsFileOpen() 
    237  * ÀâÌÀ¡¡¡§»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬Á°²ó³«¤«¤ì¤¿¾õÂ֤ˤ¢¤Ã¤¿¤«¥Á¥§¥Ã¥¯ 
    238  * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê 
    239  * °ú¿ô2 ¡§¸½ºß¤Î¥Ä¥ê¡¼¤Î¾õÂÖ³«¤¤¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤Î¥Ñ¥¹¤¬ | ¶èÀÚ¤ê¤Ç³ÊǼ 
     236 * 関数名:lfIsFileOpen() 
     237 * 説明 :指定したファイルが前回開かれた状態にあったかチェック 
     238 * 引数1 :ディレクトリ 
     239 * 引数2 :現在のツリーの状態開いているフォルダのパスが | 区切りで格納 
    240240 */ 
    241241function lfIsFileOpen($dir, $tree_status) { 
     
    249249 
    250250/*  
    251  * ´Ø¿ô̾¡§sfDownloadFile() 
    252  * °ú¿ô1 ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹ 
    253  * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É 
     251 * 関数名:sfDownloadFile() 
     252 * 引数1 :ファイルパス 
     253 * 説明 :ファイルのダウンロード 
    254254 */ 
    255255function sfDownloadFile($file) { 
    256     // ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¥À¥¦¥ó¥í¡¼¥É¤µ¤»¤ë 
     256    // ファイルの場合はダウンロードさせる 
    257257    Header("Content-disposition: attachment; filename=".basename($file)); 
    258258    Header("Content-type: application/octet-stream; name=".basename($file)); 
     
    263263 
    264264/*  
    265  * ´Ø¿ô̾¡§sfCreateFile() 
    266  * °ú¿ô1 ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹ 
    267  * °ú¿ô2 ¡§¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó 
    268  * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ëºîÀ® 
     265 * 関数名:sfCreateFile() 
     266 * 引数1 :ファイルパス 
     267 * 引数2 :パーミッション 
     268 * 説明 :ファイル作成 
    269269 */ 
    270270function sfCreateFile($file, $mode = "") { 
    271     // ¹ÔËö¤Î/¤ò¼è¤ê½ü¤¯ 
     271    // 行末の/を取り除く 
    272272    if($mode != "") { 
    273273        $ret = @mkdir($file, $mode); 
     
    280280 
    281281/*  
    282  * ´Ø¿ô̾¡§sfReadFile() 
    283  * °ú¿ô1 ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹ 
    284  * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ëÆɹþ 
     282 * 関数名:sfReadFile() 
     283 * 引数1 :ファイルパス 
     284 * 説明 :ファイル読込 
    285285 */ 
    286286function sfReadFile($filename) {  
    287287    $str = "";  
    288     // ¥Ð¥¤¥Ê¥ê¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó  
     288    // バイナリモードでオープン  
    289289    $fp = @fopen($filename, "rb" );  
    290     //¥Õ¥¡¥¤¥ëÆâÍƤòÁ´¤ÆÊÑ¿ô¤ËÆɤ߹þ¤à  
     290    //ファイル内容を全て変数に読み込む  
    291291    if($fp) {  
    292292        $str = @fread($fp, filesize($filename)+1);  
Note: See TracChangeset for help on using the changeset viewer.