【发布时间】:2019-05-18 07:22:31
【问题描述】:
所以我使用 php rename 函数来系统地重命名特定文件夹中的所有文件。
根据输出缓冲区,它工作正常。 当我查看文件夹时,它缺少文件 11-99。我在下面用我自己的函数替换了重命名函数,但是我得到了完全相同的结果。
代码:
function rename_files($directory){
$path = 'C:\xampp\htdocs\email' . '\\' . $directory . '\\';
$x = 00001;
foreach (glob($path."*") as $filename) {
$newFile = $path . 'list' . $x . '.txt';
$content = file_get_contents($filename); //this function returns the content of a file.
echo "$newFile and old $filename<br>";
unlink($filename);
$file = fopen($newFile, "w");
fwrite($file,$content);
fclose($file);
++$x;
}
}
现实:
【问题讨论】:
-
“所以我使用的是 php 重命名函数”,但你不是,你使用的是结构不佳的 diy 方法,而不是 php.net/manual/en/function.rename.php
-
你为什么要给 $x 赋值
1后缀四个零? -
我感觉您正在覆盖现有文件,您能否尝试追加所有内容并查看是否是这种情况?
-
我开始使用 rename() 并得到完全相同的结果。因此,在阅读了 php 手册后,我尝试了这种“结构不佳的 diy 方法”。 php.net 手册也给了我同样的结果。我以为我也在重写文件,所以我将所有新文件都更改为附加一个“a”以避免这种情况。它仍然缺少随机文件。
-
Philipp 有一点,您正在生成新文件并将其提供给重命名(再次)...
标签: php directory rename delete-file