利用PHPglob()函数批量处理文件名的实际案例
发布时间:2023-06-21 14:04:55
PHPglob()函数是PHP中用来获取指定目录下所有符合条件的文件名的函数。它的语法格式如下:
glob(pattern, flags)
其中,pattern表示匹配文件名的模式,可以使用通配符*、?和[];flags表示开关选项,可以指定查找文件的深度、排序方式等。
在实际开发中,我们可以利用PHPglob()函数批量处理文件名,例如:
1. 统计某个目录下所有txt文件的个数。
代码如下:
$dir = '/path/to/dir'; $txtFiles = glob($dir . '/**/*.txt', GLOB_BRACE); $count = count($txtFiles); echo "There are $count txt files in $dir.";
这段代码先使用glob()函数获取匹配所有txt文件的文件名,然后使用count()函数统计文件名的个数,并输出到屏幕上。
2. 将某个目录下所有jpg文件重命名为png文件。
代码如下:
$dir = '/path/to/dir';
$jpgFiles = glob($dir . '/**/*.jpg', GLOB_BRACE);
foreach ($jpgFiles as $jpgFile) {
$pngFile = str_replace('.jpg', '.png', $jpgFile); // 新文件名
if (!file_exists($pngFile)) { // 检查新文件名是否已存在
rename($jpgFile, $pngFile); // 重命名文件
}
}
echo "All jpg files have been renamed to png files.";
这段代码使用glob()函数获取所有jpg文件的文件名,并在循环中利用str_replace()函数生成新的文件名。然后,使用file_exists()函数检查新文件是否已存在,如果不存在,使用rename()函数将旧文件重命名为新文件。
3. 批量压缩某个目录下的所有图片文件。
代码如下:
$dir = '/path/to/dir';
$imageFiles = glob($dir . '/**/*.{jpg,jpeg,png}', GLOB_BRACE);
$zipFile = $dir . '/images.zip';
$zip = new ZipArchive();
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) { // 创建ZIP文件
foreach ($imageFiles as $imageFile) {
$zip->addFile($imageFile, basename($imageFile)); // 添加文件到ZIP文件中
}
$zip->close(); // 关闭ZIP文件
echo "All image files have been compressed to $zipFile.";
} else {
echo "Failed to create ZIP file!";
}
这段代码使用glob()函数获取所有图片文件的文件名,并使用ZipArchive类创建ZIP文件。循环中,利用addFile()函数将每个文件添加到ZIP文件中,最后使用close()函数关闭ZIP文件。
以上是利用PHPglob()函数批量处理文件名的一些实际案例,通过熟练掌握该函数的使用,我们能够提高 PHP 开发的效率和准确性,提升工作效率。
