如何在PHP代码中嵌入HTML文件?

26

我有许多HTML文件,现在我想使用一些PHP代码逐个调用这些文件。但每当我尝试从文件夹运行用于调用这些HTML文件的PHP代码时,它都无法正常工作。

    1.html view
    2.html view
    3.html view
所以,1、2和3是HTML文件,现在点击查看应该会被引导到链接。我如何解决将HTML文件合并到PHP中的问题,以便文件将逐个显示给用户,并提供一个查看选项。每当用户单击“查看”时,用户都将查看HTML页面。
注意:我在Windows7中使用xampp服务器。
欢迎提出任何建议...

1
你的意思是要显示特定目录中的html文件吗?还是只是用include()包含它们? - jtheman
@jitheman 我想在 PHP 中嵌入 HTML 文件。 - sp2
你想在 PHP 中包含 HTML 文件。 - sp2
如果一个答案回答了你的问题,请标记它;如果没有,请告诉我们原因。 - PhoneixS
4个回答

52
使用include PHP 函数来处理每个 HTML 文件。
例如:
<?php
// do php stuff

include('fileOne.html');
include('fileTwo.html');

?>

7
如果HTML文件代表真正的静态内容,应该使用[readfile()](http://php.net/manual/en/function.readfile.php)。如果HTML文件包含PHP指令(例如`<?),include函数将尝试将它们解释为PHP代码。readfile`将只是将内容返回给浏览器。 - Kip

28

对最佳答案进行小改进:对于非 PHP 文件,你应该优先使用 readfile() 而不是 include()require()。这是因为 include()require() 会被当作 PHP 代码处理,所以如果它们包含类似 PHP 的内容(比如 <?),它们可能会产生错误。更糟糕的是,存在安全漏洞。(当然,如果您也在显示用户提供的 HTML,则仍存在潜在的安全漏洞,但至少他们不能在您的服务器上运行代码。)

如果 .html 文件实际上包含 PHP 代码,则应适当命名它们。

<?php
// do php stuff

readfile('fileOne.html');
readfile('fileTwo.html');

?>

我还需要在调用readfile之前和之后分别调用ob_start()ob_end_flush(),以避免输出损坏。 - beerbajay

2
使用 opendir 并循环遍历文件。
例子:
<?php

    $dir = "/tmp";
    $dh = opendir($dir);
    while(false !== ($filename = readdir($dh)))
    {
        echo $filename . ' <a href="' . $dir . '/' . $filename . '">view</a>';
    }
?>

1

谢谢……但问题是当我尝试在PHP中运行HTML文件时,它不起作用。因此,我尝试通过在浏览器中键入链接http://localhost/3.html来单独打开HTML文件,但仍然没有成功。 - sp2
你是说你甚至无法通过简单浏览打开文件吗? - Sam Janssens
当我尝试使用本地主机打开它时,由于我正在使用xampp服务器,它不起作用。 - sp2
如果这与您的 PHP 代码或其他内容无关,那么您应该在询问如何使页面按照您的意愿运行之前,先设置服务器以正确提供页面。 - Sam Janssens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接