int fopen
(string filename, string mode, int [use_include_path]);filename が "http://" (大文字小文字は 区別しません)で始まっている場合、指定されたサーバに対する HTTP 1.0 コネクションがオープンされ、その応答テキストの先頭を 指しているファイルポインタが返されます。
HTTP リダイレクトは処理されないので、ディレクトリを指定する場合は 末尾にスラッシュを付けなければなりません。
filename が "ftp://" (大文字小文字は 区別しません)で始まっている場合、指定されたサーバに対する FTP コネクションがオープンされ、要求したファイルへのポインタが 返されます。そのサーバがパッシブ・モード FTP をサポートして いない場合は、この関数は失敗します。 ftp 経由で読みこみまたは書きこみのどちらかでファイルをオープンする ことが可能です。(しかし、同時に両方を行うことはできません。)
filename が上記以外の場合、指定された ファイルがファイルシステムよりオープンされ、そのオープンされた ファイルへのファイルポインタが返されます。
オープンに失敗すると、この関数は FALSE を返します。
mode は次のどれかになります。
'r' - 読みこみのみでオープンします。ファイルポインタをファイルの先頭に置きます。
'r+' - 読みこみ・書きこみ用にオープンします。ファイルポインタをファイルの先頭に置きます。
'w' - 書きこみのみでオープンします。ファイルポインタをファイルの先頭に置き、ファイルサイズをゼロにします。ファイルが存在しない場合には、作成を試みます。
'w+' - 読みこみ・書きこみ用でオープンします。ファイルポインタをファイルの先頭に置き、ファイルサイズをゼロにします。ファイルが存在しない場合には、作成を試みます。
'a' - 書きこみのみでオープンします。ファイルポインタをファイルの終端に置きます。ファイルが存在しない場合には、作成を試みます。
'a+' - 読みこみ・書きこみ用でオープンします。ファイルポインタをファイルの終端に置きます。ファイルが存在しない場合には、作成を試みます。
オプションの2番目の引数を使用して、これに "1" を設定する ことにより、include_path のファイルの検索も行うことができます。
例 1. fopen() の例
$fp = fopen("/home/rasmus/file.txt", "r"); $fp = fopen("http://www.php.net/", "r"); $fp = fopen("ftp://user:password@example.com/", "w");
ファイルの読みこみ・書きこみ時に問題が発生し、 サーバーモジュール版の PHP を使用している場合、 使用するファイル・ディレクトリがサーバープロセスからアクセス可能 かどうかを確認してみてください。
Windows 環境では、ファイルパスで用いる全てのバックスラッシュを エスケープするかフォワードスラッシュを使用することに注意して下さい。
$fp = fopen("c:\\data\\info.txt", "r");
参照:fclose, fsockopen, popen