PHP filesize() 函数

互联网 20-8-1
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》

以上就是PHP filesize() 函数的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: filesize
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:一文读懂php设计模式之代理模式

相关资讯