PHP がファイルにデータを書き込むか追加する方法は 2 つあります。1 つは fopen で、もう 1 つは file_put_contents です。この記事では、2 つのメソッドの具体的な使用法を簡単に紹介します。困っている友達は見てみるといいでしょう。
(1)fopen
fopen() 関数はファイルまたは URL を開きます。開くのに失敗した場合、この関数は FALSE を返します。
構文: fopen(ファイル名,モード,インクルードパス,コンテキスト)
パラメータの説明
ファイル名は必須です。開くファイルまたは URL を指定します。
モード 必須。このファイル/ストリームに必要なアクセスのタイプを指定します。可能な値を以下の表に示します。
include_path はオプションです。 include_path 内のファイルも取得する必要がある場合は、このパラメータを 1 または TRUE に設定できます。
コンテキスト オプション。ファイルハンドルの環境を指定します。コンテキストは、ストリームの動作を変更できるオプションのセットです。
モードパラメータの可能な値
モード | 手順 |
---|---|
「ル」 | 読み取り専用モードで開き、ファイルポインタをファイルヘッダーにポイントします。 |
「r+」 | 読み取り/書き込みモードで開き、ファイルポインタをファイルヘッダーにポイントします。 |
「わ」 | 書き込みモードで開き、ファイルポインタをファイルヘッダーにポイントし、ファイルサイズをゼロに切り詰めます。ファイルが存在しない場合は、作成してみてください。 |
「w+」 | 読み取り/書き込みモードで開き、ファイルポインタをファイルヘッダーにポイントし、ファイルサイズをゼロに切り詰めます。ファイルが存在しない場合は、作成してみてください。 |
「あ」 | 書き込みモードで開き、ファイルポインタをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。 |
「あ+」 | 読み取り/書き込みモードで開き、ファイルポインタをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。 |
「×」 |
ファイルポインタをファイルヘッダーにポイントして、書き込み用に作成して開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。 これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。 このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。 |
「x+」 |
ファイルポインターをファイルヘッダーにポイントして、読み取りと書き込みのために作成して開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。 これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。 このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。 |
追加フォームにコンテンツを書き込みます
リーリー(2)file_put_contents
file_put_contents() 関数は、ファイルに文字列を書き込むために使用され、ファイルに正常に書き込まれたデータのバイト数を返し、失敗した場合は FALSE を返します。
構文: int file_put_contents(文字列ファイル名,文字列データ[,intフラグ[,リソースコンテキスト]])
パラメータの説明
filename データを書き込むファイルの名前
data 書き込まれるデータ。タイプは文字列、配列 (ただし多次元配列は不可)、またはストリーム リソースです
flags はオプションで、ファイルを開く/書き込む方法を指定します。可能な値:
FILE_USE_INCLUDE_PATH: ファイル名のコピーの組み込みパスを確認します
FILE_APPEND: ファイルの末尾に追加してデータを書き込みます
LOCK_EX: ファイルをロックします
context オプション、Context はテキストプロパティを変更できるオプションのセットです
例:
リーリー追加フォームにコンテンツを書き込みます
flags パラメータ値を FILE_APPEND に設定すると、既存のファイル コンテンツの後にコンテンツを追加することで新しいデータを書き込むことになります。例:
リーリーヒント
file_put_contents() の動作は、実際には fopen()、fwrite()、および fclose() 関数を順番に呼び出すことと同じです。
ファイルが存在しない場合は、ファイルを作成します。これは fopen() 関数の動作と同等です。
ファイルが存在する場合、ファイルの内容はデフォルトでクリアされます。これを回避するには、flags パラメータ値を FILE_APPEND に設定します。
file_put_contents 関数はバイナリ オブジェクトに対して安全に使用できます。