PHP File() の処理と関数
⚡ スマートサマリー
PHPのファイル処理では、サーバー上でファイルを作成、読み取り、書き込み、コピー、削除するための豊富な組み込み関数が利用できます。このチュートリアルでは、file_exists、fopenとそのモード、fwrite、fclose、fgets、copy、unlink、file_get_contentsについて、実践的な例を交えながら解説します。
ファイルとは
ファイルは、コンピュータ上に情報を保存するための単なるリソースです。
ファイルは通常、次のような情報を保存するために使用されます。
- プログラムの構成設定
- 電話番号と連絡先名などの単純なデータ。
- 画像、写真、その他類似のメディア。
PHP ファイル形式のサポート
PHP ファイル関数は、次のような幅広いファイル形式をサポートしています。
- ファイル.txt
- ファイル.ログ
- ファイル.custom_extension、例: file.xyz
- ファイル.csv
- ファイル.gif、ファイル.jpg、および類似の画像フォーマット
ファイルは様々な状況で役立ちます。
- これらは、DBMSシステムを管理するために別のソフトウェアやスキルを必要とするデータベースと比較して、単純なデータに対して永続的かつ費用対効果の高いデータストレージソリューションを提供する。
- サーバーログなどの単純なデータを保存し、後で取得して分析したい場合。
- プログラム設定(例:program.ini)を保存したい
PHPファイル関数
PHPは、豊富な組み込み関数群を通じて、ファイルを操作するための便利な方法を提供します。
Operaなどのティンシステム Windows (NAIST) と macOS 大文字と小文字は区別されませんが、 Linux or Unixの オペレーティング システムでは大文字と小文字が区別されます。
ファイル名に小文字のみを使用するなどの命名規則を採用することは、プラットフォーム間の互換性を最大限に確保するための良い方法です。
それでは、最もよく使われるPHPのファイル関数をいくつか見ていきましょう。
PHP file_exists()関数
この関数は、ファイルが存在するかどうかを判断するために使用されます。
- ファイルを処理する前に、そのファイルが存在するかどうかを知りたい場合に便利です。
- 新しいファイルを作成するときに、そのファイルがサーバー上に存在しないようにする場合にも、この関数を使用できます。
file_exists関数の構文は以下のとおりです。
<?php file_exists($filename); ?>
ここに、
- 「file_exists()」は、ファイルが存在する場合は true、存在しない場合は false を返す PHP 関数です。
- 「$filename」は、チェック対象ファイルのパスとファイル名です。
以下のコードは、file_exists関数を使用して、my_settings.txtファイルが存在するかどうかを判定します。
<?php if (file_exists('my_settings.txt')) { echo 'file found!'; } else { echo 'my_settings.txt does not exist'; } ?>
上記のコードを file_function.php という名前のファイルに保存します。htdocs の phptuts フォルダにファイルを保存したと仮定して、 URL http://localhost/phptuts/file_function.php ブラウザで以下のコマンドを実行してください。すると、次の結果が表示されます。
PHP fopen()関数
fopen関数はファイルを開くために使用されます。構文は以下のとおりです。
<?php fopen($file_name,$mode,$use_include_path,$context); ?>
ここに、
- 「fopen」はPHPのファイルを開く関数です
- 「$file_name」は開くファイルの名前です。
- 「$mode」は、ファイルを開くモードを指定します。以下の表に各モードを示します。
| モード | 詳細説明 |
|---|---|
| r | • ファイルを最初から読み取ります。 ・ファイルが存在しない場合はfalseを返します。 • 読み取り専用 |
| r+ | • ファイルを最初から読み取る ・ファイルが存在しない場合はfalseを返します。 • 読み書き |
| w | • 最初にファイルに書き込む ・ファイルの長さをゼロに切り詰める ・ファイルが存在しない場合は、作成を試みます。 • 書き込みのみ |
| w+ | • ファイルの先頭に書き込み、ファイルの長さをゼロに切り詰めます。 ・ファイルが存在しない場合は、作成を試みます。 • 読み書き |
| a | • ファイルの最後に追加 ・ファイルが存在しない場合は、作成を試みます。 • 書き込みのみ |
| a+ | • ファイルの最後に追加 ・ファイルが存在しない場合は、作成を試みる • 読み書き |
- 「$use_include_path」はオプションで、デフォルトはfalseです。trueに設定すると、関数はインクルードパスも検索します。
- 「$context」はオプションであり、コンテキストのサポートを指定するために使用できます。
PHP fwrite()関数
fwrite関数はファイルへの書き込みに使用されます。
構文は次のようになります。
<?php fwrite($handle, $string, $length); ?>
ここに、
- 「fwrite」はファイルに書き込むためのPHP関数です
- 「$handle」はファイルポインタリソースです
- 「$string」はファイルに書き込むデータです。
- 「$length」は省略可能で、ファイルの最大長を指定するために使用できます。
PHP fclose()関数
PHPでは、fclose()関数は既に開いているファイルを閉じるために使用されます。
構文は次のようになります。
<?php fclose($handle); ?>
ここに、
- 「fclose」は PHP関数 開いているファイルを閉じるため
- 「$handle」はファイルポインタリソースです。
それでは、my_settings.txt を作成する例を見てみましょう。fopen、fwrite、fclose 関数を使用します。
「create_my_settings_file.php」以下のコードは上記の例を実装しています。
| ファイルをオープンする |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); ?> |
| ファイルを閉じる |
<?php fclose($fh); ?> |
| ファイルを作成 |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); $text = <<<_END localhost;root;pwd1234;my_database _END; fwrite($fh, $text) or die("Could not write to file"); fclose($fh); echo "File 1 written successfully"; ?> |
コードのテスト
Video Cloud Studioで URL http://localhost/phptuts/create_my_settings.php あなたのブラウザに表示されます。
次のページが表示されます。
注: ディスクがいっぱいであるか、ファイルを書き込む権限がない場合は、エラー メッセージが表示されます。
元に戻す URL http://localhost/phptuts/file_function.phpどのような結果が得られますか?
PHP fgets()関数
fgets関数は、PHPファイルを1行ずつ読み込むために使用されます。基本的な構文は以下のとおりです。
<?php fgets($handle); ?>
ここに、
- 「fgets」は、ファイルの行を読み込むためのPHP関数です。
- 「$handle」はファイルポインタリソースです。
それでは、fopen関数とfgets関数を使ってmy_settings.txtファイルを読み込む例を見てみましょう。
read_my_settings.php の下のコードは、上記の例を実装しています。
<?php $fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it"); $line = fgets($fh); echo $line; fclose($fh); ?>
ここに、
- 「fopen」関数は、ファイルパスで指定されたファイルへのポインタを返します。
- エラーが発生した場合、「die()」関数が呼び出されます。この関数はメッセージを表示し、スクリプトの実行を終了します。
PHP copy()関数
PHPのcopy関数は、ファイルをコピーするために使用されます。基本的な構文は以下のとおりです。
<?php copy($file,$copied_file); ?>
ここに、
- 「$file」にはコピーするファイルのパスとファイル名を指定します。
- 「$copied_file」は、コピーされたファイルのパスと名前を指定します。
以下のコードは実装を示しています。
<?php copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file"); echo "File successfully copied to 2"; ?>
ファイルの削除
unlink関数はファイルを削除するために使用されます。以下のコードはその実装例を示しています。
<?php if (!unlink('my_settings_backup.txt')) { echo "Could not delete file"; } else { echo "File 1 successfully deleted"; } ?>
PHP file_get_contents()関数
file_get_contents 関数は、ファイルの内容全体を読み取るために使用されます。
file_get_contentsとfgetsの違いは、file_get_contentsがファイルデータを文字列として返すのに対し、fgetsはファイルを1行ずつ読み込む点です。
以下のコードは実装を示しています。
<?php echo "<pre>"; // Enables display of line feeds echo file_get_contents("my_settings.txt"); echo "</pre>"; // Terminates pre tag ?>
PHPファイル関数クイックリファレンス
以下の表は、このチュートリアルで取り上げるファイル機能をまとめたものです。
| 演算 | 詳細説明 |
|---|---|
| ファイルが存在しています | ファイルが存在するかどうかを判断するために使用されます |
| フォペン | ファイルを開くために使用されます。 開いたファイルへのポインタを返します |
| 書き込み | ファイルへの書き込みに使用されます |
| 閉じる | 開いているファイルを閉じるために使用します |
| fgets | ファイルを XNUMX 行ずつ読み取るために使用されます |
| copy | 既存のファイルをコピーするために使用されます |
| リンク解除 | 既存のファイルを削除するために使用されます |
| file_get_contents | ファイルの内容を文字列として返すために使用されます |



