Php-files
PHP-ファイルとI/O
この章では、ファイルに関連する以下の機能について説明します-
- ファイルを開く
- ファイルを読む
- ファイルを書く
- ファイルを閉じる
ファイルの開閉
PHPの* fopen()*関数は、ファイルを開くために使用されます。 最初にファイル名を指定し、次に操作モードを指定する2つの引数が必要です。
ファイルモードは、この表の6つのオプションのいずれかとして指定できます。
Sr.No | Mode & Purpose |
---|---|
1 |
r 読み取り専用でファイルを開きます。 ファイルの先頭にファイルポインターを配置します。 |
2 |
r+ ファイルを読み取りおよび書き込み用に開きます。 ファイルの先頭にファイルポインターを配置します。 |
3 |
w 書き込み専用にファイルを開きます。 ファイルの先頭にファイルポインターを配置します。 そして、ファイルの長さをゼロに切り捨てます。 ファイルがそうでない場合 存在する場合、ファイルを作成しようとします。 |
4 |
w+ 読み取りおよび書き込み専用にファイルを開きます。 ファイルの先頭にファイルポインターを配置します。 そして、ファイルの長さをゼロに切り捨てます。 ファイルがそうでない場合 存在する場合、ファイルを作成しようとします。 |
5 |
a 書き込み専用にファイルを開きます。 ファイルの末尾にファイルポインターを配置します。 ファイルが存在しない場合、ファイルを作成しようとします。 |
6 |
a+ 読み取りおよび書き込み専用にファイルを開きます。 ファイルの末尾にファイルポインターを配置します。 ファイルが存在しない場合、ファイルを作成しようとします。 |
ファイルを開こうとして失敗すると、 fopen は false の値を返します。
開いたファイルに変更を加えた後、* fclose()関数でファイルを閉じることが重要です。 * fclose()*関数は引数としてファイルポインターを必要とし、クロージャーが成功すると *true を返し、失敗すると false を返します。
ファイルを読む
- fopen()関数を使用してファイルを開くと、 fread()*という関数で読み取ることができます。 この関数には2つの引数が必要です。 これらは、ファイルポインターとバイト単位で表されるファイルの長さでなければなりません。
ファイルの長さは、引数としてファイル名を取り、バイト単位で表されるファイルのサイズを返す* filesize()*関数を使用して見つけることができます。
PHPでファイルを読み取るために必要な手順は次のとおりです。
- * fopen()*関数を使用してファイルを開きます。
- * filesize()*関数を使用してファイルの長さを取得します。
- * fread()*関数を使用してファイルのコンテンツを読み取ります。
- * fclose()*関数でファイルを閉じます。
次の例では、テキストファイルのコンテンツを変数に割り当て、それらのコンテンツをWebページに表示します。
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>
それは次の結果を生成します-
ファイルを書く
PHPの* fwrite()*関数を使用して、新しいファイルを作成したり、既存のファイルにテキストを追加したりできます。 この関数には、*ファイルポインタ*と書き込まれるデータの文字列を指定する2つの引数が必要です。 オプションで、書き込むデータの長さを指定するために、3番目の整数引数を含めることができます。 3番目の引数が含まれている場合、指定された長さに達すると書き込みが停止します。
次の例では、新しいテキストファイルを作成し、その中に短いテキストヘッダーを書き込みます。 このファイルを閉じた後、ファイル名を引数として取る* file_exist()*関数を使用して、その存在を確認します。
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
それは次の結果を生成します-
link:/php/php_file_system_functions [PHPファイルシステム関数]の章で、ファイルの入出力に関連するすべての関数をカバーしました。