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

PHPのftp_fget()関数とは?構文・パラメータ・使い方を解説

ftp_fget()関数は、FTPサーバーからファイルをダウンロードし、fopen()などであらかじめ開いておいたローカルファイルに書き込むための関数です。類似のftp_get()関数との違いは、保存先としてファイル名ではなく「開かれているファイルポインタ」を指定できる点にあります。

構文

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

パラメータ

  • con − FTP接続を表すリソース(ftp_connect()で取得した接続)

  • open_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("Could not connect to $ftp_server");
    $login = ftp_login($con, $ftp_user, $ftp_pass);
    $my_serverfile = "demo.txt";
    $local_file = "new.txt";
    $file_pointer = fopen($local_file,"w");
    if (ftp_fget($con, $file_pointer, $my_serverfile, FTP_ASCII, 0)) {
        echo "Written to $local_file!";
    } else {
        echo "Error in downloading the $my_serverfile!";
    }
    ftp_close($con);
    fclose($file_pointer);
?>

処理の流れのポイント

このコードでは、まずftp_connect()でFTPサーバーに接続し、ftp_login()でユーザー認証を行います。次に、fopen()でローカルファイルを書き込みモード(w)で開き、そのファイルポインタを第2引数としてftp_fget()に渡すことで、サーバーファイルの中身を直接書き込んでいます。転送モードにはFTP_ASCIIを指定し、開始位置は先頭の「0」としています。

処理が完了したら、ftp_close()でFTP接続を閉じ、fclose()でローカルファイルも忘れずに閉じましょう。リソースを適切に解放することは、安定したスクリプト運用のために重要です。

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

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

  2. PHPのcopy()関数とは?使い方・パラメータ・実行例をわかりやすく解説

    PHPのcopy()関数は、指定したファイルを別の場所へコピーするための組み込み関数です。この関数を実行すると、コピー元(ソース)ファイルをもとに、コピー先(デスティネーション)として新しいファイルが作成されます。なお、コピー先にすでに同名のファイルが存在する場合は、そのファイルは上書きされる点に注意してください。構文(Syntax)copy(source_file, dest_file)パラメータsource_file − コピー元となるファイルを指定します。dest_file − コピー先のファイルパスを指定します。戻り値(Return値)copy()関数は、処理結果に応じて以下のブール値