说明
当目录里的文件名需要更改时,可以使用 PHP 的 函数将文件名更改为新的随机名称。可以使用 函数列出目录中的所有文件,然后使用 循环遍历每个文件,对文件名进行更改。
这个代码中,我们首先定义了目录的路径、需要更改的文件扩展名、新文件名的长度。然后我们使用 函数获取目录下所有指定扩展名的文件,使用 循环遍历每个文件,并且在每个循环中使用 函数获取文件扩展名,使用 函数生成新的随机文件名,使用 函数将文件重命名为新文件名。最后,我们定义了一个 函数,用于生成随机文件名。glob()foreachpathinfo()generate_random_name()rename()generate_random_name()
示例代码
<?php
$dir_path = './bg/'; // 目录路径
$allowed_ext = ['jpg', 'jpeg', 'png', 'gif']; // 需要更改的文件扩展名
$prefix_length = 10; // 新文件名的长度
$files = glob($dir_path . '/*.{'. implode(',', $allowed_ext) . '}', GLOB_BRACE); // 获取目录下所有指定扩展名的文件
foreach ($files as $file) {
$ext = pathinfo($file, PATHINFO_EXTENSION); // 获取文件扩展名
$new_name = generate_random_name($prefix_length) . '.' . $ext; // 生成新的随机文件名
$new_path = $dir_path . '/' . $new_name; // 生成新文件的路径
rename($file, $new_path); // 重命名文件
}
function generate_random_name($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$random_name = '';
for ($i = 0; $i < $length; $i++) {
$random_name .= $characters[rand(0, strlen($characters) - 1)];
}
return $random_name;
}
?>
优化代码
使用该函数获取文件扩展名,并使用函数为每个文件生成随机前缀。然后,它使用该函数重命名文件,如果重命名成功,则输出成功消息,如果重命名不成功,则输出错误消息
- 指定目录路径为
$dir_path。 - 使用
scandir()函数获取目录下的所有文件。 - 循环处理每个文件,跳过 和
...两个特殊文件。 - 使用
md5()函数生成随机字符串,并使用substr()函数截取前10位字符作为新的文件名。 - 使用
rename()函数将文件重命名。 - 根据重命名结果输出相应信息。
<?php
$dir_path = "./bg/bg/"; // 指定目录路径
$files = scandir($dir_path); // 获取目录下所有文件
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
$extension = pathinfo($file, PATHINFO_EXTENSION);
$new_filename = substr(md5(uniqid(mt_rand(), true)), 0, 10) . '.' . $extension;
$old_file_path = $dir_path . $file;
$new_file_path = $dir_path . $new_filename;
if (rename($old_file_path, $new_file_path)) {
echo "文件 " . $file . " 重命名为 " . $new_filename . "<br>";
} else {
echo "重命名文件 " . $file . " 失败!<br>";
}
}
}
?>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
![php入门教程-实用脚本一键更改文件前缀名随机数字英文[代码笔记]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670165600-logo_img_sc2_vectorized.png)

![光遇自动更新每日任务接口[接口分享]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670250329-apijktppt.png)
![简单用html写了一个光遇蜡烛查询的网页工具[实用工具]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1676084107-微信图片_20230211105428.png)
![php基础教程-数组冒泡排序算法[技术分享]-try栈](https://www.vqqc.cn/wp-content/uploads/2022/12/1670257414-slt..png)
![JS基础教程:2023.4.2坚持第35天-JavaScript web APIs BOM操作[js教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/04/1680450097-Web-APIs.png)
![JS基础教程:2023.2.27第一天-JavaScript从入门到精通[js教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1677510437-JS基础.png)
![java入门基础教程:2023.2.27第一天,Java快速入门、IDEA开发工具的使用[java教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/02/1677498626-画布-1.png)
![git教程:git项目管理工具教程-2023.4.10坚持第43天[git教程]-try栈](https://www.vqqc.cn/wp-content/uploads/2023/04/1681056231-sheet.png)




暂无评论内容