関数・クラス解説

ftp_nb_get

version:PHP 4 >= 4.3.0, PHP 5, PHP 7 (公式)

FTP サーバーからファイルを取得し、ローカルファイルに書き込む(非ブロッキング)

公式リファレンス

書式

ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] ) : int

説明

ftp_nb_get() は FTP サーバーからリモートファイルを取得し、 それをローカルファイルに保存します。

ftp_get() との違いは、この関数が 非同期処理でファイルを取得するということです。そのため、 ファイルをダウンロードしている最中に別の処理を行うことができます。

パラメータ

ftp_stream
FTP 接続のリンク ID 。
local_file
ローカルファイルのパス(ファイルがすでに存在する場合、上書きされます)。
remote_file
リモートファイルのパス。
mode
転送モード。FTP_ASCII または FTP_BINARY のどちらかを指定する必要があります。
resumepos
ダウンロードを開始する、リモートファイル内の位置。

返値

FTP_FAILED、FTP_FINISHED あるいは FTP_MOREDATA を返します。

更新履歴

バージョン 説明
7.3.0 mode パラメータはオプションになりました。 これより前のバージョンでは、このパラメータは必須でした。

サンプル

例1 ftp_nb_get() の例

// ダウンロードを開始する $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) {        // 何かお好みの動作を    echo ".";    // ダウンロードを継続する…    $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) {    echo "There was an error downloading the file...";    exit(1); }

例2 ftp_nb_get() でダウンロードを再開する

// 開始 $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,                        filesize("test")); // あるいは: $ret = ftp_nb_get($my_connection, "test", "README",  //                             FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) {        // 何かお好みの動作を    echo ".";    // ダウンロードを継続する…    $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) {    echo "There was an error downloading the file...";    exit(1); }

例3 ftp_nb_get() を用い、ファイルの 100 バイト目以降から ダウンロードを再開する

// 自動シークを無効にする ftp_set_option($my_connection, FTP_AUTOSEEK, false); // 開始 $ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) {    /* ... */        // ダウンロードを継続する…    $ret = ftp_nb_continue($my_connection); }

上の例では、newfile のサイズは FTP サーバー上の README より 100 バイト小さくなります。なぜなら ダウンロードの開始位置を 100 バイトずらしたからです。 もし FTP_AUTOSEEK を無効にしなければ、 newfile の最初の 100 バイトは '\0' で埋められます。

参考

  • ftp_nb_fget() - FTP サーバーからファイルをダウンロードし、オープン中のファイルに保存する(非ブロッキング)
  • ftp_nb_continue() - ファイルの取得/送信を継続する(非ブロッキング)
  • ftp_fget() - FTP サーバーからファイルをダウンロードし、オープン中のファイルに保存する
  • ftp_get() - FTP サーバーからファイルをダウンロードする
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール