2012-02-16 10 views
1
<? 

$ftp_server = "name.info"; 
$ftp_user = "user"; 
$ftp_pass = "pass"; 

// set up a connection or die 
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

// try to login 
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) 
{ 
    ftp_chdir($conn_id, 'public_html/'); 
    $contents = ftp_nlist($conn_id, '-la .'); 
    print_r($contents); 
    foreach($contents as $line){ 
     $file = preg_split('@\[email protected]', trim($line)); 
     $name = $file[8]; 
     $size = $file[4]; 
     $mode = $file[0]; 
     if(substr($mode, 0, 1) == '-'){ 
     //file 
     $fd = fopen('d/'.$name, 'w'); 
     ftp_fget ($conn_id, $fd, $name, FTP_BINARY); 
     fclose($fd); 
     }else{ 
     //dir 
     } 
    } 
} 
else 
    die ("Couldn't connect as $ftp_user\n"); 

?> 

すべてのpublic_htmlフォルダを取得します。私はそれを圧縮することができれば完璧だろう。私は何かを書こうとしましたが、それらのファイルをコピーしません。私は何が欠けていますか?FTPからのZipフォルダ

<? 
exec("zip -R public_html.zip /home/username/public_html",$output); 
?> 

希望:あなたは、単にのようなシェルからのzipコマンドを実行するには、exec()を使用することができ

+2

どうしたらうまくいかないのですか? – thetaiko

+0

@thetaiko:ファイルを自分のディレクトリにコピーしません。 –

+2

@hey ... right。具体的には動作しません。接続しますか?ログイン? fget?成功または失敗時にブール値を返す関数がここにたくさんあります。 – thetaiko

答えて

2

あなたがLinux上ではなく、PHPのセーフモード(使用するphpinfo()を見つけるために)によって制限されている場合これは役に立ちます。

EDIT:FTPアクセスがある場合は、このステートメントをスタンドアロンスクリプトとしてアップロードし、ブラウザ経由で呼び出すことができます。

3

これは私が遅いFTPサーバー上で使用するコードです:それは、zipファイルを作成し、それが(インターネットの速度の接続およびZIPファイルのサイズに依存)私のローカルコンピュータにコピーするために私に5分を要し

<?php 

$archive = "2012.zip"; 
$directory = $_SERVER['DOCUMENT_ROOT']; 
exec("zip -r $archive $directory"); 

?> 

希望します。

+1

ディレクトリ名のバラツキのために+1 – Praesagus

+0

良い1ありがとう –

関連する問題