2011-12-24 74 views
3

下面是代碼:PHP - XHTML LINEBREAKS <br />

if (isset($_POST['state']) && count($err) > 0) { 
    echo "<p>"; 
    array_walk($err, create_function('&$value', 'printf("$value<br />");')); 
    echo "<br /><a href=\"/#contacto\">Volver</a></p>"; 
} 

問題:

代碼正常工作,但它堅持打印換行符像<br>。拒絕像<br />那樣打印它們,好像它不喜歡XHTML準則。 正確打印任何其他正斜槓/(在關閉標籤中)。

我已經嘗試nl2br()第二個參數設置爲'true'。我試着用反斜槓\(然後反斜槓被打印,但不是正斜槓)轉義它們。我嘗試用另一個正斜槓(好奇地它沒有評論該行的其餘部分)逃脫它們,並通過echo,printftrim傳遞字符串無濟於事。

誰能告訴我發生了什麼事?

+0

你不確定那是你的瀏覽器去掉'/'嗎? – RageZ 2011-12-24 13:40:52

+3

你在哪裏看到換行符是'
'而不是'
'?在瀏覽器的查看源代碼或Firebug中,或...? – 2011-12-24 13:46:27

+1

好吧......現在我覺得很愚蠢......我注意到,源代碼視圖是應該在IE,FF和Chrome上。 Firebug和Chrome控制檯是吃斜線的。發現有罪。 – 2011-12-24 14:11:30

回答

2

爲了簡化你的邏輯,你可以只使用:

echo implode('<br />', $err); 

如果你已經嘗試了所有這些技術都無濟於事,你肯定有一個問題與您的代碼?也許你應該嘗試使用其他瀏覽器或者甚至使用一些命令行工具(如curl)來查看你的代碼:

curl http://www.example.com/ 
+0

我沒有想到'echo implode'!謝謝!順便說一句,根據上面的評論,Firebug和Chrome導致麻煩... – 2011-12-24 14:22:18