テキストファイルにファイル名のリストがあり、テキストファイルを読み込んで、値を使用してフォルダー内のファイルの名前を変更しています。テキスト ファイル内の名前の例。ファイル内の各名前は 2 つの画像 (表と裏) を表します。
12455 124788 12145
基本的に、多数の画像を両面スキャンしました。スキャナはそれに 1、2、3 などのデフォルト名を付け、ファイル上のコードに名前を変更したいので、コードをテキスト ファイルに入力し、名前変更プログラムを実行します。それに応じてファイルの名前を変更します
私が得ている問題は、フォルダー内の最後の2つの画像の名前を変更しているだけです。ここにコードがあります 助けてくれてありがとう
<?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 ファイル: 警告: rename(/xampp/htdocs/test/1.JPG,/xampp/htdocs/test/R1 - 00650 - front.JPG) [function.rename]: C でエラーはありません: \xampp\htdocs\change_name.php 行 33 最初のファイル番号: 00650
警告: rename(/xampp/htdocs/test/2.JPG,/xampp/htdocs/test/R1 - 00650 - back.JPG) [function.rename]: C:\xampp\htdocs\change_name.php にエラーはありません43 行目 2 番目のファイル yes: 00650