XLVI. FTP 関数

導入

この拡張モジュールの関数は、 http://www.faqs.org/rfcs/rfc959 で定義された File Transfer Protocol (FTP) を使用してファイルサーバに アクセスするクライアントの実装です。この拡張を利用することで、FTP サーバにアクセスしてさまざまな操作をするスクリプトを作成することができます。 ただ単に FTP サーバ上のファイルを読み書きしたいだけなら、 ファイルシステム関数 ftp:// ラッパ を用いることを考えてください。こちらのほうがシンプルで直感的な インターフェースを提供します。

要件

外部ライブラリを必要としません。

インストール手順

PHP で FTP 関数を使用するには、PHP 4 をインストールする際には --enable-ftp オプション、 PHP 3 を使用する場合には --with-ftp を追加する必要があります。

Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

実行時設定

設定ディレクティブは定義されていません。

リソース型

この拡張モジュールは、1 種類のリソース型を使用します。これは FTP 接続のリソース ID で、 ftp_connect() あるいは ftp_ssl_connect() により返されたものです。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

FTP_ASCII ( integer )

FTP_TEXT ( integer )

FTP_BINARY ( integer )

FTP_IMAGE ( integer )

FTP_TIMEOUT_SEC ( integer )

詳細は、 ftp_set_option() を参照ください。

以下の定数は、PHP 4.3.0で追加されました。

FTP_AUTOSEEK ( integer )

詳細は、 ftp_set_option() を参照してください。

FTP_AUTORESUME ( integer )

GET および PUT リクエスト用のレジューム位置と開始位置を自動的に 定義します(FTP_AUTOSEEK が有効な場合のみ動作します)。

FTP_FAILED ( integer )

非同期伝送が失敗しました。

FTP_FINISHED ( integer )

非同期伝送が終了しました。

FTP_MOREDATA ( integer )

非同期伝送がまだアクティブです。

例 1. FTP の例

<?php
// 接続を確立する
$conn_id = ftp_connect ( $ftp_server );

// ユーザ名とパスワードでログインする
$login_result = ftp_login ( $conn_id , $ftp_user_name , $ftp_user_pass );

// 接続できたか確認する
if ((! $conn_id ) || (! $login_result )) {
        echo
"FTP connection has failed!" ;
        echo
"Attempted to connect to $ftp_server for user $ftp_user_name" ;
        exit;
    } else {
        echo
"Connected to $ftp_server, for user $ftp_user_name" ;
    }

// ファイルをアップロードする
$upload = ftp_put ( $conn_id , $destination_file , $source_file , FTP_BINARY );

// アップロード状況を確認する
if (! $upload ) {
        echo
"FTP upload has failed!" ;
    } else {
        echo
"Uploaded $source_file to $ftp_server as $destination_file" ;
    }

// FTP ストリームを閉じる
ftp_close ( $conn_id );
?>

目次
ftp_alloc  -- アップロードされるファイルのためのスペースを確保する
ftp_cdup  -- 親ディレクトリに移動する
ftp_chdir  -- FTP サーバ上でディレクトリを移動する
ftp_chmod  -- FTP 経由でファイルのパーミッションを設定する
ftp_close  -- FTP 接続を閉じる
ftp_connect  -- FTP 接続をオープンする
ftp_delete  -- FTP サーバ上のファイルを削除する
ftp_exec  -- FTP サーバ上でのコマンドの実行をリクエストする
ftp_fget  -- FTP サーバからファイルをダウンロードし、オープン中のファイルに保存する
ftp_fput  -- オープン中のファイルを FTP サーバにアップロードする
ftp_get_option  -- カレント FTP ストリームでの種々の実行時動作を取得する
ftp_get  -- FTP サーバからファイルをダウンロードする
ftp_login  -- FTP 接続にログインする
ftp_mdtm  -- 指定したファイルが最後に更新された時刻を返す
ftp_mkdir  -- ディレクトリを作成する
ftp_nb_continue  -- ファイルの取得/送信を継続する(非ブロッキング)
ftp_nb_fget  -- FTP サーバからファイルをダウンロードし、オープン中のファイルに保存する(非ブロッキング)
ftp_nb_fput  -- オープン中のファイルを FTP サーバに保存する(非ブロッキング)
ftp_nb_get  -- FTP サーバからファイルを取得し、ローカルファイルに書き込む(非ブロッキング)
ftp_nb_put  -- FTP サーバにファイルを保存する(非ブロッキング)
ftp_nlist  -- 指定したディレクトリのファイルの一覧を返す
ftp_pasv  -- パッシブモードをオンまたはオフにする
ftp_put  -- FTP サーバにファイルをアップロードする
ftp_pwd  -- カレントのディレクトリ名を返す
ftp_quit  --  ftp_close() のエイリアス
ftp_raw  -- FTP サーバに任意のコマンドを送信する
ftp_rawlist  -- 指定したディレクトリの詳細なファイル一覧を返す
ftp_rename  -- FTP サーバ上のファイルまたはディレクトリの名前を変更する
ftp_rmdir  -- ディレクトリを削除する
ftp_set_option  -- さまざまな FTP 実行時オプションを設定する
ftp_site  -- SITEコマンドをサーバに送信する
ftp_size  -- 指定したファイルのサイズを返す
ftp_ssl_connect  -- セキュアな SSL-FTP 接続をオープンする
ftp_systype  -- リモート FTP サーバのシステム型 ID を返す