PHP文件大小格式化函数合集_php实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP文件大小格式化函数合集_php实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4598字,纯文字阅读大概需要7分钟。
内容图文
![PHP文件大小格式化函数合集_php实例](/upload/InfoBanner/zyjiaocheng/263/84c6185196e54adf9c6aff2aff9419fd.jpg)
代码如下:
//转换单位
function setupSize($fileSize) {
$size = sprintf("%u", $fileSize);
if($size == 0) {
return("0 Bytes");
}
$sizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i];
}
function byte_format($size, $dec=2){
$a = array("B", "KB", "MB", "GB", "TB", "PB");
$pos = 0;
while ($size >= 1024) {
$size /= 1024;
$pos++;
}
return round($size,$dec)." ".$a[$pos];
}
/* Use : echo format_size(filesize("fichier"));
Example result : 13,37 Ko */
function format_size($o) {
$size = array('Go' => 1073741824, 'Mo' => 1048576, 'Ko' => 1024, 'octets' => 1);
foreach ($size as $k => $v)
if ($o >= $v) {
if ($k == 'octets')
return round($o).' '.$k;
return number_format($o / $v, 2, ',', ' ').' '.$k;
}
}
/**
* 文件大小格式化
* @param integer $size 初始文件大小,单位为byte
* @return array 格式化后的文件大小和单位数组,单位为byte、KB、MB、GB、TB
*/
function file_size_format($size = 0, $dec = 2) {
$unit = array("B", "KB", "MB", "GB", "TB", "PB");
$pos = 0;
while ($size >= 1024) {
$size /= 1024;
$pos++;
}
$result['size'] = round($size, $dec);
$result['unit'] = $unit[$pos];
return $result['size'].$result['unit'];
}
echo file_size_format(123456789);
/**
* 文件大小单位格式化
* @param $bytes 文件实际大小,单位byte
* @param $prec 转换后精确度,默认精确到小数点后两位
* @return 转换后的大小+单位的字符串
*/
function fsizeformat($bytes,$prec=2){
$rank=0;
$size=$bytes;
$unit="B";
while($size>1024){
$size=$size/1024;
$rank++;
}
$size=round($size,$prec);
switch ($rank){
case "1":
$unit="KB";
break;
case "2":
$unit="MB";
break;
case "3":
$unit="GB";
break;
case "4":
$unit="TB";
break;
default :
}
return $size." ".$unit;
}
/**
* 容量格式化
* @param String 文件名(文件路径)
* @return 如果文件存在返回格式化的字符串 如果错误返回错误信息 Unknown File
*/
function sizeFormat ($fileName){
//获取文件的大小
@ $filesize=filesize($fileName);
//如果文件不存在返回错误信息
if(false==$filesize){
return 'Unknown File';
}
//格式化文件容量信息
if ($filesize >= 1073741824) $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
elseif ($filesize >= 1048576) $filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
elseif ($filesize >= 1024) $filesize = round($filesize / 1024 * 100) / 100 . ' KB';
else $filesize = $filesize . ' Bytes';
return $filesize;
}
//测试函数
echo sizeFormat('config.inc.php');
/**
* 文件大小格式化
* @param type $filesize
*/
private function sizeCount($filesize)
{
if ($filesize >= 1073741824) {
$filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
}
else if ($filesize >= 1048576) {
$filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
}
else if ($filesize >= 1024) {
$filesize = round($filesize / 1024 * 100) / 100 . ' KB';
}
return $filesize;
}
//该函数最主要的是根据文件的字节数,判断应当选择的统计单位,也就是说一个文件用某一单位比如MB,那么该文件肯定小于1GB,否则当然要用GB作为单位了,而且文件要大于KB,不然的话得用更小的单位统计。该函数代码如下
//size() 统计文件大小
function size($byte)
{
if($byte < 1024) {
$unit="B";
}
else if($byte < 10240) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if($byte < 102400) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if($byte < 1048576) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if ($byte < 10485760) {
$byte=round_dp($byte/1048576, 2);
$unit="MB";
}
else if ($byte < 104857600) {
$byte=round_dp($byte/1048576,2);
$unit="MB";
}
else if ($byte < 1073741824) {
$byte=round_dp($byte/1048576, 2);
$unit="MB";
}
else {
$byte=round_dp($byte/1073741824, 2);
$unit="GB";
}
$byte .= $unit;
return $byte;
}
//辅助函数 round_up(),该函数用来取舍小数点位数的,四舍五入。
function round_dp($num , $dp)
{
$sh = pow(10 , $dp);
return (round($num*$sh)/$sh);
}
这样我们就能很好额统计任何一个文件的大小了,首先通过系统自带的filesize()函数获得文件的字节数,再用上面的这些函数换算成适当的单位就可以了
内容总结
以上是互联网集市为您收集整理的PHP文件大小格式化函数合集_php实例全部内容,希望文章能够帮你解决PHP文件大小格式化函数合集_php实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。