封装的代码:
🔒 隐藏内容:登录后可查看
function checkOrCreateDirectory($dir, $prefix, $newDirName) {
$directories = array_filter(glob($dir . '/*'), 'is_dir');
foreach ($directories as $directory) {
$directoryName = basename($directory);
if (strpos($directoryName, $prefix) === 0) {
return $directoryName;
}
}
$newDirectory = $dir . '/' . $prefix . $newDirName;
if (!file_exists($newDirectory)) {
mkdir($newDirectory, 0777, true);
}
return $prefix . $newDirName;
}
这个函数会接收三个参数:需要检查的目录名、需要检查的前缀以及要创建的新目录名。它会使用 glob() 函数获取目录中的所有子目录,并使用 array_filter() 函数过滤掉所有的非目录文件。然后,它会循环遍历所有目录并检查它们的名称是否以指定的前缀开头。如果找到了一个匹配的目录,函数会立即返回该目录名称。否则,它会创建一个新目录并返回其名称。
注意,这个函数使用了 file_exists() 函数来检查新目录是否已经存在,以避免重复创建同名目录。如果您希望在创建新目录时应用不同的访问权限,可以修改 mkdir() 函数的第三个参数。
标注好注释的函数
🔒 隐藏内容:会员可查看
/**
* 检查指定目录是否存在前缀admin-的目录,如果存在便返回目录名称,不存在则创建一个目录。
* @param string $dir 需要检查的目录名。
* @param string $prefix 需要检查的前缀。
* @param string $newDirName 要创建的新目录名。
* @return string 返回目录名称。
*/
function checkOrCreateDirectory($dir, $prefix, $newDirName) {
// 使用 glob() 函数获取目录中的所有子目录。
$directories = array_filter(glob($dir . '/*'), 'is_dir');
// 循环遍历所有目录。
foreach ($directories as $directory) {
// 使用 basename() 函数获取目录名称。
$directoryName = basename($directory);
// 检查目录名称是否以指定的前缀开头。
if (strpos($directoryName, $prefix) === 0) {
// 如果找到匹配的目录,立即返回目录名称。
return $directoryName;
}
}
// 如果没有找到匹配的目录,创建新目录。
$newDirectory = $dir . '/' . $prefix . $newDirName;
// 检查新目录是否已经存在,如果不存在则创建目录。
if (!file_exists($newDirectory)) {
// 使用 mkdir() 函数创建新目录。
mkdir($newDirectory, 0777, true);
}
// 返回新目录名称。
return $prefix . $newDirName;
}