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(文件或者文件夹的服务器路径)
- 没有相关文章
- 没有评论