2016-01-12 55 views
0

從數據庫中用PHP顯示某些數據的問題。PHP:獲取「SSA ' s」而不是「SSA's」

如何其目前呈現 - 「SSA '」

應該如何顯示 「SSA的」

HTML Meta標籤

meta charset="UTF-8"> 

PHP代碼

$article_title = html_entity_decode(mb_convert_encoding(stripslashes($r->ArticleTitle), "HTML-ENTITIES", 'UTF-8')); 
+1

是meta標籤不完整或只是一個錯字? – Raptor

+0

聽起來好像它可能是雙編碼的,如果你查看源代碼,它是否顯示'SSA ' s'?你不需要在它上面調用stripsplashes。 – Clay

+0

如果我查看源代碼,我將獲得SSA ' s –

回答

1

您可以decode通過使用這兩種方法html_entity_decode()htmlspecialchars_decode()

基本示例:

$string = html_entity_decode("SSA's"); 
echo $string; // result SSA's 

$string = htmlspecialchars_decode("SSA's"); 
echo $string; // result SSA's 
+1

$ string = htmlspecialchars_decode(「SSA ' s」); echo $ string; –

1

刪除html_entity_decode函數,因爲您是雙重編碼HTML-實體

而作爲@ChrisBanks指出的那樣,你也不必stripslashes

+1

如果它是雙編碼的,他實際上需要再次調用'html_entity_decode' .. kind奇怪的數據問題。 – Clay

+0

可能取決於他如何迴應'$ article_title' - 沒有足夠的信息還不知道。 – Clay

+0

@ChrisBanks是的,他需要給我們反饋,如果這有幫助 – CoderPi

1

你需要再次調用html_entity_decode因爲數據被存儲爲雙編碼並取出stripslashes

$article_title = html_entity_decode(html_entity_decode(mb_convert_encoding($r->ArticleTitle, "HTML-ENTITIES", 'UTF-8'))); 

您可能想要調查數據如何作爲雙重編碼存儲在數據庫中。也許htmlentities在某處被調用兩次。

要添加到您的註釋:

你不應該存儲編碼數據的HTML除非出於某種原因,你真真正需要(有可能是你需要某些情況下)。它只在輸出和網頁上呈現,你想使用htmlentities

+2

'htmlentities'不應該在保存時調用。它應該用於輸出,但不用於保存輸入。 –

相關問題