不可見的結束,我打印字符串如下與符號在字符串中的瀏覽器
代碼:
echo "&words=".$rs['pw']."&";
輸出:
&話=幫助|好
請注意,最後的&
未打印。
但是,當我&
然後後面添加一個空格字符它會打印如下
代碼:
echo "&words=".$rs['pw']."& ";
輸出:
&話=幫助|好&
現在打印&
。
爲什麼它的發生和這種行爲的原因是什麼?
不可見的結束,我打印字符串如下與符號在字符串中的瀏覽器
代碼:
echo "&words=".$rs['pw']."&";
輸出:
&話=幫助|好
請注意,最後的&
未打印。
但是,當我&
然後後面添加一個空格字符它會打印如下
代碼:
echo "&words=".$rs['pw']."& ";
輸出:
&話=幫助|好&
現在打印&
。
爲什麼它的發生和這種行爲的原因是什麼?
如果你將其輸出到Web瀏覽器,你應該在HTML中使用&
「&」使用了很多逃避串來逃避&,並在URL的這樣一個特殊的字符,像<>等。
此代碼對我的作品
$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";
輸出
&話=幫助|好&
這使我對一個問題:什麼是背景?代碼輸出在哪裏,你在網絡服務器上運行它並在瀏覽器中查看?是否沒有其他代碼可能導致此問題?
如果上下文類似於HTML輸出,那麼您需要確保它在正確的位置。在HTML&符號是特殊的,你應該轉義它。通常,這意味着翻譯成&
是的,我在網絡服務器上運行它,並在瀏覽器中查看它,並且沒有包含其他代碼,我只是看到了這個,所以我刪除了所有的代碼,然後測試它,仍然是同樣的問題。 – Prashant 2009-12-07 08:40:01
好吧,我測試了我的網絡服務器,它仍然有效。您是否測試了我提供的確切代碼,或者您是否在文件中包含其他任何代碼?就像從數據庫中讀取數據一樣? – 2009-12-07 08:48:09
如果你在一個網頁輸出,然後瀏覽器會解釋&
特殊。在瀏覽器中選擇「查看源代碼」,您將看到原始輸出。如果您需要將其顯示在html上下文中,則在打印之前必須先通過htmlspecialchars
傳遞字符串。所以:
$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");
適合我。似乎沒有看到是否有問題。 – mauris 2009-12-07 08:32:33
我想不出會是什麼會馬上造成它,但是如果你使用單引號代替雙引號來代替&符號,它會不會打印出來? – jeffff 2009-12-07 08:34:37
無法重現該錯誤。關閉。 – Amarghosh 2009-12-07 08:35:46