【发布时间】:2011-07-04 02:43:09
【问题描述】:
我正在开发一些 PHP,以根据 CSV 文件中的数据将目录中的照片重命名为其他名称。 CSV 包含三列:Number、FirstName 和 LastName。照片的原始名称是“FirstName LastName.jpg”。新名称应为“Number.jpg”。我通过循环浏览 CSV 的行来做到这一点,通过将 FirstName 和 LastName 放在一起来制作旧名称,通过获取数字和重命名文件来制作新名称。但是,我有两个问题:
第一个更多是一个错误,但它可能很重要。当我回显 $oldname 时,名称和扩展名之前的点之间有一个换行符,即使我已将其指定为一个没有换行符的字符串。
第二个是它永远不会起作用。它总是返回“没有重命名任何东西”。我已经更改了文件和包含文件夹的权限,但它仍然不起作用。如果您能提供帮助,请提前致谢。
<?php
$dir = "*Dir to phptos*";
$csv = fopen("filename.csv", "r") or die("no csv file");
//$ext = ".txt";
while(!feof($csv)) {
$line = fgets($csv);
$names = explode(",", $line);
//echo $names[2];
$oldname = $dir.$names[1]." ".$names[2].".txt";
$newname = $dir.$names[0].".txt";
if (is_file($oldname)) {
rename($oldname, $newname);
echo "renamed '".$oldname."' to '".$newname."'<br/>";
} else {
echo "DID NOT rename '".$oldname."'<br/>\n";
//echo "$oldname";
}
}
fclose($csv);
?>
【问题讨论】: