7

これは以前に尋ねられたかもしれません。私は PHP を初めて使用し、できる限り多くのことを学ぼうとしていますが、これは本当に私を驚かせました。

基本的に私が知りたいのは、PHPコードを使用して、リモートサーバーからローカルの場所にすべてをダウンロードする方法です。私が立ち往生している1つのファイルだけでなく、すべてをダウンロードするようになっています。それで、誰かが私にこれをどのように行うかを見せたり説明したりできますか?

私がこれまでに持っているもの:

<?php
$connection - ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$remote_dir="/remote_dir/";
$local_dir="/local_dir/";

$remote ="$remote_dir";
$stream = ssh2_exec($connection, $remote);
stream_set_blocking($stream,true);
$command=fread($stream,4096);

$array=explode(\n,$command);

$total_files=sizeof($array);

for($i=0;$i<$total_files;$i+++){
    $file_name=trim($array[$i]);
    if($file_name!=''{
        $remote_file=$remote_dir.$file_name;
        $local_file=$local_dir.$file_name;

        if(ssh2_scp_recv($connection, $remote_file,$local_file)){
            echo "File ".$file_name." was copied to $local_dir<br />"; 
        }
    }
}
fclose($stream);
?>

私の $remote="$remote_dir"; だと思います。正直なところ、ディレクトリ全体が必要なときに $filename を取得しました。これまでのところ、これだけです。

4

3 に答える 3

0

更新: これは sftp を使用せず、代わりに ftps を使用することを親切に修正しました。これは、 PHP を使用して SFTP を実行する方法について説明している Stackoverflow リンクです。

PHP ドキュメントは、これに必要なもののほとんどをすでにカバーしています。リモート ディレクトリの内容のリストを取得する例を次に示します。

<?php
// set up basic connection
$ftp_server = "example.com";
$conn_id = ftp_ssl_connect($ftp_server);

// login with username and password
$ftp_user_name = "myuser";
$ftp_user_pass = "mypass";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name";
    }

$buff = ftp_rawlist($conn_id, '.');
 var_dump($buff);
ftp_close($conn_id); 
?> 
于 2013-07-16T21:52:53.460 に答える