2013-01-25 33 views
0

我有一個下面的代碼:爲什麼substr()不返回正確的值?

$string = "aaa<test>xxx</test>bbb"; 
echo substr($string, 9); 

結果應該是: XXX < /測試> BBB

在此期間,我收到剛: xxxbbb

什麼標籤發生了什麼?爲什麼這個功能會自動裁剪它! 如果我用[作品...替換< ...我想只在我的變量中獲得結束標記。

+2

我認爲你正在瀏覽器輸出中查看源代碼。 –

+1

換句話說,從您的瀏覽器「查看源代碼」...我敢打賭,你實際上看到「xxx bb」:) – paulsm4

+0

可能重複的[輸出html標籤](http://stackoverflow.com/questions/ 8630675/output-html-tags) – Sjoerd

回答

0

如果你在命令行中執行它,它工作正常。你正在通過瀏覽器查看你的輸出嗎?瀏覽器可能試圖解析標籤,然後忽略它。

+0

哦,是啊!真傻。通過修剪標籤的螢火蟲建議,但在真正的源代碼中顯示標籤。謝謝! – gregiolo

2

如果你看看源代碼,你也會有</test>標籤。它在瀏覽器中不可見,因爲它已經被渲染爲沒有任何東西。

提供打印此樣的結果,使用

var_dump(substr($string, 9)); 
0

它,因爲瀏覽器採取<test></test>爲HTML標籤,所以你不能看到它在瀏覽器中。

查看源代碼可以幫到你。

0

如果您在瀏覽器中的PHP文件的查看源代碼(CRTL +鍍鉻U),你可以看到

xxx</test>bbb 

另外您也可以看到它,因爲</test>是由瀏覽器解釋爲一個標籤。

相關問題