使用php

时间:2017-02-10 19:21:29

标签: php

我正在处理一个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语句的一部分。

2 个答案:

答案 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;
}