ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルシステム関数を使用してディスクパーティションのサイズを取得する方法

PHPファイルシステム関数を使用してディスクパーティションのサイズを取得する方法

黄舟
黄舟オリジナル
2017-05-20 16:56:283095ブラウズ

PHPファイルシステム関数を使用してディスクパーティションのサイズを取得する方法

ファイルシステム関数を使用すると、ディレクトリとファイルを操作できるだけでなく、ディレクトリとファイルに関する関連情報も取得できます。ディスクパーティションのサイズはわかりますか?

disk_total_sapce()関数はディスクパーティションのサイズを取得するために使用され、disk_free_space()関数はディスクパーティションの残りのスペースを取得するために使用されます。

disk_total_space() 関数: ディレクトリのディスク サイズを取得します。構文形式は次のとおりです。

float disk_total_space(string directory)

この関数は、パラメーター directory によって提供されるディレクトリ文字列に基づいて、対応するファイル システムまたはディスク内のバイト数を返します。

注:

この関数はリモート ファイルでは使用できず、検出されたファイルにはサーバーのファイル システムを通じてアクセスする必要があります。

disk_free_space() 関数: ディレクトリの空き容量を取得します。構文形式は次のとおりです:

float disk_free_space(string directory)

パラメーター ディレクトリは、ファイル システムまたはディスクの区別を指定するために使用されます。

説明:

この関数は、ディレクトリが配置されているディスクパーティションの合計サイズを返すため、同じディスクパーティションの異なるディレクトリをパラメータとして指定しても、結果はまったく同じになります。 !

アプリケーション例

この例では、disk_total_space() 関数を使用してディスク パーティションのサイズを取得します。具体的なコードは以下の通りです:

(1) phpファイルを作成し、フォームを追加し、テキストボックスと送信ボタンを設定し、POSTメソッドを使用して、このページに送信します。

(2) $_POSTを通じてフォーム送信用のディレクトリパスを取得し、まず取得したディレクトリが妥当かどうかを判断します。次に、取得した文字列が iconv() 関数によってエンコードおよび変換され、取得された文字列がインターセプトされます。ディレクトリが配置されている参照先パーティションを取得し、disk_total_space() 関数を使用してディスク パーティションのサイズを取得します。最後に、opendir() 関数と readdir() 関数を使用して、送信されたディレクトリの内容を読み取ります。コードは次のとおりです:

<form name="form1" action="6.php" method="post">
   文件名称: <input name="file_name" type="text">
           <input type="submit" name="Submit" value="提交">
</form>
<?php
header("Content-Type:text/html; charset=utf-8");
if ($_POST[&#39;file_name&#39;]){
if($_POST[&#39;file_name&#39;]!="" && is_file($_POST[&#39;file_name&#39;])==false){
    $file_name = iconv("utf-8","gb2312",$_POST[&#39;file_name&#39;]);      // 编码格式转换
    if (file_exists($file_name)){                                  //判断目录是否存在
        $len = strripos($file_name,":");                            //截取字符串
        $dir = substr($file_name,0,$len+1);                        //获取提交目录所在磁盘
        $filesize_z = disk_total_space($dir);                       //获取目录大小
        $filesize_z = number_format($filesize_z/(1024*1024*1024),2,".","");    //数字的格式化
        $filesize_s = disk_free_space($dir);                            //获取裁判剩余空间
        $filesize_s =  number_format($filesize_s/(1024*1024*1024),2,".",""); //字节的格式化
        echo "本地磁盘(".$dir.") 总大小:".$filesize_z." GB   可用空间:".$filesize_s."GB <br><br>";
        echo $_POST[&#39;file_name&#39;]."目录下的内容:"."<br>";
        $i = 0;
        $list = opendir($file_name);                                //打开目录
        while($read_list = readdir($list)){                         //读取目录
            $i++;
            echo "$i:".iconv("gb2312","utf-8",$read_list)."<br>";   //输出目录中的内容
        }
        closedir($list);                                            //关于目录
    }else{
        echo "<script>alert(&#39;目录不存在!&#39;);</script>";
    }
}else{
    echo "<script>alert(&#39;请输入正确的目录路径!&#39;);</script>";
}
}

上記の出力結果は次のとおりです:

PHPファイルシステム関数を使用してディスクパーティションのサイズを取得する方法

説明:

strripos() 関数は、別の文字列内の指定された文字列の最後の位置を決定するために使用されます。この関数を使用すると、指定された文字列 A の別の文字列 B の最後の位置を取得できます。戻り値は int 型であり、その戻り値に基づいて、文字列 A を分割点として文字列 B を切り取ることができます。インターセプト操作を実行する場合は、この関数を適用する必要があります。

りー

以上がPHPファイルシステム関数を使用してディスクパーティションのサイズを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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