PHP 将文件夹从 ftp 上的另一个位置复制到新目的地 ø

标签 php mysql

我制作了这个脚本来生成 3 个具有随机名称的文件夹,最后,我粘贴了一个完整的文件夹,我已将其放置在 ftp 中的另一个位置。

它确实适用于文件夹,但我无法将复制粘贴到最后的文件夹中!

你能解释一下如何解决这个问题吗?

<?php    


                 $tags = mysqli_query($conn, "SELECT domaine FROM `domains` ORDER BY rand() LIMIT 1; ") or die(mysqli_error($conn));
                 while($row = mysqli_fetch_array($tags)) 
                             {            
                                 $domainresul =  $row['domaine'];
                             } 

                                function random_string($length) {
                                    $key = '';
                                    $keys = array_merge(range(0, 9), range('a', 'z'));
                                    for ($i = 0; $i < $length; $i++) {
                                    $key .= $keys[array_rand($keys)];
                                    }

                                    return $key;
                                }


                                $file = "index.php";
                                $content = $sideindhold;


                                if (isset($_POST['submit'])) {


                                $ftp_server = "xxx"; // virtuelt doamin
                                $conn_id = ftp_connect($ftp_server);
                                $ftp_user_name = "xxx"; // bruger jeg har opsat på min xampp, med rettigheder til example.com
                                $ftp_user_pass = "xxx";
                                $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

                                // $root="url/phptest";
                                $root = $domainresul;




                                /* **************************************** */
                                /* create a stream context telling PHP to overwrite the file */
                                $options = array('ftp' => array('overwrite' => true));
                                $stream = stream_context_create($options);
                                /* **************************************** */


                                // check connection
                                echo "<center>";
                                if ((!$conn_id) || (!$login_result)) {
                                echo '<div style="background-color:red;padding:10px;color:#fff;font-size:16px;">';
                                echo "FTP connection has failed!";
                                echo "Attempted to connect to <b>$ftp_server</b> for user <b>$ftp_user_name</b>";
                                echo '</div>';
                                } else {

                                $foldername1 = random_string(4);
                                $foldername2 = random_string(3);
                                $foldername3 = random_string(2);



                                $directory = "$root/$foldername1";

                                if (ftp_mkdir($conn_id, $directory)) {

                                $directory = "$root/$foldername1/$foldername2";

                                if (ftp_mkdir($conn_id, $directory)) {

                                $directory = "$root/$foldername1/$foldername2/$foldername3";


                                if (ftp_mkdir($conn_id, $directory)) {
                                /* **************************************** */
                                /* and finally, put the contents */
                                $hostname2 = "ftp://" . $ftp_user_name . ":" . $ftp_user_pass . "@" . $ftp_server . "/";
                     $hostname = "ftp://" . $ftp_user_name . ":" . $ftp_user_pass . "@" . $ftp_server . "/" . $directory . "/";


                       $src = $hostname2 . "xxx.xxx/se";
                       $dst = $hostname;

                       echo $src;
                       echo $dst;

                       shell_exec("cp -r $src $dest");

                     /* **************************************** */

                 }
             }
         } else {
             echo '<div style="background-color:red;padding:10px;color:#fff;font-size:16px">';
             echo "Could not create directory: <b>$directory</b>";
             echo '</div>';
         }
     }
     echo "</center>";
 }
 ?>

最佳答案

您的 shell_exec() 命令正在本地计算机上运行。 “cp -r”用于本地复制文件;它不处理远程 ftp://url。

您需要使用ftp_exec 。复制代码如下所示:

$src = "xxx.xxx/se";
$dst = $directory . "/" . $src;

ftp_exec("cp -r $src $dst");

关于PHP 将文件夹从 ftp 上的另一个位置复制到新目的地 ø,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403199/

相关文章:

javascript - 动态下拉列表从服务中选择第一个选项,第二个选项将选择所选服务的医生。

php - 更新/添加新记录不起作用

php - 具有未加载附加列的 Kohana 数据透视表

php - 尝试获取从 mysql 数据库返回的多个随机结果

mysql更新查询,合并两个值

php - 如何在文本开头查找短语(单词)

php - 使用下拉值更新 MySql DB

php - ajax - 如何执行一组特定的 AJAX 代码而不执行其他代码

php - MySQL语句性能和优化

java - 我应该只将 Lucene 用于搜索吗?