我有这样的事情:
<?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。
我该怎么做?
答案 0 :(得分:4)
当包含文件时,解析将退出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()
。