php では、file_put_contents 関数は文字列をファイルに書き込むことができます。これは、php の fwrite ファイルと少し同じです。file_put_contents と fwrite の使用法の違いを見てみましょう。
PHP file_put_contents() 関数は、文字列を書き込んだり、文字列の内容をファイルに一度に追加したりする場合に最も適した選択肢です。
file_put_contents()
file_put_contents() 関数は、ファイルに文字列を書き込むために使用され、成功した場合はファイルに書き込まれたデータのバイト数を返し、それ以外の場合は FALSE を返します
例:
コードは次のとおりです | コードをコピー |
echo file_put_contents("test.txt", "これは何かです。"); |
この例を実行すると、ブラウザーの出力は次のようになります:
18
test.txt ファイル (プログラムと同じディレクトリにある) の内容は次のとおりです。
ヒント
•ファイルが存在しない場合はファイルを作成します。これは fopen() 関数の動作と同等です。
ファイルが存在する場合、ファイルの内容はデフォルトでクリアされます。これを回避するには、flags パラメータ値を FILE_APPEND に設定します (以下を参照)。
•この関数はバイナリ オブジェクトに対して安全に使用できます。
追加フォームにコンテンツを書き込みます
flags パラメーター値が FILE_APPEND に設定されている場合、既存のファイルのコンテンツの後にコンテンツを追加することで新しいデータを書き込むことを意味します:
コードは次のとおりです | コードをコピー |
file_put_contents("test.txt", "これもまた何かです。", FILE_APPEND); |
プログラムを実行すると、test.txt ファイルの内容は次のようになります: This is something.This is another something.
file_put_contents() の動作は、実際には fopen()、fwrite()、fclose() を順番に呼び出すことと同じです。
では、file_put_contents と fwrite の違いは何ですか
以下は file_put_contents のコード例です:
コードは次のとおりです | コードをコピー |
$filename = 'file.txt'; |
同じ関数に fwrite を使用するコード例:
コードは次のとおりです | コードをコピー |
$filename = 'file.txt'; |
上記の 2 つの例から、file_put_contents は実際には fopen、fwrite、および fclose の簡略化された記述メソッドであることがわかります。これは、一方ではコードの量が削減され、さらにはコードの最適化に役立ちます。一方、fclose がミスするルーズなコードがある場合は、デバッグやメンテナンスが非常に便利になります。
上記の例では、file_put_contentsを最初から書いていますが、追加で書きたい場合はどうすればよいでしょうか?
file_put_contentsの構文には、追加書き込み文であるFILE_APPENDというパラメータがあります。コード例は次のとおりです:
コードは次のとおりです | コードをコピー |
echo file_put_contents('file.txt', "これは別のものです。", FILE_APPEND); |
FILE_APPEND は追記書き込み用のステートメントです。追加して書き込む場合、他の人が同時に操作するのを避けるために、ファイルをロックする必要があることがよくあります。この場合、次のように記述される LOCK_EX ステートメントを追加する必要があります。
コードをコピー | |
echo file_put_contents('file.txt', "これはまた別のものです。", FILE_APPEND|LOCK_EX); ?> |