PHP を初めて使用する人にとって、PHP でファイル サイズを取得する機能を実装するのは難しいかもしれません。しかし、初心者でもこの記事の紹介を読めば、PHP でファイルサイズを取得するための重要な知識を簡単にマスターできると思います。
# 以下では、具体的なコード例を使用して、PHP がファイル サイズを取得する方法を詳細に分析します。
1. まず、ファイルのバイト数のみを取得する必要がある場合は、
PHP の filesize 関数を使用して直接取得できます。コードは次のとおりです。 (推奨される学習: PHP プログラミングの入門から習熟まで )
echo filesize("upload.php");
ファイル サイズのバイト数を返します。エラーが発生した場合は、FALSE を返し、 E_WARNING レベルのエラーです。
注:
PHP の整数型は符号付き整数であり、多くのプラットフォームでは 32 ビット整数が使用されるため、2GB を超えるファイルの場合、一部のファイルはシステム関数は予期しない結果を返す場合があります。
#ブラウザからアクセスすると、出力結果は次のようになります。
##上の図からわかるように、直接出力したファイル サイズは 1614 バイトで、upload.php 属性に表示されるファイル サイズも 1614 バイトです。ファイル サイズはよく知られていますが、バイト単位で表現されるほかに、KB、MB、GB、TB などの単位で表現されることもよくあります。
2. では、ファイル サイズを取得して通常のサイズ形式で表示したい場合は、どうすればよいでしょうか?
以下では、通常のサイズを取得するための非常に簡単なカプセル化方法を紹介します。
通常のサイズを取得するための 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);
コンピューターの計数では 2 の累乗で計算される 2 進数が使用されることを誰もが知っているはずです。 1KB=2の10乗=1024B; 1MB=2の20乗=1024*1024B=1024KB; GB、TB換算など。
したがって、ファイルサイズ メソッドでは、まず上記のコードで 4 つの変数 $KB、$MB、$GB、$TB を定義します。次に、if...elseif 条件文を使用してファイルのバイト サイズを徐々に決定し、PHP のラウンド関数を使用してファイル サイズ値の小数点以下 2 桁を保持します。
次に、上記のカプセル化されたファイルサイズメソッドをテストして、通常のファイルサイズを取得します。ブラウザから php にアクセスしてファイルサイズを取得します。結果は以下のようになります。
上図からわかるように、独自のカプセル化されたファイルサイズ手法により、PHP がファイル サイズを計算し、通常のファイル サイズを取得する機能をすでに実現できています。ファイル。取得したサイズがファイル自身の属性のサイズとまったく同じではないことに気付いた友人もいるかもしれませんが、実際、PHP メソッドを通じてサイズを取得するときにわずかなエラーが発生するのはごく普通のことであり、無視できます。
以上がphpでファイルサイズを取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。