fopen

fopen -- ファイルまたは URL をオープンする

説明

int fopen(string filename, string mode, int [use_include_path]);

filename が "http://" (大文字小文字は 区別しません)で始まっている場合、指定されたサーバに対する HTTP 1.0 コネクションがオープンされ、その応答テキストの先頭を 指しているファイルポインタが返されます。

HTTP リダイレクトは処理されないので、ディレクトリを指定する場合は 末尾にスラッシュを付けなければなりません。

filename が "ftp://" (大文字小文字は 区別しません)で始まっている場合、指定されたサーバに対する FTP コネクションがオープンされ、要求したファイルへのポインタが 返されます。そのサーバがパッシブ・モード FTP をサポートして いない場合は、この関数は失敗します。 ftp 経由で読みこみまたは書きこみのどちらかでファイルをオープンする ことが可能�すエWかし、同時に両方を行うことはできません。)

filenameが、"php://stdin", "php://stdout", "php://stderr"のどれかで始まっている場合、 対応するstdioストリームがオープンされます。 (この機能はPHP 3.0.13で導入されました。これ以前のバージョンでは、 stdioストリームにアクセスするために "/dev/stdin"または"/dev/fd/0"のようなファイル名を使用する必要があります。)

filename が上記以外の場合、指定された ファイルがファイルシステムよりオープンされ、そのオープンされた ファイルへのファイルポインタが返されます。

オープンに失敗すると、この関数は FALSE を返します。

mode は次のどれかになります。

同時に、mode は文字 'b' を指定することもできます。 これはバイナリとテキストのファイル形式が異なるシステムでのみ有効です。 (つまり、UNIX では不要です。)必要がない場合、無視されます。

オプションの2番目の引数を使用して、これに "1" を設定する ことにより、include_path のファイルの検索も行うことができます。

例 1. fopen() の例

  1 
  2 $fp = fopen("/home/rasmus/file.txt", "r");
  3 $fp = fopen("http://www.php.net/", "r");
  4 $fp = fopen("ftp://user:password@example.com/", "w");
  5 

ファイルの読みこみ・書きこみ時に問題が発生し、 サーバーモジュール版の PHP を使用している場合、 使用するファイル・ディレクトリがサーバープロセスからアクセス可能 かどうかを確認してみてください。

Windows 環境では、ファイルパスで用いる全てのバックスラッシュを エスケープするかフォワードスラッシュを使用することに注意して下さい。

  1 
  2  $fp = fopen("c:\\data\\info.txt", "r");
  3  

参照:fclose(), fsockopen(), popen()