2011-03-29 47 views
0

我插入一些文本包含[(只有一個括號,不包括]),然後當我使用MySQL查詢到前面的PHP頁面時,[會損壞HTML css格式。PHP - 爲什麼MySQL的文本包含`[`會損壞HTML CSS格式

$result = mysql_query("SELECT * FROM mytable Order By date DESC LIMIT 10"); 
while ($row = mysql_fetch_array($result)) 
{ 
echo '<div class="text">'.$row['content'].'</div>'; 
} 

我注意到了html輸出的源代碼。在[文本之前

,在HTML是正確的,

<div class="text">this is a test, no parentheses</div> 

但經過[,則HTML看起來

<div class=&#8221;text&#8221;>this is a test, contain [ </div> 

多少符號會導致這樣的錯誤? 以及如何避免?謝謝。

+0

'['只應該在屬性中生效,而不是在元素的內容中,html錯誤是什麼? – RobertPitt 2011-03-29 17:15:44

+0

'”'表示某件事會將引號改爲智能引號或類似的東西。 – 2011-03-29 17:22:11

+0

我認爲很明顯,您沒有向我們展示所有相關的代碼,因爲這不應該基於您向我們展示的內容而發生。 – 2011-03-29 17:29:04

回答

3

您是否在任何地方使用htmlentitieshtmlspecialchars?作爲一個旁註,你應該做這樣的事情還有:

echo '<div class="text">'.htmlspecialchars($row['content'], ENT_QUOTES).'</div>'; 
+0

不,我沒有。現在試試吧...... – cj333 2011-03-29 17:29:38

+0

謝謝,@Joe Philllips,我都厭倦了,沒有效果。也許我應該在插入前做點什麼? – cj333 2011-03-29 17:41:48

+0

嗨,我註冊一個主機後,試了一下,沒有問題。所以我從我自己的電腦中刪除我的php和apache並重新安裝它們,問題就消失了。可能是我的系統故障造成的。一個奇怪的問題......感謝所有人。 – cj333 2011-03-30 19:09:13

0

正如robertpitt說,性格[標籤作爲內部文本值應不損壞HTML。 你必須檢查別的東西。

0

我注意到你的div類在你的第二個例子中正在顯示&#8221;text&#82212;
&#8221;是引號的html實體代碼。如果你的CSS壞了,我猜這是因爲瀏覽器沒有將你的類聲明解釋爲"text",因此沒有應用這些規則。也許它不是[,但其他一些因素會用你的css的html實體取代你的引號。

+0

當我從myphpadmin移動剛纔的''時,html css顯示正確。我很疑惑。 – cj333 2011-03-29 17:43:50

+0

當你刪除''',div class name是否顯示帶或不帶引號? – kevtrout 2011-03-29 18:49:45

相關問題