PHPファイルシステム

WBOY
リリース: 2016-06-23 13:30:15
オリジナル
993 人が閲覧しました

ファイルの内容を読み取る

PHP には豊富なファイル操作関数があります。ファイルを読み取る最も簡単な関数は、ファイル全体を文字列に読み取ることができる file_get_contents です。

$content = file_get_contents('./test.txt');
ログイン後にコピー

file_get_contents は、パラメーターを使用して、読み込むコンテンツの開始点と長さを制御することもできます。

$content = file_get_contents('./test.txt', null, null, 100, 500);
ログイン後にコピー

PHP には、fopen、fgets、fread などのメソッドを使用してファイルを操作するための C 言語に似たメソッドも用意されています。fgets はファイル ポインターから 1 行を読み取り、freads は指定された長さの文字列を読み取ることができます。

$fp = fopen('./text.txt', 'rb');while(!feof($fp)) {    echo fgets($fp); //读取一行}fclose($fp);
ログイン後にコピー

$fp = fopen('./text.txt', 'rb');$contents = '';while(!feof($fp)) {    $contents .= fread($fp, 4096); //一次读取4096个字符}fclose($fp);
ログイン後にコピー

fopen で開かれたファイルの場合、ファイル ハンドルが占有されるのを避けるために、fclose を使用してファイル ポインタを閉じるのが最善です。

ファイルが存在するかどうかを確認する

一般に、ファイルを操作するときは、まずファイルが存在するかどうかを確認する必要があります。ファイルの存在を確認するために PHP で一般的に使用される関数は、is_file と file_exists の 2 つです。

$filename = './test.txt';if (file_exists($filename)) {    echo file_get_contents($filename);}
ログイン後にコピー

ファイルの存在を判断するには、file_exists を使用するだけです。File_exists は、ファイルが存在するかどうかを判断するだけでなく、ディレクトリが存在するかどうかも判断します。パスはファイルです。

$filename = './test.txt';if (is_file($filename)) {    echo file_get_contents($filename);}
ログイン後にコピー

より正確には、is_readable と is_writeable を使用して、ファイルが存在するかどうかに基づいて、ファイルが読み取り可能および書き込み可能かどうかを判断できます。

$filename = './test.txt';if (is_writeable($filename)) {    file_put_contents($filename, 'test');}if (is_readable($filename)) {    echo file_get_contents($filename);}
ログイン後にコピー

コンテンツをファイルに書き込む

ファイルの読み取りに対応して、PHP にもファイルを書き込む 2 つの方法があります。最も簡単な方法は、file_put_contents を使用することです。

うわー

上の例では、$data パラメーターは 1 次元配列にすることができ、$data が配列の場合、配列は自動的に接続されます。これは $data=implode('', $data); と同等です。

同じ はい、PHP は、ファイルの書き込みに fwrite を使用する、C 言語スタイルと同様の操作もサポートしています。

$filename = './test.txt';$data = 'test';file_put_contents($filename, $data);
ログイン後にコピー

ファイルの変更時刻を取得します

ファイルには、ファイル所有者、作成時刻、変更時刻、最終アクセス時刻などを含む多くのメタ属性があります。

$fp = fopen('./test.txt', 'w');fwrite($fp, 'hello');fwrite($fp, 'world');fclose($fp);
ログイン後にコピー

最も一般的に使用されるのはファイルの変更時間であり、ファイルの変更時間を通じて、ファイルの適時性を判断することができ、静的ファイルやキャッシュされたデータを更新するためによく使用されます。

fileowner:获得文件的所有者filectime:获取文件的创建时间filemtime:获取文件的修改时间fileatime:获取文件的访问时间
ログイン後にコピー

ファイルのサイズを取得する

filesize 関数を使用してファイルのサイズを取得できます。ファイル サイズはバイト単位で表されます。

$mtime = filemtime($filename);echo '修改时间:'.date('Y-m-d H:i:s', filemtime($filename));
ログイン後にコピー

ファイルサイズの単位を変換したい場合は、それを実現する独自の関数を定義できます。

$filename = '/data/webroot/usercode/code/resource/test.txt';$size = filesize($filename);
ログイン後にコピー

単純な関数でディレクトリのサイズを取得する方法がないことに注意してください。ディレクトリのサイズは、ディレクトリ内のすべてのサブディレクトリとファイルのサイズの合計であるため、ディレクトリのサイズは再帰的方法を使用してループで計算する必要があります。

ファイルの削除

Unix システム コマンドと同様に、PHP は unlink 関数を使用してファイルを削除します。

function getsize($size, $format = 'kb') {    $p = 0;    if ($format == 'kb') {        $p = 1;    } elseif ($format == 'mb') {        $p = 2;    } elseif ($format == 'gb') {        $p = 3;    }    $size /= pow(1024, $p);    return number_format($size, 3);}$filename = '/data/webroot/usercode/code/resource/test.txt';$size = filesize($filename);$size = getsize($size, 'kb'); //进行单位转换echo $size.'kb';
ログイン後にコピー

フォルダーを削除するには rmdir 関数を使用します。フォルダーが空でない場合、または権限がない場合は、失敗するように求められます。

unlink($filename);
ログイン後にコピー

フォルダー内にファイルがある場合は、最初にディレクトリ内のすべてのファイルを削除してから、ディレクトリを削除することができます。循環削除の場合は、glob 関数を使用してすべてのファイルをスキャンできます。

rmdir($dir);
ログイン後にコピー

著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート