爲什麼這段代碼PHP字符串剪短
$string = "[email protected]#$%^&*(<[email protected]";
echo $string;
只能輸出:
[email protected]#$%^&*(
這是一個PHP錯誤?
爲什麼這段代碼PHP字符串剪短
$string = "[email protected]#$%^&*(<[email protected]";
echo $string;
只能輸出:
[email protected]#$%^&*(
這是一個PHP錯誤?
因爲<是保留字符在HTML :)
使用<
和>
閱讀以瞭解更多信息
http://www.w3schools.com/HTML/html_entities.asp
您可以使用函數用htmlspecialchars轉換成這樣特殊字符
你需要做的:
echo htmlentities($string);
來顯示字符串,因爲它是在瀏覽器上。這是因爲字符串中的<
被瀏覽器解釋爲HTML標記的開始。
所以它不是PHP,但導致此行爲的瀏覽器。如果您在命令行上執行完全相同的顯示,則會看到所有字符。
如果您正在Web瀏覽器中查看輸出,則<
開始標記,通常不會顯示,但會在HTML文檔結構解析器中進行解釋。此外,雙引號字符串中的$
被內插爲其後的變量名稱;嘗試使用單引號,這不會發生。
試試這個:
$string = '[email protected]#$%^&*(<[email protected]';
echo htmlentities($string);
是動態生成的字符串? – PHP 2010-10-21 04:36:30