php file size,PHP filesize() 函数

filesize

作用:函数返回指定文件的大小

语法:filesize(filename)

参数:

filename:必需。规定要检查的文件。

返回值:

返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

filesize 示例

示例一<?php

// 输出类似:somefile.txt: 1024 bytes

$filename = 'somefile.txt';

echo $filename . ': ' . filesize($filename) . ' bytes';

?>

示例二<?php

function human_filesize($bytes, $decimals = 2) {

$sz = 'BKMGTP';

$factor = floor((strlen($bytes) - 1) / 3);

return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];

}

?>

示例三<?php

/**

* Converts bytes into human readable file size.

*

* @param string $bytes

* @return string human readable file size (2,87 Мб)

* @author Mogilev Arseny

*/

function FileSizeConvert($bytes)

{

$bytes = floatval($bytes);

$arBytes = array(

0 => array(

"UNIT" => "TB",

"VALUE" => pow(1024, 4)

),

1 => array(

"UNIT" => "GB",

"VALUE" => pow(1024, 3)

),

2 => array(

"UNIT" => "MB",

"VALUE" => pow(1024, 2)

),

3 => array(

"UNIT" => "KB",

"VALUE" => 1024

),

4 => array(

"UNIT" => "B",

"VALUE" => 1

),

);

foreach($arBytes as $arItem)

{

if($bytes >= $arItem["VALUE"])

{

$result = $bytes / $arItem["VALUE"];

$result = str_replace(".", "," , strval(round($result, 2)))." ".$arItem["UNIT"];

break;

}

}

return $result;

}

?>

示例四<?php

/**

* Return file size (even for file > 2 Gb)

* For file size over PHP_INT_MAX (2 147 483 647), PHP filesize function loops from -PHP_INT_MAX to PHP_INT_MAX.

*

* @param string $path Path of the file

* @return mixed File size or false if error

*/

function realFileSize($path)

{

if (!file_exists($path))

return false;

$size = filesize($path);

if (!($file = fopen($path, 'rb')))

return false;

if ($size >= 0)

{//Check if it really is a small file (< 2 GB)

if (fseek($file, 0, SEEK_END) === 0)

{//It really is a small file

fclose($file);

return $size;

}

}

//Quickly jump the first 2 GB with fseek. After that fseek is not working on 32 bit php (it uses int internally)

$size = PHP_INT_MAX - 1;

if (fseek($file, PHP_INT_MAX - 1) !== 0)

{

fclose($file);

return false;

}

$length = 1024 * 1024;

while (!feof($file))

{//Read the file until end

$read = fread($file, $length);

$size = bcadd($size, $length);

}

$size = bcsub($size, $length);

$size = bcadd($size, strlen($read));

fclose($file);

return $size;

}

推荐教程:《PHP》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值