忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/04/20 03:11 |
PHP1-44:PHPでFTPつづき

前回の続き。

こんな有用なラッパ関数誰かが作っていないはずがない、ということで当然既に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
<?php
    
    //接続用設定
        $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


2009/01/14 16:46 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP1-45:PHPでPDF | HOME | PHP1-43:PHPでFTP>>
忍者ブログ[PR]