ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルサイズ整形関数集_PHPチュートリアル

PHPファイルサイズ整形関数集_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:191074ブラウズ

たとえば、49957289167B という大きなファイルに遭遇した場合、そのような長い一連の数値の後ろにある単位がバイト B であることがわかりますが、このファイルのサイズが GB に換算されるのかはまだわかりません。単位としては 46.53GB です。この作業は、次の関数を使用して実行できます:

コードをコピーします コードは次のとおりです:

//转换单位
function setupSize($fileSize) {
    $size = sprintf("%u", $fileSize);
    if($size == 0) {
         return("0 Bytes");
    }
    $sizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
    return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i];
}
function byte_format($size, $dec=2){
    $a = array("B", "KB", "MB", "GB", "TB", "PB");
    $pos = 0;
    while ($size >= 1024) {
         $size /= 1024;
           $pos++;
    }
    return round($size,$dec)." ".$a[$pos];
 }
/* Use : echo format_size(filesize("fichier"));
Example result : 13,37 Ko */

function format_size($o) {
    $size = array('Go' => 1073741824, 'Mo' => 1048576, 'Ko' => 1024, 'octets' => 1);
    foreach ($size as $k => $v)
        if ($o >= $v) {
                if ($k == 'octets')
                        return round($o).' '.$k;
                return number_format($o / $v, 2, ',', ' ').' '.$k;
        }
}
/**
 * 文件大小格式化
 * @param integer $size 初始文件大小,单位为byte
 * @return array 格式化后的文件大小和单位数组,单位为byte、KB、MB、GB、TB
 */
function file_size_format($size = 0, $dec = 2) {
    $unit = array("B", "KB", "MB", "GB", "TB", "PB");
    $pos = 0;
    while ($size >= 1024) {
        $size /= 1024;
        $pos++;
    }
    $result['size'] = round($size, $dec);
    $result['unit'] = $unit[$pos];
    return $result['size'].$result['unit'];
}
echo file_size_format(123456789);

/**
 * 文件大小单位格式化
 * @param $bytes 文件实际大小,单位byte
 * @param $prec 转换后精确度,默认精确到小数点后两位
 * @return 转换后的大小+单位的字符串
 */
 function fsizeformat($bytes,$prec=2){
    $rank=0;
    $size=$bytes;
    $unit="B";
    while($size>1024){
        $size=$size/1024;
        $rank++;
    }
    $size=round($size,$prec);
    switch ($rank){
        case "1":
            $unit="KB";
            break;
        case "2":
            $unit="MB";
            break;
        case "3":
            $unit="GB";
            break;
        case "4":
            $unit="TB";
            break;
        default :

    }
    return $size." ".$unit;
 }

/**
* 容量のフォーマット
* @param String ファイル名 (ファイルパス)
* @return ファイルが存在する場合はフォーマットされた文字列を返します エラーが発生した場合はエラーメッセージを返します 不明なファイル
*/
function sizeFormat ($fileName){
//ファイルのサイズを取得する
@ $filesize=filesize($fileName);
//ファイルが存在しない場合はエラーメッセージを返す
if(false = = $ filesize){
,,,,,,,,,,,; . ' MB';
elseif ($filesize >= 1024) $filesize =round($filesize / 100) / 100 . ' else $filesize = $filesize '; ;
}
//テスト関数
echo sizeFormat('config.inc.php');
/**
* ファイルサイズのフォーマット
* @param type $filesize
*/
プライベート関数 sizeCount($filesize)
{

if ($filesize >= 1073741824) {

$filesize =round($filesize / 1073741824 * 100) / ' GB'; ️ {
$filesize =round($filesize / 1024 * 100) / ' KB' 。 ; }

$filesize を返します;
}


//この関数で最も重要なことは、ファイルのバイト数に基づいて選択する統計単位を決定することです。つまり、ファイルが MB などの特定の単位を使用している場合、そのファイルは1GB 未満である必要があります。それ以外の場合は、もちろん GB を単位として使用する必要があり、ファイルは KB より大きくなければなりません。それ以外の場合は、統計に小さい単位を使用する必要があります。関数コードは以下の通りです

//size() 統計ファイルサイズ
function size($byte)
{
if($byte < 1024) {
$unit="B";
}
else if($byte < 10240) {
$byte=round_dp($byte/1024, 2);

$unit="KB";

}
else if($byte $byte=round_dp($byte/1024, 2);

$ unit="KB";
}

else if($byte < 1048576) {

$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if ($byte < ; 10485760){$ byte = round_dp($ byte/1048576、2); byte/1073741824, 2);
$unit="GB"; }
$byte .= $unit; この関数は、小数点以下の桁数を選択して四捨五入するために使用されます。
関数round_dp($num, $dp)
{
$sh = pow(10, $dp);
return (round($num*$sh)/$sh);
}


このようにして、任意のファイルのサイズを簡単にカウントできます。まず、システムに付属の filesize() 関数を使用してファイルのバイト数を取得し、それを上記の関数を使用してバイト数に変換します。適切なユニット




http://www.bkjia.com/PHPjc/739778.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/739778.html

技術記事

たとえば、49957289167B という大きなファイルに遭遇した場合、そのような長い一連の数値の後ろにある単位がバイト B であることがわかりますが、このファイルのサイズがどれくらいであるかはまだわかりません。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。