2011-05-01 23 views
1

我想要做的輸出是這樣的:在幾行回顯,轉義變量?

echo <<<END 
$monkey 
END; 

,其中輸出是「$猴子」(即所有文字多達END被視爲普通的文本,而不是解析)

我想避免轉義或修改任何文本直到END。 是可能的嗎?

例如最好我想要做這樣的事情

echo ' 
loads of lines here 
'; 
+1

你意識到你可以在字符串中嵌入換行符,所以你的第二個代碼片段將工作? – 2011-05-01 16:07:42

+0

不是你所要求的,而是'print file_get_contents(「loads_of_lines.txt」)'是另一種選擇,並且在某些設置中可能更易於維護。 – mario 2011-05-01 16:11:02

+0

作爲奧利查爾斯沃思說,http://codepad.org/nbxd9oKk – 2011-05-01 16:11:05

回答

3

在PHP 5.3中,可以使用nowdoc

$var = <<<'END' 
$monkey 
END; 

否則,你永遠不用擔心逃避的東西(所有的轉義碼和美元登錄heredoc,雙引號字符串和反斜槓以及單引號字符串中的單個代碼相同加雙引號)。

1

即使使用heredoc或nowdoc,如果在要顯示的文本中有文字END;,仍然會出現問題。唯一的萬無一失的方法是將文字文​​本放在一個單獨的文件中,將其讀入一個變量(例如file_get_contents),然後回顯該變量。

+0

標識符可以是任何東西,所以它不是一個實際的問題。他甚至可以指定一個幾乎沒有出現在任何地方的隨機字符串。 – Artefacto 2011-05-01 16:13:41

+0

@藝術:我意識到這一點。 – 2011-05-01 16:14:15

+0

@Downvoter:爲什麼? – 2011-05-01 16:23:23