phpフォルダのいくつかのカプセル化された関数について

10078 ワード

/**
 *         
 * @param string $filename
 * @return boolean
 */
function checkFilename($filename){
    $pattern = "/[\/,\*,<>,\?\|]/";
    if (preg_match ( $pattern,  $filename )) {
        return false;
    }else{
        return true;
    }
}

 
<?php 
//      
/**
 *       ,             
 * @param string $path
 * @return array
 */
function readDirectory($path) {
    $handle = opendir ( $path );
    while ( ($item = readdir ( $handle )) !== false ) {
        //. .. 2     
        if ($item != "." && $item != "..") {
            if (is_file ( $path . "/" . $item )) {
                $arr ['file'] [] = $item;
            }
            if (is_dir ( $path . "/" . $item )) {
                $arr ['dir'] [] = $item;
            }
        
        }
    }
    closedir ( $handle );
    return $arr;
}
//$path="file";
//print_r(readDirectory($path));

/**
 *        
 * @param string $path
 * @return int 
 */
function dirSize($path){
    $sum=0;
    global $sum;
    $handle=opendir($path);
    while(($item=readdir($handle))!==false){
        if($item!="."&&$item!=".."){
            if(is_file($path."/".$item)){
                $sum+=filesize($path."/".$item);
            }
            if(is_dir($path."/".$item)){
                $func=__FUNCTION__;
                $func($path."/".$item);
            }
        }
        
    }
    closedir($handle);
    return $sum;
}
//$path="file";
//echo dirSize($path);

function createFolder($dirname){
    //           
    if(checkFilename(basename($dirname))){
        //                
        if(!file_exists($dirname)){
            if(mkdir($dirname,0777,true)){
                $mes="       ";
            }else{
                $mes="       ";
            }
        }else{
            $mes="         ";
        }
    }else{
        $mes="       ";
    }
    return $mes;
}
/**
 *       
 * @param string $oldname
 * @param string $newname
 * @return string
 */
function renameFolder($oldname,$newname){
    //           
    if(checkFilename(basename($newname))){
        //                  
        if(!file_exists($newname)){
            if(rename($oldname,$newname)){
                $mes="     ";
            }else{
                $mes="     ";
            }
        }else{
            $mes="       ";
        }
    }else{
        $mes="       ";
    }
    return $mes;
}

function copyFolder($src,$dst){
    //echo $src,"---",$dst."----";
    if(!file_exists($dst)){
        mkdir($dst,0777,true);
    }
    $handle=opendir($src);
    while(($item=readdir($handle))!==false){
        if($item!="."&&$item!=".."){
            if(is_file($src."/".$item)){
                copy($src."/".$item,$dst."/".$item);
            }
            if(is_dir($src."/".$item)){
                $func=__FUNCTION__;
                $func($src."/".$item,$dst."/".$item);
            }
        }
    }
    closedir($handle);
    return "    ";
    
}

/**
 *      
 * @param string $src
 * @param string $dst
 * @return string
 */
function cutFolder($src,$dst){
    //echo $src,"--",$dst;
    if(file_exists($dst)){
        if(is_dir($dst)){
            if(!file_exists($dst."/".basename($src))){
                if(rename($src,$dst."/".basename($src))){
                    $mes="    ";
                }else{
                    $mes="    ";
                }
            }else{
                $mes="       ";
            }
        }else{
            $mes="       ";
        }
    }else{
        $mes="        ";
    }
    return $mes;
}

/**
 *      
 * @param string $path
 * @return string
 */
function delFolder($path){
    $handle=opendir($path);
    while(($item=readdir($handle))!==false){
        if($item!="."&&$item!=".."){
            if(is_file($path."/".$item)){
                unlink($path."/".$item);
            }
            if(is_dir($path."/".$item)){
                $func=__FUNCTION__;
                $func($path."/".$item);
            }
        }
    }
    closedir($handle);
    rmdir($path);
    return "       ";
}