Php 创建一个继续到下一个号码的目录?

Php 创建一个继续到下一个号码的目录?,php,Php,我试图让这个按钮创建一个目录“item1”,当再次单击该按钮时,它会创建“item2”等等,次数不限 到目前为止,我已经为html提供了以下内容(基本): 和我的php代码: <?php define("PATH", "/usr/www/tfgwebsite/public/misc/phptest"); $number = 1; $_POST["dirname"] = "item" . $number; $test = "set"; if (isset($test)) {

我试图让这个按钮创建一个目录“item1”,当再次单击该按钮时,它会创建“item2”等等,次数不限

到目前为止,我已经为html提供了以下内容(基本):


和我的php代码:

<?php
define("PATH", "/usr/www/tfgwebsite/public/misc/phptest");

$number = 1;
$_POST["dirname"] = "item" . $number;
$test = "set";

if (isset($test)) {
    $dir = $_POST['dirname'];
}

$targetfilename = PATH . '/' . $dir;

if (!is_file($dir) && !is_dir($dir)) {
    mkdir($dir);
    chmod($targetfilename, 0777);
    echo "Created " . $dir . " successfully!";
}
else
{
    echo "File already exists!";
}?>

我已经尝试了大约80种不同的for循环和while语句组合,试图使$number增加1,如果它找到一个现有目录,所有这些语句最终都会创建item1,然后在我身上无限循环

任何帮助都将不胜感激,我将发布我试图向您展示的所有我确实尝试过的东西,但它们太可怕了,我甚至无法忍受展示如此可怕的代码

编辑:

我这样做了,它确实起作用了。但是我的网络服务器中确实有这个笨拙的.txt,只是在计算,哈哈


如果有更好的方法,请分享。

请查看此代码。这对我很有用

--更新代码--


可能是文件_exists()应该对您有所帮助。请将数字存储在文件或其他任何位置,并在每次创建时增加该数字directory@kamalpal如何“存储”它?我不能把它存储在某个变量中吗?以某种方式一定有什么我错过了。我应该能够增加变量,不?变量会在脚本完成后丢失值,因为我知道每次单击都需要创建一个目录,因此必须将最新的目录号存储在不会丢失值的位置。嗯,您的第二个sol看起来符合逻辑,但您需要跟踪它,您需要确保每个步骤都按预期工作,例如,使
createfile.php
页面仅尝试读取文件,增加值,然后再次写入文件,然后检查文件,如果确定,则添加下一步(创建文件夹)。完成后,当您不确定部分代码是否没有发挥作用时,立即添加所有代码将把您带入一个迷宫,记住,分而治之;)向下投票,因为仅仅给出一大块代码是没有帮助的。解释OP做错了什么,或者至少解释一下你在做什么。@xbonez你刚刚否决了这个ans,没有执行..哇!!!。。。请检查代码if条件,然后是else条件,然后是final else条件…第一个条件是该文件夹是否包含任何子文件夹。我们也可以通过一些更改避免第二个if条件,但向下投票是个坏主意。恐怕xbonez可能是对的。我不知道你的代码里发生了什么,我显然是个业余爱好者,没有任何解释让我感到困惑。@DanDaMan我解释过了,请看一看look@abd:这并不是说我怀疑你的代码不起作用。但是,SO应该不仅仅是一个“为我编写代码”的垃圾堆。如果你用代码补充你的答案,那就太好了,但是你的答案的主要内容需要向海报解释他做错了什么,以及他应该如何改正。
<?php
define("PATH", "/usr/www/tfgwebsite/public/misc/phptest");

$number = 1;
$_POST["dirname"] = "item" . $number;
$test = "set";

if (isset($test)) {
    $dir = $_POST['dirname'];
}

$targetfilename = PATH . '/' . $dir;

if (!is_file($dir) && !is_dir($dir)) {
    mkdir($dir);
    chmod($targetfilename, 0777);
    echo "Created " . $dir . " successfully!";
}
else
{
    echo "File already exists!";
}?>
<?php
define("PATH", "/usr/www/tfgwebsite/public/misc/phptest");

$items = fopen("items.txt", "r") or die("Unable to open file!");
$number = fgets($items);
fclose($items);

$_POST["dirname"] = "item" . $number;
$test = "set";

if (isset($test)) {
    $dir = $_POST['dirname'];
}

$targetfilename = PATH . '/' . $dir;

if (!is_file($dir) && !is_dir($dir)) {
    mkdir($dir);
    chmod($targetfilename, 0777);
    echo "Created " . $dir . " successfully!";
    $create = fopen("items.txt", "w+") or die("Unable to open file!");
    fwrite($create, $number + 1);
    fclose($create);
}
else
{
    echo "File already exists!";
}
<?php
if (!empty($_POST)) { //print_r($_POST);die;
    define("PATH", $_SERVER['DOCUMENT_ROOT'] . "/create_folder/");

    $files2 = array_diff(scandir($_SERVER['DOCUMENT_ROOT'] . "/create_folder/"), array('..', '.', '.svn'));
    $count = count($files2);
    $count_plus = $count + 1;
    if (!is_file(PATH . "item$count_plus") && !is_dir(PATH . "item$count_plus")) {
        mkdir(PATH . "item$count_plus");
        chmod(PATH . "item$count_plus", 0777);
        echo "Created item" . $count_plus . " successfully!";
    } else {

        echo "File already exists!";
    }
}
?>
<!DOCTYPE html>
<html>  
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    </head>
    <body>
        <form id="create_item" action="" method="POST" >
            <input id="submit_button" type="submit" name ="create_folder" value="Create Item!" />
        </form>     
    </body>
</html> 
It will define PATH constant for location where folders are getting created.

Then it will scan that folder

Then it will check if next folder is present in that directory OR not.

if not then it will create that folder otherwise will give an error.