2012-05-10 34 views
0

什麼是使用PHP和HTML呈現頁面的最有效方式?呈現HTML和PHP的最有效方法

串聯

$html = '<span><img src="page.png" alt="page" />'.$variable1.'</span>'; 
echo $html 

更換變量

$html = "<span><img src=\"page.png\" alt=\"page\" />{$variable1}</span>"; 
echo $html; 

內嵌PHP標籤 - 這似乎並不哪怕是最有效的大規模

<span><img src="page.png" alt="page" /><?php echo $variable1; ?></span> 

請實用假設您生成了整個頁面。我使用上面的片段作爲每種方法的示例。

謝謝!

+0

還有'回聲 'page',$變量1, '';'的方式(注意','而不是'。 'concatenation)','只是一個接一個地輸出。 – tigrang

回答

1

這實際上取決於你試圖達到的目標。

如果只是渲染一個簡單的頁面,最有效的方法是使用單引號(基於基準)連接代碼(即使差異不是那麼重要)。

但我猜你正在建設一個網站,你會廣泛使用html + php。如果是這樣,我建議你使用模板引擎,或者直接使用PHP。

當然,使用任何模板引擎都會降低性能,但它會提高項目的可讀性並以更好的方式構建它。 「失去表現」/「可讀性 - 保持」的比率是值得的。你應該去爭取它(再次,如果你打算渲染許多HTML頁面)。請參閱MVC Design Pattern

現在,對於模板引擎,我建議您直接使用PHP,因爲它首先是爲此目的而開發的。你可以找到許多模板引擎,最終在模板中使用php,同樣適用於框架。例如,如果你看一下Code Igniter,你會發現模板是由php構成的。

現在,出於安全原因,在您的模板中使用PHP很大程度上取決於誰將編輯模板。如果只有你或者你有完全信任的人,你應該去做。如果你的用戶能夠編輯模板(出於各種原因),那麼我絕對應該避免它,因爲他們可以在你的服務器上做任何他們想做的事情,包括點擊數據庫,查看所有文件(甚至是配置文件)等等。

+0

什麼是模板引擎? –

+0

我不確定您是否理解全局定義,或者您想要更精確的定義。你應該參考維基百科定義的定義,http://en.wikipedia.org/wiki/Template_processor和http://en.wikipedia.org/wiki/Template_engine_(web) –

+0

好吧,我知道模板引擎意味着一個以不同方式表示數據或數據模型。但就PHP而言,我們可以說模板引擎是什麼?它是MVC模式還是其他內容中的「視圖」?\ –

0

最好的方法是:可讀性和可維護性。這就是說我可能會使用模板引擎(如twigsmarty),但如果不可用,我肯定會使用內聯php標籤(如在Zend Framework視圖和Symfony成功模板中的視圖中使用的那樣)。

如果我不得不在php內部生成html,我會去尋找sprinft('<img src="%s">", $src');或concatination。

我真的很不喜歡使用{$var}$html = "$var"

+0

請參閱http://www.phpbench.com/ ...,具體取決於頁面大小,並且無論如何都會對其進行微優化。 – djot

+0

這就是爲什麼我投票表現,但爲'可讀性和可維護性'。作爲我的帖子的開始狀態。 –

0

沒有足夠的性能差異來處理或測量。做最可讀的事情。在我的(多)PHP應用程序我大多使用嵌入PHP替代短標籤:

<p><?= $text ?></p> 
+1

由於某些主機/服務器將其禁用,所以不鼓勵使用短路標記。 – tigrang

+0

無論服務器設置如何,短標籤始終可用於PHP 5.4。 http://www.php.net/ChangeLog-5.php#5.4.0 –

+0

如果你控制自己的網絡服務器及其設置,這不是一個問題。如果您的ISP由於某種原因禁用了短標籤(我從來沒有見過這種標籤),您可以切換ISP或使用文本編輯器查找/替換短標籤以將其變爲長標籤。短標籤實際上不是問題。 – gregjor