PHPファイルの扱い

fopen() 関数は、PHP でファイルを開くために使用されます。

ファイルを開く

PHP には、ファイルを作成して開くために fopen() 関数が使用されます。 fopen() 関数を使用してファイルを開くときに、ファイルが存在しない場合は、ファイルの作成が試行され、リソースが返されます。 オープンに失敗した場合、関数は FALSE を返します。

構文

resource fopen (string $filename, string mode)

この関数の最初のパラメータには、開かれるファイルの名前が含まれており、2 番目のパラメータは、ファイルを開くために使用するモードを指定します。

<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>

ファイルは次のモードで開くことができます:

モード説明

r 読み取り専用。ファイルの先頭から開始します。

r+ 読み取り/書き込み。ファイルの先頭から開始します。 書き込みのみ。ファイルを開いて内容をクリアし、ファイルが存在しない場合は新しいファイルを作成します。

w+ 読み取り/書き込み。ファイルを開いて内容をクリアし、ファイルが存在しない場合は新しいファイルを作成します。

追加です。ファイルを開いて末尾に書き込みます。ファイルが存在しない場合は新しいファイルを作成します。

a+ 読み取り/追加。ファイルの最後に書き込むことで、ファイルの内容を維持します。

x だけ書く。新しいファイルを作成します。ファイルが既に存在する場合は、FALSE とエラーが返されます。

x+ 読み取り/書き込み。新しいファイルを作成します。ファイルが既に存在する場合は、FALSE とエラーが返されます。

注: fopen() 関数は、指定されたファイルを開けない場合、0 (false) を返します。

fopen() 関数が指定されたファイルを開けない場合、次の例はメッセージを生成します:

<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
// 不能打开指定文件的错误信息: Unable to open file 
?>
</body>
</html>

ファイルを閉じます

fclose() 関数は、開いているファイルを閉じるために使用されます:

<?php
$file = fopen("test.txt","r");
//执行一些代码
fclose($file);
?>

検出ファイルの終わり (EOF)

feof() 関数は、ファイルの終わり (EOF) に達したかどうかを検出します。

feof() 関数は、長さが不明なデータをループする場合に便利です。

注: w 、 a 、および x モードでは、開いているファイルを読み取ることはできません。

if (feof($file)) echo "End of file";

ファイルを一行ずつ読み込みます

fgets()関数は、ファイルから一行ずつファイルを読み込みます。

注: この関数を呼び出した後、ファイル ポインターは次の行に移動します。

構文

string fgets( int handle [, int length] )

fgets() は、handle が指すファイルから行を読み取り、最大 length-1 バイトの長さの文字列を返します。 改行文字 (戻り値に含まれる)、EOF、または長さ 1 バイトの読み取り後に停止します。 長さが指定されていない場合、デフォルトは 1K、つまり 1024 バイトになります。

次の例は、ファイルの終わりまでファイルを 1 行ずつ読み取ります:

<?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))
{
 echo fgets($file). "<br>";
}
fclose($file);
?>

ファイルを 1 文字ずつ読み取ります

fgetc() 関数は、ファイルから 1 文字ずつファイルを読み取るために使用されます。 。

注: この関数を呼び出した後、ファイル ポインターは次の文字に移動します。

次の例では、ファイルの終わりまでファイルを 1 文字ずつ読み取ります:

<?php
$file=fopen("welcome.txt","r") or exit("无法打开文件!");
while (!feof($file))
{
  echo fgetc($file);
}
fclose($file);
?>

ファイル全体を読み取ります

fread() 関数を使用してファイルを読み取ります (バイナリで安全に使用できます)ファイル)。

構文:

string fread( int handle, int length )

fread() は、ファイル ポインター ハンドルから最大 length バイトを読み取ります。ファイルの読み取りは、次のいずれかの条件が発生すると停止します。

最大 length バイトが読み取られたとき

ファイルの終わり (EOF) に到達したとき

(ネットワーク ストリームの場合) パケットが利用可能なとき

または (ユーザー空間ストリームを開いた後) 8192 バイトが読み取られました

ファイルから 10 バイト (スペースを含む) を読み取ります:

<?php
  $filename = "test.txt";
  $fh = fopen($filename, "r");
  echo fread($fh, "10");
  fclose($fh);
?>

file_get_contents()

file_get_contents () 関数は、ファイル全体を文字列に変換し、成功した場合は文字列を返し、失敗した場合は FALSE を返します。

構文:

string file_get_contents( string filename [, int offset [, int maxlen]] )

パラメータの説明:

パラメータ文字列 file_get_ ファイル名
offset オプションで指定します読み取りの開始位置、デフォルトはファイルの開始位置です

maxlen オプションで、読み込むファイルの長さをバイト単位で指定します例:

<?php
 $filename = 'NoAlike.txt';
 $filestring = file_get_contents($filename);
 echo $filestring;
?>

fwrite()

fwrite() 関数は次の目的で使用されます。文字列をファイルに書き込み、正常に書き込まれた文字数を返します。それ以外の場合は FALSE を返します。 構文: int fwrite( resource handle, string string [, int length] )

fwrite() string の内容をファイル ポインタ ハンドルに書き込みます。

パラメータの説明: パラメータ

文字列に書き込まれるファイルポインタは、通常、

データ文字列を作成するFOPEN()関数によって作成されることを説明します。

length オプション。書き込まれる最大バイト数を指定します。

オプションのパラメータ length が指定されている場合、length バイトが書き込まれるか文字列が書き込まれると、書き込みは停止します。

例:

<?php
  // 要写入的文件名字
  $filename = 'file.txt';
   // 写入的字符
  $word = "你好!";
  $fh = fopen($filename, "w");
  echo fwrite($fh, $word);    // 输出:6
  fclose($fh);
?>

プログラムと同じディレクトリで、file.txt ファイルの内容を実行します。 こんにちは!

上記の例では、length パラメーターが使用されている場合、最大長の文字列を書き込むことができます:

echo fwrite($fh, $word, 4) // 出力: 4


; file_put_contents()

file_put_contents() 関数は、ファイルに文字列を書き込むために使用され、ファイルに正常に書き込まれたデータのバイト数を返し、失敗した場合は FALSE を返します。

構文:

int file_put_contents (string filename, string data [, int flags [, resource context]] )

パラメータの説明:

パラメータデータを書き込む ファイル名
data 書き込むデータ書かれた。タイプは、文字列、配列 (ただし、多次元配列は不可)、またはストリーム リソースです。

flags オプションで、ファイルを開く/書き込む方法を指定します。可能な値: FILE_USE_INCLUDE_PATH: ファイル名のコピーの組み込みパスを確認します

FILE_APPEND: ファイルの末尾に追加してデータを書き込みます

LOCK_EX: ファイルをロックします

context オプション、Context はオプションのセットです。それを通じてテキスト属性を変更できます

例:

<?php
   echo file_put_contents("test.txt", "This is something.");
?>

この例を実行すると、ブラウザ出力:

18

学び続ける
||
<?php $filename = "test.txt"; //需要创建一个test.txt文件 $fh = fopen($filename, "r"); echo fread($fh, "10"); fclose($fh); ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜