PHP经典代码[原创]

 

xml转数据函数:

 

function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = LIBXML_NOCDATA, $ns = '', $is_prefix = false) {
    libxml_disable_entity_loader(true);
    if (preg_match('/(\<\!DOCTYPE|\<\!ENTITY)/i', $string)) {
        return false;
    }
    return simplexml_load_string($string, $class_name, $options, $ns, $is_prefix);
}
 
function xml2array($xml) {
    if (empty($xml)) {
        return NULL;
    }
    $result = array();
    $xmlobj = isimplexml_load_string($xml, 'SimpleXMLElement');
    if($xmlobj instanceof SimpleXMLElement) {
        $result = json_decode(json_encode($xmlobj), true);
        if (is_array($result)) {
            return $result;
        }
    }
    return NULL;
}

 

 


 

//删除目录下所有文件
$directory = FANWE_ROOT.'./public/data/admin/runtime';
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){        
        unlink($file);
}




//文件或者文件夹size
function dirsize($directory) {
    $size = 0;
    foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){
        $size+=$file->getSize();
    }
    return $size;
}
function size_format($size){
    $bitunit=array(' B',' KB',' MB',' GB');
    for($key=0;$key<count($bitunit);$key++){
        if($size>=pow(2,10*$key)-1){ //1023B 会显示为 1KB
            $num_bitunit_str=(ceil($size/pow(2,10*$key)*100)/100)." $bitunit[$key]";
        }
    }
    return $num_bitunit_str;
}
function GetSize($fileordir){
    if(empty($fileordir)) return false;
    if(is_dir($fileordir)){
        return size_format(dirsize($fileordir));
    }
    return size_format(filesize($fileordir));
}

目前在用,比传统的获取目录然后再遍历每个文件大小快上好几倍,而且size_format也算是经典。

调用方法:GetSize(文件或者文件夹的服务器路径)

300*300
  • 没有相关文章
  • 没有评论
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00596 秒