«

PHP循环遍历文件夹及子目录并将图片批量更名的方法

时间:2024-3-3 10:41     作者:韩俊     分类: PHP


写这块的内容主要还是因为最近毛票票PHP博客提供开源下载,有一些码友的虚拟主机不支持无后缀图片的显示问题,就想着写个PHP脚本批量处理一下解决这个问题,毕竟采用图像处理软件对无后缀的图片解决的不是很好。

可是自己研究以后发现只是涉及WIN系列的虚拟机或服务器才有这样的问题,通过web.config也可以解决这个问题,就没再更新了,保持了部分图片无后缀显示的风格。

虽然不更新了,但还是把这个文件共享出来了,实现循环遍历目录和子目录下的所有文件,只要是无后缀的文件,都重新命名加.jpg的后缀来解决显示问题。

<?php

//循环目录下所有文件,包含子目录,将文件名不包含有.的文件,重新命名为.jpg文件
function my_dir($dir) {
    $files = [];
    if(@$handle = opendir($dir)) {
        while(($file = readdir($handle)) !== false) {
            if($file != ".." && $file != ".") {
                if(is_dir($dir . "/" . $file)) { //如果是子文件夹,进行递归
                    $files[$file] = my_dir($dir . "/" . $file);
                } else {
                    $files[] = $file;

                    $img_name=$file;//临时变量
                    if (strpos($img_name,'.')===false){    
                        rename($dir . "/".$img_name,$dir . "/".$img_name.".jpg");//重命名图片名称
                    }
                }
            }
        }
        closedir($handle);
    }
    return $files;
}

echo "<pre>";
print_r(my_dir("./upload_image"));//目录
echo "</pre>";

标签: php php教程

热门推荐