作者:时间证明一2602891163 | 来源:互联网 | 2020-09-28 17:18
filesize作用:函数返回指定文件的大小
语法:
filesize(filename)
参数:
filename:必需。规定要检查的文件。
返回值:
返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。
filesize 示例
示例一
示例二
示例三
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;
}
?>
示例四
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() 函数的详细内容,更多请关注 第一PHP社区 其它相关文章!