我在文本文件中有一个文件名列表,我一直在阅读文本文件,并使用vales重命名文件夹中的文件。文本文件中的名称示例,文件中的每个名称代表两个图像(正面和背面)。
12455 124788 12145
基本上我们有双面扫描了许多图像,扫描仪给它一个默认名称1,2,3等,我们想把它重命名为文件上的代码,所以代码输入到文本文件中重命名程序将相应地重命名文件
我得到的问题是它只重命名文件夹中的最后两个图像。这是代码感谢您的帮助
<?php
$second_file = "n";
$do_second = "n";
$i = 0;
$count = 0;
if ($handle = opendir('C:\xampp\htdocs\test')) {
$a = 0;
echo "Directory handle: $handle\n";
echo "Files:\n";
$file = fopen("num.txt","r") or exit ("Unable to open file num.txt");
while (!feof($file)){
$data = fgets($file);
$data2 = substr($data,0,9);
$num[$i] = $data2;
$i = $i + 1;
$count = $count + 1;
}
$a = 0;
while (false !== ($file2 = readdir($handle))) {
$filename[$a] = $file2;
$a = $a + 1;}
sort($filename,SORT_NUMERIC);
$count2 = 0;
for($a=2; $a <sizeof($filename); $a++){
$value = $num[$count2];
$test = $filename[$a];
$temp2 = substr($filename[$a],0,1);
if ($temp2 !== "."){
if ($second_file =="n") {
$temp = substr($filename[$a], 0, 1);
if($temp !== "R") {
rename("/xampp/htdocs/test/$test","/xampp/htdocs/test/R1 - $value - front.JPG");
$second_file = "y";
$do_second = "n";
print "First file no: $value <br>";
}
}
if ($second_file =="y") {
$temp = substr($filename[$a], 0, 1);
if($temp !== "R") {
if($do_second =="y"){
rename("/xampp/htdocs/test/$test","/xampp/htdocs/test/R1 - $value - back.JPG");
$second_file = "n";
$count2 = $count2 + 1;
print "Second file yes: $value <br>";
}
if($do_second =="n"){
$do_second = "y";
}
}
}
}
}
fclose($file);
closedir($handle);
print "Rename complete"; }
我一直收到警告,但没有重命名
目录句柄:资源ID#3文件: 警告:重命名(/xampp/htdocs/test/1.JPG,/xampp/htdocs/test/R1 - 00650 - front.JPG)[function.rename]:C:\ xampp \ htdocs \ change_name.php中没有错误第33行 第一个文件号:00650
警告:重命名(/xampp/htdocs/test/2.JPG,/xampp/htdocs/test/R1 - 00650 - back.JPG)[function.rename]:C:\ xampp \ htdocs \ change_name中没有错误第43行的.php 第二个文件是:00650