fopen()
関数はファイルまたはURLを開きます。
開口部が失敗した場合、この関数はfalseを返します。
<?php $ file = fopen ( "test.txt" 、 "r" ) ; $ file = fopen ( "/home/test/test.txt" 、 "r" ) ; $ file = fopen ( "/home/test/test.gif" 、 "wb" ) ; $ file = fopen ( "http://www.example.com/" 、 "r" ) ; $ file = fopen ( "ftp:// user:[email protected]/test.txt" 、 "w" ) ; ?>
fopen ( filename 、 mode 、 include_path 、 context )
パラメーター | 説明する |
---|---|
ファイル名 | 必須。開くファイルまたはURLを指定します。 |
モード | 必須。ファイル/ストリームに必要なアクセスのタイプを指定します。考えられる値を下の表に示します。 |
include_path | オプション。 include_pathでファイルを取得する必要がある場合は、このパラメーターを1またはtrueに設定できます。 |
コンテクスト | オプション。ファイルハンドルの環境を指定します。コンテキストは、ストリームの動作を変更できるオプションのセットです。 |
モード | 説明します |
---|---|
「R」 | ファイルヘッダーにファイルポインターを向けて、読み取り専用を開きます。 |
「R+」 | 読み取りモードと書き込みモードがオンになっており、ファイルヘッダーをファイルポインターに向けています。 |
「W」 | 書き込みモードが開き、ファイルヘッダーへのファイルポインターをポイントし、ファイルサイズをゼロに削減します。ファイルが存在しない場合は、作成してみてください。 |
「W+」 | 読み取りモードと書き込みモードがオンになっているため、ファイルヘッダーにファイルポインターを向け、ファイルサイズをゼロに切断します。ファイルが存在しない場合は、作成してみてください。 |
"A" | 書き込みモードが開き、ファイルの最後にファイルポインターを指します。ファイルが存在しない場合は、作成してみてください。 |
「A+」 | 読み取りモードと書き込みモードがオンになり、ファイルの最後にファイルポインターを指しています。ファイルが存在しない場合は、作成してみてください。 |
「X」 |
ファイルヘッダーにファイルポインターを指して、書き込みとして作成して開きます。ファイルが既に存在する場合、fopen()呼び出しが故障してfalseを返し、e_warningレベルのエラーメッセージが生成されます。ファイルが存在しない場合は、作成してみてください。 これは、O_EXCL | O_Creatタグを基礎となるOpen(2)システムコールに指定することと同等です。 このオプションは、PHP 4.3.2以降のバージョンでサポートされており、ローカルファイルにのみ使用できます。 |
「x+」 |
ファイルヘッダーにファイルポインターを指して、読み取りワイトモードで作成して開きます。ファイルが既に存在する場合、fopen()呼び出しが故障してfalseを返し、e_warningレベルのエラーメッセージが生成されます。ファイルが存在しない場合は、作成してみてください。 これは、O_EXCL | O_Creatタグを基礎となるOpen(2)システムコールに指定することと同等です。 このオプションは、PHP 4.3.2以降のバージョンでサポートされており、ローカルファイルにのみ使用できます。 |
fopen()
ファイル名で指定された名前リソースをストリームにバインドします。ファイル名が「スキーム:// ... 」の形式である場合、それはURLとして扱われ、PHPはこのモードを処理するためにプロトコルプロセッサ(カプセル化プロトコルとも呼ばれます)を検索します。プロトコルがカプセル化プロトコルを登録していない場合、PHPはスクリプトの潜在的な問題を確認し、通常のファイル名としてファイル名を実行し続けるためにメッセージを送信します。
PHPがFilenameがローカルファイルを指定すると考えている場合、そのファイルにストリームを開こうとします。ファイルはPHPでアクセスできる必要があるため、ファイルアクセス許可によりこのアクセスが許可されることを確認する必要があります。セーフモードがアクティブになっているか、Open_Basedirがアクティブになっている場合、さらなる制限が適用されます。
PHPは、ファイル名が登録プロトコルを指定し、そのプロトコルがネットワークURLとして登録されていると考えている場合、PHPはAllow_url_fopenがアクティブ化されていることを確認して確認します。閉じた場合、PHPは警告を発し、Fopenの呼び出しは失敗します。
コンテキストのサポートは、PHP 5.0.0によって追加されます。