在PHP的文檔中,只是提到了echo可以使用如下命令輸出多行字符串(而且其中的變量被自動替換):
PHP代碼
復制代碼 代碼如下:
echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;
上面的END結束符可以自己規定,在Phpwind,使用了“EOT”來結束。但是需要注意的是,這個END必須是在一行的開頭才能有效,這其實是Heredoc技術的一個局限性(因為heredoc可以自定義結束符,所以引入了這個問題),在下面會提到。
phpwind的模板文件一般存放在templatewind目錄下面,在BBS目錄中,使用require語句包含這個模板文件。其實這個模板文件是作為對應的PHP文件的一部分執行的,所以就不需要像PHPLib Template那樣需要進行模板解析,然後再執行的過程。
為了讓heredoc的內容能被DreamWeaver這樣的編輯器正確識別,以實現“所見即所得的”的網頁設計,需要在heredoc中增加注釋,示例文件如下:
PHP代碼
復制代碼 代碼如下:
<!--
<?php
print <<<EOT
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
<!--
$name = '淺水游';
print <<<EOT
-->
Hello,$name!
<!--
EOT
print <<<EOT
-->
</body>
</html>
<!--
EOT;
?>
-->
這樣的模板文件,其實就是一個標准的,可以執行的PHP文件。但是,這樣的PHP文件,其HTML樣式在DreamWeaver中可以正確的顯示出來,所有的PHP代碼會被看做HTML注釋,而且在輸出的時候,不會輸出出來。比如,上面的文件在DreamWeaver中,被顯示成:
PHP代碼
復制代碼 代碼如下:
Hello,$name!
這樣,在設計頁面的時候,我們就可以借助DW的可視化界面,進行一些界面的修改,美化等工作。盡管沒有實現完全的代碼和HTML的分離,但至少提供了一種輔助性的設計手段。