0

我的网站上有这段代码:

        <form name="form" method="post">
            <input type="text" name="text_box" size="50"/>
            <input type="submit" id="search-submit" value="submit" />
        </form>
<?php
    if(isset($_POST['text_box'])) { //only do file operations when appropriate
        $a = $_POST['text_box'];
        $myFile = "t.txt";
        $fh = fopen($myFile, 'w') or die("can't open file");
        fwrite($fh, $a);
        fclose($fh);
    }
?>

我想做的事情是,当已经有一个 t.txt 时,它会创建一个 t2.txt,然后是 t3.txt 等等,所以它不会覆盖前一个 t 中的文本。文本。

4

2 回答 2

0

您可以创建一个检查文件是否存在的函数..

function checkFile($x) {


  $file = "t".$x.".txt";

  if (file_exists($file) {

    checkFile(($x+1));

  } else {

    //make a file

  }

}

编辑:

 if(isset($_POST['text_box'])) {

  $a = $_POST['text_box']; 
  $myFile = "t.txt";

  if (!file_exists($myFile)) {

    $fh = fopen($myFile, 'w') or die("can't open file"); 
    fwrite($fh, $a); 
    fclose($fh);

  } else {

    checkFile(1,$a);

  }

}

function checkFile($x,$a) {


  $file = "t".$x.".txt";

  if (file_exists($file)) {

    checkFile(($x+1),$a);

  } else {

    $fh = fopen($file, 'w') or die("can't open file"); 
    fwrite($fh, $a); 
    fclose($fh);

  }

}
于 2013-08-31T17:49:09.283 回答
0

对于非递归解决方案:

$count = 0;
while (true)
{
    if (!file_exists("t".++$count.".txt") 
    {
        write to file here...
        break;
    }
}
于 2013-08-31T17:57:15.123 回答