2009-12-07 39 views
1

不可見的結束,我打印字符串如下與符號在字符串中的瀏覽器

代碼:

echo "&words=".$rs['pw']."&"; 

輸出:

&話=幫助|好

請注意,最後的&未打印。

但是,當我&然後後面添加一個空格字符它會打印如下

代碼:

echo "&words=".$rs['pw']."& "; 

輸出:

&話=幫助|好&

現在打印&

爲什麼它的發生和這種行爲的原因是什麼?

+0

適合我。似乎沒有看到是否有問題。 – mauris 2009-12-07 08:32:33

+0

我想不出會是什麼會馬上造成它,但是如果你使用單引號代替雙引號來代替&符號,它會不會打印出來? – jeffff 2009-12-07 08:34:37

+0

無法重現該錯誤。關閉。 – Amarghosh 2009-12-07 08:35:46

回答

4

如果你將其輸出到Web瀏覽器,你應該在HTML中使用&amp;「&」使用了很多逃避串來逃避&,並在URL的這樣一個特殊的字符,像<>等。

1

此代碼對我的作品

$rs['pw'] = "Help|Good"; 
echo "&words=".$rs['pw']."&"; 

輸出

&話=幫助|好&

這使我對一個問題:什麼是背景?代碼輸出在哪裏,你在網絡服務器上運行它並在瀏覽器中查看?是否沒有其他代碼可能導致此問題?

如果上下文類似於HTML輸出,那麼您需要確保它在正確的位置。在HTML&符號是特殊的,你應該轉義它。通常,這意味着翻譯成&amp;

+0

是的,我在網絡服務器上運行它,並在瀏覽器中查看它,並且沒有包含其他代碼,我只是看到了這個,所以我刪除了所有的代碼,然後測試它,仍然是同樣的問題。 – Prashant 2009-12-07 08:40:01

+0

好吧,我測試了我的網絡服務器,它仍然有效。您是否測試了我提供的確切代碼,或者您是否在文件中包含其他任何代碼?就像從數據庫中讀取數據一樣? – 2009-12-07 08:48:09

1

如果你在一個網頁輸出,然後瀏覽器會解釋&特殊。在瀏覽器中選擇「查看源代碼」,您將看到原始輸出。如果您需要將其顯示在html上下文中,則在打印之前必須先通過htmlspecialchars傳遞字符串。所以:

$rs['pw'] = "Help|Good"; 
echo htmlspecialchars("&words=".$rs['pw']."&");