PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのftp_fget()関数の使い方:FTPサーバーからファイルをダウンロードしてローカルに保存する方法

PHPのftp_fget()関数は、FTPサーバー上のファイルをダウンロードし、あらかじめ開いておいたローカルファイルに保存するために使用します。よく似た関数のftp_get()がローカルファイルのパスを直接指定するのに対し、ftp_fget()fopen()で取得したファイルポインタ(リソース)を引数として渡す点が特徴です。

構文

ftp_fget(con, local_file, server_file, mode, startpos);

パラメータ

  • con − FTP接続を示すリンクIDです。

  • local_file − ダウンロードしたデータを書き込む、開かれた状態のローカルファイルポインタです。

  • server_file − ダウンロード対象となるサーバー側のファイルです。

  • mode − 転送モードです。FTP_ASCIIまたはFTP_BINARYを指定します。

  • startpos − ダウンロードを開始する位置(オフセット)です。PHP 4.3.0で追加されました。

戻り値

ftp_fget()関数は、成功した場合にTRUEを、失敗した場合にFALSEを返します。

以下の例では、サーバー上のファイル「demo.txt」をダウンロードし、ローカルファイル「new.txt」に保存します。

<?php
    $ftp_server = "192.168.0.4";
    $ftp_user = "amit";
    $ftp_pass = "tywg61gh";

    $con = ftp_connect($ftp_server) or die("$ftp_server に接続できませんでした");
    $login = ftp_login($con, $ftp_user, $ftp_pass);

    $my_serverfile = "demo.txt";
    $my_file = "new.txt";

    // ローカルファイルを書き込みモードで開く
    $file_pointer = fopen($my_file, "w");

    if (ftp_fget($con, $file_pointer, $my_serverfile, FTP_ASCII, 0)) {
        echo "ローカルファイルに書き込みました!";
    } else {
        echo "サーバーファイルのダウンロード中にエラーが発生しました!";
    }

    ftp_close($con);
    fclose($file_pointer);
?>

ポイント

転送モードには、テキストファイル向けのFTP_ASCIIと、画像や実行ファイルなどあらゆる種類のファイルに対応できるFTP_BINARYがあります。データ破損を防ぐため、特別な理由がない限りFTP_BINARYの使用が推奨されます。また、処理が完了したら必ずftp_close()でFTP接続を閉じ、fclose()でファイルポインタを解放しましょう。

  1. PHPのfile()関数とは?使い方・パラメータ・戻り値をわかりやすく解説

    PHPのfile()関数は、指定したファイル全体を読み込み、その内容を行ごとに分割した配列として返す関数です。テキストファイルを簡単に扱いたい場合に便利な基本関数の一つです。構文file(file_path, flag, context)パラメータfile_path − 読み込みたいファイルへのパスを指定します。flag − 省略可能なパラメータで、以下の定数を1つ、または複数組み合わせて指定できます。FILE_USE_INCLUDE_PATH − include_path の中からファイルを検索します。FILE_IGNORE_NEW_LINES − 配列の各要素の末尾に改行文字を追加しません

  2. PHPのdelete()関数とは?使い方とサンプルコードをわかりやすく解説

    PHPのdelete()関数は、指定したファイルを削除するための関数です。削除したいファイルのパスをパラメータとして渡すことで、そのファイルをシステムから削除できます。 構文(Syntax) delete(file_path) パラメータ(Parameters) file_path: 削除したいファイルのパスを指定します。相対パス・絶対パスのどちらでも指定可能です。 戻り値(Return) delete()関数は、処理結果に応じて以下のブール値を返します。 true: ファイルの削除が成功した場合 false: ファイルの削除に失敗した場合(ファイルが存在しない、権限がないなど) 使用