如果存在,则检查是否存在多个文件

时间:2014-08-11 12:47:52

标签: php

我在尝试找出检查文件的方法时遇到问题,如果存在,请检查下一个文件,等等。

我对循环不够熟悉,所以寻求帮助。

我正在整理一小组php表单,以帮助我进行租赁检查。表格将为每个区域/项目创建一个页面,用于检查,并提供照片和问题说明(如果有)。照片的表格已经有效,而不是其中的一部分。

我匹配他们会让我使用的纸质表格。这可以节省我一小时左右的windoze电子表格,他们希望我把所有东西放进去,然后打印成PDF格式。

我的笔记本电脑/电脑是Linux。也可以节省我必须获得Win机器或平板电脑。

我还有其他一切工作。只是页面创建给了我适合。我理解一个循环应该是最容易保存的,必须为每页最多40页编写file_exists搜索。

这是我所处的片段。它所在的位置无法公开访问。

提前致谢 鲍勃

<?php

// This will be accessed for each area/item inspected

$dirpath = "/localhost/rent.inspect/";

// Get POST info from form page

$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
$a4 = $_POST["a4"];
…...
$a40 = &_POST[“a40”];

// File names we write to can be any name
$FileName1 = "$dirPath/page1.php";
$FileName2 = "$dirPath/page2.php";
$FileName3 = "$dirPath/page3.php";
$FileName4 = "$dirPath/page4.php";
…...
$FileName3 = "$dirPath/page39.php";
$FileName4 = "$dirPath/page40.php";

// Check if the first file is already created.
// If not create it and write, if is does exist check for the
// next file. Keep checking until one not created is found.
//  Should never get to the 40th file at this time.

// Check if first file has already been created.
if(file_exists("$FileNam1"))
    {
      if(file_exists("$FileNam2"))
        {
          if(file_exists("$FileNam3"))
            {
              // Check for next one.... Should never see 40
              // but keep checking to it just in case something is added
            }
            else
               {
                 $myfile = fopen("$dirPath/$filename3", "w") or die("Unable to open file!");
                 $txt = "<font size=\"2\">$a1 $a2 $a3</font></b><br /><br />";
                 fwrite($myfile, $txt);
                 fclose($myfile);
               }
        }
        else
           {
              $myfile = fopen("$dirPath/$filename2", "w") or die("Unable to open file!");
              $txt = "<font size=\"2\">$a1 $a2 $a3</font></b><br /><br />";
              fwrite($myfile, $txt);
              fclose($myfile);
           }

    }
    else
       {
         $myfile = fopen("$dirPath/$filename1", "w") or die("Unable to open file!");
         $txt = "<font size=\"2\">$a1 $a2 $a3</font></b><br /><br />";
         fwrite($myfile, $txt);
         fclose($myfile);
       }
?>

2 个答案:

答案 0 :(得分:1)

有几种方法可以解决当前的问题:

for ($i = 1; $i < 41; ++$i) {
    if (!file_exists($dirPath . '/page' . $i . '.php')) {
        // fopen, fwrite, fclose ...
        break;
    }
}

您还可以使用数组来改进变量初始化以存储变量,当更改增量整数时更是如此。

这是一个例子,并不是真正有用,但解释了你如何做:

for ($i = 0; $i < 41; ++$i) {
    $myVar['a' . $i] = $_POST['a' . $i];
}

答案 1 :(得分:0)

您可以检查文件是否存在并递增计数器

$filepath = "/somepath/";
$filename  = "FileNam"
$i=1;

$pathtocheck = $filepath + $filename  + $i;
while ( file_exists ($pathtocheck ))
{
$i++
$pathtocheck = $filepath + $filename  + $i;

}

// your code for file write will be here 
// this code will check is there file exist if not while will break otherwise it will continue till no file like FileNam1 ,FileNam2 and so on ...