【问题标题】:PHP - Read number of dirs and then require for each a specified file namePHP - 读取目录数量,然后要求每个指定的文件名
【发布时间】:2010-03-26 14:10:33
【问题描述】:

我想写一个小脚本,但我在 php 中比较n00b,所以如果可以的话,请帮助我:)

我希望脚本做的是:

  1. 我有“index.php”。
  2. 我希望“index.php”从已知文件夹中读取子目录,比如说“templates/”
  3. 每个子目录都将包含一个名为“content.html”的文件。
  4. 然后索引将使用 require() 函数为每个现有子目录加载“content.html”。

非常感谢您的帮助!

【问题讨论】:

    标签: php directory require


    【解决方案1】:

    RecursiveDirectoryIterator 遍历指定目录和所有子目录,并将所有文件系统项作为SplFileInfo 对象返回:

    $iterator = new RecursiveIteratorIterator(
                    new RecursiveDirectoryIterator($yourFilePath));
    
    foreach($iterator as $file) {
        if($file->getFilename() === 'content.html') {
            $file->openFile()->fpassthru();
            // or 
            include $file->getRealpath();
        }
    }
    

    当您想通过 PHP 解析器运行 .html 文件时,请使用 include,例如当它包含需要评估的 PHP 代码时。如果没有,请使用 fpassthru,因为这应该会快一点。也可以使用readfile($file->getRealpath())

    【讨论】:

      【解决方案2】:

      你想达到什么目的?

      您想要 index.php 中不同文件的内容还是想要生成指向这些文件的链接?

      因为如果你想聚合内容,这种方法是不够的,因为你会得到一个语法无效的 html 文件,因为你只是将 html 文件的内容连接起来。

      您将需要对内容进行一些额外的解析以避免这种情况。

      干杯,

      达维特

      【讨论】:

      • 每个子目录都是一个产品,所以我希望索引在每次加载时检查该文件夹中是否有新内容。每个子目录中的“content.html”文件或“content.php”文件将包含一些用于文本/图像的 html 代码(该产品的描述)。所有产品都将显示在第一页的列中(index.php)我知道有更好的方法和商店脚本,但这是我的方式:)
      • 我只是想知道 content.html 是否是一个成熟的 html 文件,但如果它只包含 html 或 php 的片段,那么连接会产生你想要的结果。
      • 仅片段(表格或 div)
      猜你喜欢
      • 1970-01-01
      • 2018-03-11
      • 2012-07-03
      • 2015-05-28
      • 2019-02-07
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      相关资源
      最近更新 更多