2010-11-19 16 views
0

everyone, 我相信這是一個功能,而不是一個錯誤,我忽略了一些明顯的東西。但我看不到它。strip_tags在遇到某些字符串內容時過早返回 - 爲什麼?

我有下面的代碼,其中包括HTML,具有一定的PHP的東西包裹在短標記充塞:

$wtf = <<<WTF 
<h1>First header</h1> 
<p class="intro">First line of text</p> 
<h2>Second header</h2> 
<p>Second line of text</p> 
<?= showImg ('image.jpg'); ?> 
<p>Third line of text</p> 
<?= showImg ('image.jpg', ''); ?> 
<p>Fourth line of text</p> 
<?= showImg ('image.jpg', '', ''); ?> 
<p>Fifth line of text</p> 
<?= showImg ('image.jpg', '', 'class="content"'); ?> 
<p>Sixth line of text</p> 
WTF; 
echo strip_tags ($wtf);[/CODE] 

此輸出以下:

First header 
First line of text 
Second header 
Second line of text 

Third line of text 

Fourth line of text 

Fifth line of text[/CODE] 

正如你所看到的第六輸出中不包含文本行。罪魁禍首是前一行,

<?= showImg ('image.jpg', '', 'class="content"'); ?> 

或者說,showImg()調用中的第三個參數。只要strip_tags()遇到這個部分,它就退出而不顯示錯誤消息並返回到目前爲止處理的文本 - 這導致我相信它以某種方式相信遇到了它應該處理的數據的末尾。

爲什麼?

順便說一句, 位本身工作正常,當我運行它,甚至完全錯誤報告產生任何語法相關的警告或錯誤,所以我相信它是有效的和允許的語法。是的,我知道整個半宗教討論是否使用短標籤是一個好主意,但現在我正在使用它,我想知道的是,爲什麼strip_tags在遇到第三個參數時過早返回showImg()調用。

谷歌,其他論壇和StackOverflow上的搜索沒有得到啓發。 任何人都可以告訴我這裏發生了什麼事嗎?謝謝 - 這將不勝感激!

// Frank

回答

0

該問題與heredoc語法無關;在這個例子中,我僅僅使用了它。問題在於將字符串數據輸入到strip_tags中,不管數據是如何獲得的,都會發生 - 從函數返回,使用通常的$ string =「fubar」語法賦值給某個變量,或者其他。

相關問題