2016-02-26 33 views
-1

有些奇怪。我意識到我的textarea的內容並不是正確的。 內容來自file_get_contents($文件)。我的文件是用UTF-8編寫的,就像我所有的代碼一樣。 所以在nodepade ++我的代碼file_get_contents轉過來<在文本區

$txt = str_replace('<','&lt',$txt); 

但在文本區域的& LT變成<。 這真的不好! 我需要一些幫助。 THX

+1

沒關係,因爲它是HTML的工作原理。如果您想按原樣在HTML中插入文本,請至少爲內容執行'htmlspecialchars((字符串)$ text,ENT_QUOTES | ENT_SUBSTITUTE,'UTF-8')'。 – ksimka

+0

[偉大的逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

1

你必須使用htmlentities()像:

$str = "<"; echo htmlentities($str);

將輸出&lt;

編輯 您還可以使用用htmlspecialchars上述評論。

3

但在textarea的&lt;變成了<。這真的不好!

這就是&lt;的整點。它告訴瀏覽器「這是一個小於一個字符」而不是「這是一個標籤的開始」。

如果要顯示符號後跟lt;,則需要使用符號的字符引用。

&amp;表示「這是一個和號字符」而不是&,意思是「這是一個字符引用的開始」。

此:

&amp;lt; 
+0

非常好的深入解釋,它沒有回答這個問題 - 如何 - 修復 - 而是 - 很好知道。海事組織實際上非常值得指出。 – isnisn

1

我做的方式:

$content = htmlentities(get_content_files($file)); 

作品現在的罰款。

相關問題