我正在尝试在一个目录中重命名一些jpeg。代码的一半用于使用正确的文件名重命名,但由于某种原因,新的文件名被双引号括起来,这使得我的网页无法访问它们。
任何帮助表示赞赏!
$i = 10000;
foreach ($imgArray as $v) {
$html_file_name = basename($v).PHP_EOL;
$html_file_name = str_replace(range(0,9),'', $html_file_name);
$path = pathinfo($v, PATHINFO_DIRNAME);
$target = ++$i . $html_file_name;
rename ($v, $path . '/' . $target);
}
好的,这就是var_dump($ imgArray):
array(3) { [0]=> string(47) "../img/gallery/this-is-the-first/10002-vddf.jpg" [1]=> string(51) "../img/gallery/this-is-the-first/10001-vfdssddf.jpg" [2]=> string(50) "../img/gallery/this-is-the-first/10003-vddsvsf.jpg" }
序列化:
a:3:{i:0;s:47:"../img/gallery/this-is-the-first/10002-vddf.jpg";i:1;s:51:"../img/gallery/this-is-the-first/10001-vfdssddf.jpg";i:2;s:50:"../img/gallery/this-is-the-first/10003-vddsvsf.jpg";}
答案 0 :(得分:0)
您在文件名
中遇到新行问题 $html_file_name = basename($v).PHP_EOL;
^-------- Appending End of Line to File Name
你需要的只是
$i = 10000;
foreach ($imgArray as $v) {
rename($v, pathinfo($v, PATHINFO_DIRNAME) . '/' . (++$i . str_replace(range(0,9),'', basename($v))));
}