使用PHP回显多个html文件的内容

时间:2016-01-06 20:34:37

标签: php html


我尝试回显特定目录中每个html文件的全部内容。

我知道我可以使用{{1}}来读取和返回特定文件的内容。如何在特定目录中的每个html文件中使用它?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用file_get_contents()存储文件的内容。

此功能(受this answer启发)将返回一个二维数组,其中$key => $value对由$filename => $file_content表示,如果无法打开目录,则返回false。 / p>

<?php
function read_htmlfiles_in_dir($dir)
{
    $files = array();
    if ($handle = opendir('.')) {
        while (false !== ($file = readdir($handle)))
        {
            if ($file != "." && $file != ".." && strtolower(substr($file, strrpos($file, '.') + 1)) == 'html')
            {
                $files[$file] = file_get_contents($file);
            }
        }
        closedir($handle);
        return ($files);
    }
    else
    {
        return (false);
    }
}
?>

如果您需要回显curent目录中的所有html文件,那么可以将其包含在此处,例如:

<?php
if ($htmlfiles = read_htmlfiles_in_dir('.'))
{
    foreach($htmlfiles as $file)
    {
        echo $file;
    }
}
?>

你只需要一点调试

print_r($htmlfiles);

并获得类似

的内容
Array
(
    [filename.html] => <div>Some HTML Code</div>
    [otherfile.html] => <span>Some <b>other</b> HTML code</span>

)

然而,您将有最后一件事要考虑:HTML文件必须显示的顺序。

答案 1 :(得分:0)

或者你可以做得更简单..

$FILES = scandir("/complete/path/to/directory");
foreach($FILES as $FILE)
    if($FILE == "." || $FILE == "..") continue;
    else include($FILE);

如果它是当前目录..

$FILES = scandir(realpath(dirname(__FILE__)));
foreach($FILES as $FILE)
        if($FILE == "." || $FILE == ".." || $FILE ==  __FILE__) continue;
        else include($FILE);