php获取文件大小

对于初入门的php新手来说,php获取文件大小这个功能实现,或许有一定的难度。但是相信新手小白们在看过本篇文章介绍后,一定能轻松掌握php获取文件大小的重要知识!

php获取文件大小

下面我们通过具体的代码示例,为大家详细的分析介绍PHP获取文件大小的方法。

一、首先如果你只需要获取文件的字节数

你可以直接通过PHP filesize函数来获取,代码如下:(推荐学习:PHP编程从入门到精通)

立即学习“PHP免费学习笔记(深入)”;

echo filesize("upload.php");

登录后复制

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

Note: 

因为 PHP 的整数类型是有符号整型而且很多平台使用 32 位整型,对 2GB 以上的文件,一些文件系统函数可能返回无法预期的结果 。

通过浏览器访问,输出结果如下图:

php-169.png

php-170.png

从上图中可以看到,我们直接输出获取的文件大小是1614字节,而在upload.php属性中查看到其文件大小也就是1614字节。我们都知道文件大小,除了用字节数表示更常见的是用KB、MB、GB、TB这些单位表示。

二、那么如果我们想要获取文件大小并且是正常大小的格式显示,该如何操作呢?

下面我们介绍一个非常简单的封装获取正常大小的方法。

PHP封装获取正常大小方法的具体代码示例如下:

<?php $size = filesize("upload.php");function trans_byte($byte){    $KB = 1024;    $MB = 1024 * $KB;    $GB = 1024 * $MB;    $TB = 1024 * $GB;    if ($byte < $KB) {        return $byte . "B";    } elseif ($byte < $MB) {        return round($byte / $KB, 2) . "KB";    } elseif ($byte < $GB) {        return round($byte / $MB, 2) . "MB";    } elseif ($byte < $TB) {        return round($byte / $GB, 2) . "GB";    } else {        return round($byte / $TB, 2) . "TB";    }}echo trans_byte($size);

登录后复制

在此段代码中,我们先定义了一个$size变量来获取upload.php文件的字节大小,然后创建一个名为filesize的方法,这个方法就是用来将字节大小转换为正常大小格式。

大家应该都知道计算机计数使用的都是二进制,它是以2的次方数来计算的。1KB=2的10次方=1024B;1MB=2的20次方=1024*1024B=1024KB;GB、TB转换以此类推。

所以我们在filesize这个方法中,首先定义了上述代码中的$KB 、$MB 、$GB 、$TB四个变量。然后用if…elseif条件语句对文件字节大小进行逐步判断,并且用PHP round函数对文件大小值进行保留两位小数的操作。

那么我们对上述封装获取文件正常大小的filesize方法进行测试,通过浏览器访问php获取文件大小结果如下图

php-171.png

php-172.png

从上图可以发现,通过我们自己封装的filesize方法已经可以实现php计算文件大小并且成功地获取到文件正常大小的功能。可能有些朋友发现了获取的大小跟文件本身属性的大小不是完全一样的,其实通过PHP方法获取大小时存在一点误差是非常正常的,可以忽略不计。

以上就是php获取文件大小的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2153258.html

(0)
上一篇 2025年2月25日 06:01:07
下一篇 2025年2月25日 06:01:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php如何获取用户的ip地址

    ip地址: internet协议地址(ip地址)是分配给连接到使用internet协议进行通信的计算机网络的每个设备的数字标签。ip地址有两个主要功能:主机或网络接口标识和位置寻址。 $_SERVER[‘REMOTE_ADDR&…

    2025年2月25日
    000
  • php如何获取当前时间

    date/time 函数允许您从 php 脚本运行的服务器上获取日期和时间。您可以使用 date/time 函数通过不同的方式来格式化日期和时间。 注:这些函数依赖于服务器的本地设置。使用这些函数时请记住要考虑夏令时和闰年。 PHP Dat…

    2025年2月25日
    200
  • PHP如何获取表单提交的数据

    php如何获取表单提交的数据 1、超全局数组变量:$_GET[] 描述:获取表单 method = “get” 提交的数据 举例:$username = $_GET[“username”]; 立即学习“PHP免费学习笔记(深入)”; 2、超…

    2025年2月25日
    200
  • PHP如何和JAVA相融入

    jphp是一个基于javavm的php编译器。 类似 javac ,可将 php 源码编译成 jvm 的字节码并在 jvm 中执行。 支持 PHP (5.6+)的诸多特性,JDK 1.6+, 支持Android平台。  作者表示JPHP并不…

    2025年2月25日
    200
  • php三目运算符怎么用

    1、三目运算符格式:(expr1) ? (expr2) : (expr3) 2、逻辑运算 注:加减运算记得加括号,不然系统有些时候不能认出。 例子: 立即学习“PHP免费学习笔记(深入)”; <?php /** * Created b…

    2025年2月25日
    200
  • php什么情况内存泄露

    情况一、程序操作数据过大 情景还原:一次性读取超过php可用内存上限的数据导致内存耗尽 <?php ini_set('memory_limit', '128M');$string = str_p…

    2025年2月25日
    200
  • php生成txt乱码

    前言 相信很多人在使用PHP的过程中都遇到过生成文件乱码的情况,不论是使用fwrite还是file_put_contents写入。可能你会先尝试从编码入手尝试解决,但最终的结果往往是不理想的,尽管我们都将其转换为了UTF-8编码了&#823…

    2025年2月25日
    200
  • php生成不重复字符串

    php生成不重复字符串 使用时间戳作为原始字符串,再随机生成五个字符随机插入任意位置,生成新的字符串,保证不重复。 代码如下: function rand($len)    {        $chars=’ABCDEFGHIJKLMNOP…

    2025年2月25日
    200
  • php生成二维码显示乱码

    乱码场景 解决方案 执行生成二维码的那句代码后die或exit一下就可以了: public function index()    {    Vendor(‘phpqrcode.phpqrcode’);    $url=”https://w…

    2025年2月25日
    200
  • php事务什么时候用

    在某些程序在执行的时候需要进行多个动作,而我们的业务要求是某个动作在执行错误的时候该进程所有的动作都不再执行,全部执行成功才算成功,否则就回到执行之前的状态,这就需要用到事务的处理。 原生: <?php $link = mysqli_…

    2025年2月25日
    200

发表回复

登录后才能评论