我想要包含不同的页面类型

时间:2013-05-28 08:55:53

标签: php

我有这样的事情:

<?php   $pages = array('home', 'docs', 'app', 'userg','appviz');
            if (!isset($_GET['_page']) || !in_array($_GET['_page'], $pages))
                list($_page) = $pages;
            else
                $_page = $_GET['_page'];

            include "pages/{$_page}.html";
        ?>

我想包含"pages/{$_page}.php"和.html。 我该怎么做?

1 个答案:

答案 0 :(得分:4)

根据PHP manual for include()

  

当包含文件时,解析将退出PHP模式并进入HTML   模式在目标文件的开头,然后再次恢复   结束。出于这个原因,目标文件中的任何代码都应该是   作为PHP代码执行必须包含在有效的PHP开始和结束中   标签

由于include()需要PHP文件,因此您应该查看file_get_contents()注意:PHP 5之后的行为发生了变化。

$target_file = $_SERVER['DOCUMENT_ROOT']."/pages/$_page.html";
$html_file = file_get_contents($target_file, true);
echo $html_file;

如果您正在尝试让PHP解析像PHP文件这样的HTML文档,那么您需要将该指令添加到服务器配置或服务器.htaccess文件中:

AddType application/x-httpd-php .html .htm

然后您可以使用include()include_once()require()require_once()