PHP マニュアル
前のページ |  | 次のページ

# fopen

(PHP 3, PHP 4 )

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

## 説明

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

`filename`が"http://"(大文字小文字は区別しません) で始まっている場合、指定されたサーバに対するHTTP 1.0コネクションが オープンされ、HTTP　GETメソッドを用いてそのページがリクエストされ、 返された応答の本体の先頭を指すファイルポインタが返されます。 名前に基づく仮想ホストを処理するために'Host:' ヘッダが、リクエストで 送信されます。

ファイルポインタによりレスポンスの本体のみを 取得することが可能であることに注意して下さい。この関数を用いて HTTPレスポンスにアクセスすることはできません。

PHP 4.0.5 より前のバージョンは、HTTPリダイレクトを処理しませんでし た。このため、ディレクトリは末尾にスラッシュを含む必要がありました。

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

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

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

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

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

- 'r' - 読みこみのみでオープンします。ファイルポインタをファイルの 先頭に置きます。

- 'r+' - 読みこみ・書きこみ用にオüプンします。ファイルポインタを ファイルの先頭に置きます。

- 'w' - 書きこみの?gオープンします。ファイルポインタをファイルの 先頭に置き、ファイルサイズをゼロにします。ファイルが存在しない 場合には、作成を試みます。

- 'w+' - 読みこみ・書きこみ用でオープンします。ファイルポインタを ファイルの先頭に置き、ファイルサイズをゼロにします。 ファイルが存在しない場合には、作成を試みます。

- 'a' - 書きこみのみでオープンします。ファイルポインタをファイルの 終端に置きます。ファイルが存在しない場合には、作成を試みます。

- 'a+' - 読みこみ・書きこみ用でオープンします。ファイルポインタを ファイルの終端に置きます。ファイルが存在しない場合には、作成を 試みます。

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

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

例 1fopen()の例

    $fp = fopen ("/home/rasmus/file.txt", "r");
    $fp = fopen ("/home/rasmus/file.gif", "wb");
    $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(), socket_set_timeout(),popen() も参照下さい。

前のページ | ホーム | 次のページ
fnmatch | 上に戻る | fpassthru