以下是杀死我大脑的功能:
function removeFiles($pathTxt, $pathDestination) {
$uselessComplete= array();
$txtname= preg_grep('~^.*\.txt$~', scandir($pathTxt));
$files = glob("$pathTxt*.txt");
foreach($txtname as $name) {
array_push($uselessComplete, ($pathDestination. $name));
}
foreach($files as $originPath) {
foreach($uselessComplete as $destinationPath){
rename($originPath, $destinationPath);
}
}
}我的$files (旧路径)是这样的:
array(5) {
[0]=> string(52) "\\vifprod1\ascii\abattage\elisa\brive\e_12031051.txt"
[1]=> string(53) "\\vifprod1\ascii\abattage\elisa\brive\eam12031051.txt"
[2]=> string(52) "\\vifprod1\ascii\abattage\elisa\brive\ec12031051.txt"
[3]=> string(52) "\\vifprod1\ascii\abattage\elisa\brive\ee12031051.txt"
[4]=> string(54) "\\vifprod1\ascii\abattage\elisa\brive\epmi12031051.txt"
}我的$uselessComplete (新路径)如下所示
array(5) { [0]=> string(64)
"\\vifprod1\ascii\abattage\elisa\brive\non_utilise\e_12031051.txt" [1]=> string(65)
"\\vifprod1\ascii\abattage\elisa\brive\non_utilise\eam12031051.txt" [2]=> string(64)
"\\vifprod1\ascii\abattage\elisa\brive\non_utilise\ec12031051.txt" [3]=> string(64)
"\\vifprod1\ascii\abattage\elisa\brive\non_utilise\ee12031051.txt" [4]=> string(66)
"\\vifprod1\ascii\abattage\elisa\brive\non_utilise\epmi12031051.txt" }然后我用
foreach($fichiers as $cheminOrigine) {
foreach($inutileFini as $cheminDestination){
rename($cheminOrigine, $cheminDestination);
}
}问题是它只移动了5个文件中的2个,并且在这个过程中完全破坏了它们。
你能帮我吗?
发布于 2021-07-07 12:46:13
感谢“Syscall”CBroe和“Gowire”的回答:
“为什么在这里相互嵌套两个foreach循环?这样,您首先尝试将第一个文件重命名为$uselessComplete。然后尝试重命名同一个文件(不再存在了--您只是重命名了它!),重命名为$uselessComplete1包含的文件。等等。”
https://stackoverflow.com/questions/66637376
复制相似问题