2015-10-05 57 views
0

一個簡單的代碼示例<?echo '<?this text is ignored?> this text is shown';?>只寫了「顯示此文本」,忽略php標籤中的文本,儘管它是一個字符串。由於PHP的短標籤PHP字符串省略文本

不幸的是,我在規範中找不到任何解釋,所以,如何處理?我知道,我們可以逃避特殊符號,一切都順利,但是這樣的PHP行爲有什麼問題?

PHP 5.3,本地服務器。

此行爲可防止從zip文件內部的php文件通過zip_entry_read()讀取行,然後使用eval()

+1

與php無關,但與你的瀏覽器如何解釋代碼有關。查看實際的源代碼 – PeeHaa

+1

在瀏覽器中執行「查看源代碼」,否則會發現....或使用'<?echo htmlentities('<?此文本被忽略?>顯示此文本'); ?>' –

+1

哦,那是真的。對我來說太愚蠢了,天哪 –

回答

1

PHP不會忽略內部文本<? .. ?>,您的瀏覽器忽略它。

就你的瀏覽器而言,你放在角括號內的任何東西都是HTML標籤。

我不知道你期待什麼,但如果你想要的標籤瀏覽器中顯示你必須更換&lt;

開幕<如果你真的想執行內PHP中的代碼標籤,您可以繼續前進,並刪除內部標籤,因爲它們是多餘的。