2012-05-06 69 views
6

我很新的PHP,所以我懷疑一個愚蠢的錯誤。我曾四處尋找有類似問題的人,但找不到任何人。如何防止PHP的HTML輸出顯示在瀏覽器中?

所以我有一個是應該輸出從模板中的一些HTML的PHP​​文件(通過Smarty)。我沒有看到在Chrome中呈現的HTML,而是看到了HTML文本本身。下面是我使用的PHP代碼:

<?php 

header("Content-type: text/html; charset=utf-8"); 

ob_start(); 
include_once '../api/get_article.php'; 
$a_json = ob_get_clean(); 
$data = json_decode($a_json, true); 

require('./libs/Smarty.class.php'); 

$smarty = new Smarty(); 
$smarty->template_dir = './templates/'; 
$smarty->compile_dir = './templates_c'; 

$smarty->assign("title_text",$data['title']); 

$smarty->display('content.tpl'); 

?> 

我認爲這是有編碼的問題,但我確信,一切使用UTF-8(即,MYSQL,HTTP頭,和模板文件)。它還能是什麼?

+0

你可以轉儲你得到從腳本後面的頭什麼變化?也許智者也設置頭的地方,是矛盾 – Garuda

+0

你看到的只是實際的HTML標籤,或者是正在顯示的PHP代碼,即。 HTML包含在PHP標籤中。愚蠢的問題,但是是名爲* .php的文件,並在服務器上運行php? – adeneo

+0

@Garuda我該怎麼做? – Hassan

回答

2

Smarty的或get_article.php腳本必須在某些點設置你的內容類型頭。嘗試移動線

header("Content-type: text/html; charset=utf-8"); 

一路下來到正上方的display功能,以確保它會覆蓋早期階段作出

+2

+1有很好的答案! – adeneo

相關問題