PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP入門】fputs()関数の使い方を解説!ファイルへの書き込み方法

fputs()関数とは

PHPのfputs()関数は、オープン中のファイルにデータを書き込むための関数です。fwrite()関数のエイリアス(別名)であり、動作はfwrite()とまったく同じです。

書き込みに成功した場合は書き込んだバイト数を返し、失敗した場合はFALSEを返します。

また、fputs()関数は「ファイルの終端(EOF)に達した場合」と「lengthで指定した長さに達した場合」のどちらか早い方の時点で書き込みを停止します。

構文

fputs(file_pointer, string, length)

パラメータ

  • file_pointer − fopen()で作成されたファイルポインタを指定します。必須のパラメータです。

  • string − ファイルに書き込む文字列を指定します。必須のパラメータです。

  • length − 書き込む最大バイト数を指定します。省略可能なパラメータです。

戻り値

書き込みに成功した場合は書き込んだバイト数を返し、失敗した場合はFALSEを返します。

使用例1:テキストをファイルに書き込む

まずは基本的な使い方を見てみましょう。「This is demo text!」(18バイト)というテキストをnew.txtに書き込む例です。

<?php
   $file_pointer = fopen("new.txt", "w");
   echo fputs($file_pointer, "This is demo text!");
   fclose($file_pointer);
?>

実行すると、正常に書き込まれたバイト数が出力されます。

出力結果

18

使用例2:書き込むバイト数を指定する

次に、第3引数のlengthを使って書き込むバイト数を制限する例を紹介します。ここでは先頭から4バイト分だけ書き込み、その後ファイルを読み込んで内容を確認しています。

<?php
   $file_pointer = fopen("new.txt", "w");
   echo fputs($file_pointer, "This is demo text!", 4);
   fclose($file_pointer);

   $file_pointer = fopen("new.txt", "r");
   echo fread($file_pointer, filesize("new.txt"));
   fclose($file_pointer);
?>

4バイト分のみ書き込まれたため、戻り値は以下のように「4」となります。

出力結果

4

まとめ

fputs()関数はfwrite()のエイリアスであり、開いているファイルへ文字列を書き込むために使います。成功時には書き込んだバイト数が返るため、書き込み結果の確認にも便利です。lengthを指定すれば書き込むサイズを制御できるので、用途に応じて使い分けましょう。

  1. PHPのfeof()関数とは?使い方とサンプルコードを徹底解説

    feof() 関数は、ファイルポインタがファイルの終端(EOF:End Of File)に達しているかどうかを判定するためのPHP組み込み関数です。ファイルポインタがEOFに達している場合、またはエラー(ソケットタイムアウトを含む)が発生した場合には TRUE を返し、それ以外の場合は FALSE を返します。 この関数は、fgets() や fgetss() などを使ってファイルを1行ずつ読み込む際に、ループの終了条件としてよく利用されます。 構文 feof(file_pointer) パラメータ file_pointer − 有効なファイルポインタである必要があります。具体的には、f

  2. PHPのfclose()関数とは?ファイルポインタを閉じる方法をわかりやすく解説

    PHPのfclose()関数は、fopen()などで開いたファイルポインタを閉じるための関数です。処理が成功した場合はTRUEを、失敗した場合はFALSEを返します。ファイル操作を行った後は、リソースを解放するために必ずfclose()でファイルを閉じることが推奨されています。 構文(Syntax) fclose(file_pointer) パラメータ(引数) file_pointer − 有効なファイルポインタを指定します。このポインタは、fopen()またはfsockopen()によって正常に開かれたファイルを指している必要があります。 戻り値(Return値) fclose()関数は