前回の続き。
こんな有用なラッパ関数誰かが作っていないはずがない、ということで当然既にPearになっています。
Pear::Net_FTP 1.3.7 (stable)
http://pear.php.net/manual/ja/package.networking.net-ftp.php
使用方法は前回のftpClassとほぼ同じです。
ftp.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//接続用設定
$ftp_server='example.com';
$ftp_user='user';
$ftp_pass='password';
//FTP接続
require_once('Net/FTP.php');
$ftp=new Net_FTP($ftp_server);
$ftp->connect();
$ftp->login($ftp_user,$ftp_pass);
//ダウンロード
$ftp->get('hoge.txt','local.txt');
//アップロード
$ftp->put('local.txt','hogehoge.txt',true);
//削除
$ftp->rm('hoge.txt');
|
他にもカレントディレクトリを移動するcd、ディレクトリ一覧を取得するls等Linux的なコマンドが幾つか用意されています。
ディレクトリ丸ごとアップロード等もできて便利。
ただ、何故かテキストやストリームとして受信する手段がありません。
$text=$ftp->get('hoge.txt');
のような使用法ができず、必ずファイルとして保存しなければなりません。
実はこれPear::Net_FTPだけではなく、大元のFTP関数にも存在しないんですよね。
何故かファイルかファイルポインタにしか保存できません。
まあ元々FTPはファイル転送用のプロトコルですから当然と言えば当然ではありますが。
PHP5以降なら'php://temp'というダミーのポインタを利用することでテキストとして受信することはできますが、そもそもPHP5だったらURLラッパでアクセスした方が手っ取り早いという。
PR
トラックバック
トラックバックURL: