【问题标题】:rename move files incrementally with php用php增量重命名移动文件
【发布时间】:2019-03-24 14:55:07
【问题描述】:

我想重命名/移动一个文件,我可以使用以下代码完成,但是如何在不指定文件名的情况下将 A1 目录中的下一个文件移动到 A2 目录?

(A1目录下的文件从1.txt到1000.txt编号

<?php
rename("/home/vol11_1/htdocs/A1/1.txt", "/home/vol11_1/A2/txt.txt");
?>

每次运行 php 脚本时,它应该将下一个文件从 A1 文件夹移动到 A2 文件夹并覆盖已经存在的 txt.txt 文件。

如何做到这一点?

谢谢

【问题讨论】:

  • 将上次移动的文件保存在任何地方,例如在会话中

标签: php rename move


【解决方案1】:

编辑:新版本,试试这个:

<?php

// start new or resume existing session
session_start();

// get the last file number stored on session or 0 at the first time
$last = isset($_SESSION['last']) ? $_SESSION['last'] : 0;

// increment the number
$last++;

// store on session
$_SESSION['last'] = $last;

// move the file
rename("/home/vol11_1/htdocs/A1/$i.txt", "/home/vol11_1/A2/txt.txt");

?>

【讨论】:

  • 谢谢,但该脚本没有做任何事情,没有文件移动。 ?
  • 放源和目标文件路径的例子
  • 我将脚本从 rename("/home/vol11_1/htdocs/A1/$i.txt", "/home/vol11_1/A$i/txt.txt");重命名("/home/vol11_1/htdocs/A1/$i.txt", "/home/vol11_1/A2/txt.txt");它可以移动文件,但是下次我运行脚本时它不会移动任何东西,因为我认为它不会覆盖它,但即使我从 A2 中删除文件并再次运行脚本,它也不会移动任何文件?
  • 文件必须命名为 1 到 1000 吗?如果是这样,则在移动第一个文件 1.txt 后,下一个要移动的文件是 2.txt
  • 实际上所有文件都从 A1 中删除,单个文件正在移动到 A2
【解决方案2】:

我设法用下面的代码做到了

$from = '/A1';
$files = scandir($from);

$to = '//A2';
if (!empty($files[2])) {
rename("{$from}/{$files[2]}", "{$to}/text.txt");
}

感谢所有帮助过的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多