gpt4 book ai didi

PHP批量重命名,具有不止一种重命名功能

转载 作者:搜寻专家 更新时间:2023-10-31 20:46:46 25 4
gpt4 key购买 nike

我是 PHP 的新手,我正在尝试做一些类似于 user580950 在 Bulk Rename Files in a Folder - PHP 询问的事情.

我想编写一个脚本来遍历给定目录中所有文件和目录的名称,并做两件事:用破折号替换空格并将所有大写字母转换为小写字母。

根据上述问题的答案,以及所需功能的 PHP 手册条目,我想出了以下代码:

if ($handle = opendir('/Users/username/Documents/School')) {

while (false !== ($file_name = readdir($handle))) {
$to_lower = strtolower($file_name);
$add_dashes = str_replace(" ", "-", $to_lower);
rename($file_name , $add_dashes);
}

closedir($handle);
}

此代码为目标目录中的每个文件/目录返回以下错误:

Warning: rename(THE 273,the-273): No such file or directory in /Users/username/Sites/PHP/rename_files_in_directory.php on line 8

我尝试过以各种方式重新排列事物,但我完全不知道问题出在哪里。我在 Mac OSX.6.8 上运行 PHP 5.3.8。

帮助将不胜感激!

最佳答案

您需要转义空格。尝试直接重命名:

<?php

if ($handle = opendir('/Users/username/Documents/School')) {

while (false !== ($file_name = readdir($handle))) {
$to_lower = strtolower($file_name);
$add_dashes = str_replace(" ", "-", $to_lower);
exec("mv ".escapeshellarg($file_name). " ". $to_lower);
}

closedir($handle);
}
?>

关于PHP批量重命名,具有不止一种重命名功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com