2013-05-28 62 views
1

我有這樣的事情:我想包括不同的頁面類型

<?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

如果'.html'和'.php'文件存在同名,會怎麼樣? – George

+1

不是一個真正的答案,但是在使用之前,您必須清理您的$ _GET ['_ page']的值。 – haim770

+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解析HTML文檔就像一個PHP文件,那麼你就需要將指令添加到您的服務器配置變化或您的服務器.htaccess文件:

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

那麼你可以使用include()include_once()require()require_once()