Forum und email

FTP 関数

導入

この拡張モジュールの関数は、» https://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)

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

Example#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_fileFTP_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 を返す