Php - 如何为此代码创建一个数组

时间:2009-10-14 14:51:11

标签: php

我想对我的文件进行验证。我的文件示例为header.phpfooter.phpsidebar.phpinfo.php等。因此,如果错过了其中一些文件,则会显示错误。

$required = 'header.php';
if (!file_exists($required)) {
  die('Please upload files properly');
}

如何用简单代码验证所有文件?

4 个答案:

答案 0 :(得分:1)

$files = array("header.php", "footer.php", "sidebar.php");
foreach($files as $required){
  if (!file_exists($required)) {
    die('Please upload files properly');
  }
}

答案 1 :(得分:1)

使用您已有的代码,您可以使用PHP(优秀)foreach语句:

$required = array("header.php", "footer.php", "sidebar.php", "info.php");
foreach($required as $req) {
    if(file_exists($req)) continue;
    die("Please upload files properly.");
}

话虽如此,这听起来像是requirerequire_once个关键字:

require "header.php";        /* Will puke if header.php is missing. */

答案 2 :(得分:1)

只需使用foreach来迭代数组:

$required = array('header.php', 'footer.php', 'sidebar.php', 'info.php');
foreach ($required as $required) {
    if (!file_exists($required)) {
        die('Please upload files properly');
    }
}

编辑我使用与数组本身相同的变量并不是错误。 foreach使用数组的内部副本而不是数组本身:

  

注意:除非引用了数组,否则 foreach 将在指定数组的副本上运行,而不是数组本身。 foreach 对数组指针有一些副作用。不要在foreach期间或之后依赖数组指针而不重置它。

虽然$required中的原始数组被第一次迭代覆盖,但内部数组最初传递给foreach。这可能不是最好的做法,因为在不知道时会有点混乱。但它绝对有效。

答案 3 :(得分:1)

您自己的应用程序的验证是否真的有意义?无论如何,如果你真的想这样做:

  1. 构建所有文件的数组。
  2. 使用foreach迭代数组中的所有文件。
  3. 对循环中的每个文件运行检查。