PHP マニュアル
前のページ | 付録 M. サポートされるプロトコル/ラッパー | 次のページ

# FTP と FTPS

PHP 3、PHP 4、PHP 5。`ftps://` は PHP 4.3.0 以降。

- `ftp://example.com/pub/file.txt`

- `ftp://user:password@example.com/pub/file.txt`

- `ftps://example.com/pub/file.txt`

- `ftps://user:password@example.com/pub/file.txt`

FTP 経由でのファイルの読み込みと新しいファイルの作成を許可します。 サーバがパッシブモードの FTP をサポートしていない場合、接続は失敗します。

読み込み用または書き込み用のどちらかでファイルをオープンすることが 可能ですが、それらを両方同時に指定することはできません。FTP サーバ上の 既存のファイルを書き込み用にオープンしようとした場合、もし コンテキストオプション `overwrite` が指定されていなければ 接続は失敗します。既存のファイルを FTP 越しに上書きしたい場合は、 コンテキストオプション `overwrite` を指定したうえで 書き込み用にファイルをオープンします。別の方法としては、 FTP 拡張モジュール を使用することも可能です。

> 追記: PHP 5.0.0 では、`ftp://` URL ラッパー経由での ファイルの追記が可能となりました。それ以前のバージョンでは `ftp://` 経由でのファイルの追記は失敗していました。

`ftps://` は PHP 4.3.0 から有効になりました。 これは `ftp://` と同じですが、FTP サーバとの 安全な接続を確立しようと試みます。もしサーバが SSL をサポートして いなければ、通常の（暗号化されない）FTP を使用します。

> 注意: FTPS のサポートは PHP 4.3.0 から始まりました。これを使用するには OpenSSL サポートを含めて PHP をコンパイルする必要があります。

表 M-4. ラッパーの概要

属性 | PHP 4 | PHP 5
--- | --- | ---
allow_url_fopen で制約される | Yes | Yes
読み込み許可 | Yes | Yes
書き込み許可 | Yes（新規ファイルのみ） | Yes（新規ファイル あるいは 既存のファイルで `overwrite` を指定）
追加許可 | No | Yes
同時読み書き許可 | No | No
stat() のサポート | No | PHP 5.0.0 では filesize()、 filetype()、file_exists()、 is_file() および is_dir() のみ。 PHP 5.1.0 で filemtime()。
unlink() のサポート | No | Yes
rename() のサポート | No | Yes
mkdir() のサポート | No | Yes
rmdir() のサポート | No | Yes

表 M-5. コンテキストオプション（PHP 5.0.0 以降）

名前 | 使用法 | デフォルト
--- | --- | ---
`overwrite` | リモートサーバ上の既存のファイルに対する上書きを許可する。 書き込みモード（アップロード）時のみ有効。 | `FALSE`（無効）
`resume_pos` | 転送を開始するファイル内の位置。 読み込みモード（ダウンロード）時のみ有効。 | 0（ファイルの先頭）
`proxy`（PHP 5.1.0 以降） | FTP リクエストを、http プロキシサーバ経由で行う。 ファイルの読み込み操作にのみ適用される。 例: `tcp://squid.example.com:8000` |

> 基盤となるソケットストリームのコンテキストオプション: これ以外のコンテキストオプションが 基盤となるトランスポート でサポートされています。 `ftp://` ストリームの場合は、`tcp://` のコンテキストオプションを参照ください。 `ftps://` ストリームの場合は、`ssl://` のコンテキストオプションを参照ください。

前のページ | ホーム | 次のページ
HTTP と HTTPS | 上に戻る | PHP 入出力ストリーム