我正在处理一个php文件,我想创建一个或多个名称范围从1到999或更多的目录。我正在使用以下代码创建所有目录中的第一个:
<?php
$id = '001';
mkdir($id)
?>
我想要成功的是使用字符串或整数作为名称将下一个可用数字(即002,003,004,005等)作为名称自动创建新目录。但是,我真的卡住了,我尝试使用:
<?php
$id = 001;
if (file_exists($id)) {
$id = $id + 1;
mkdir($id);
}
?>
..但它不起作用。有什么想法吗?
我忘了提到上面的代码是同一个php代码中if语句的一部分。
答案 0 :(得分:0)
根据您的使用情况,有几种方法可以做到这一点。此功能可能适合您:
<?PHP
function makedir($id){
if(file_exists($id)){
$id++;
makedir($id);
}else{
mkdir($id);
return true;
}
}
makedir(1);
这种增加目录名称的解决方案会在一段时间后变得难看;你应该找到一个更好的解决方案来解决你的问题。
答案 1 :(得分:-1)
你可以这样做:
// Loop through all numbers.
for ($i = 1; $i <= 999; $i++) {
// Get the formatted dir name (prepending 0s)
$dir = sprintf('%03d', $i);
// If the dir doesn't exist, create it.
if (!file_exists($dir)) {
mkdir($dir);
}
}
编辑:上面假设您想要制作所有999个目录。您可以执行以下操作,只需附加下一个可用的号码:
function createDir($dir) {
$newDir = $dir;
$num = 1;
while (file_exists($newDir)) {
$newDir = $dir.sprintf('%03d', $num++);
}
return $newDir;
}