2014-12-13 67 views
-1

嗨,我正在實現一個評論系統。當再次在我的視圖中顯示我的評論和文章時,我想使用htmlspecialchars,但我希望我的超鏈接可以點擊。想要使用htmlspecialchars,但超鏈接必須是可視的 - PHP,HTML

示例註釋:

我最喜歡的網站是< www.facebook.com>。

然後我在後臺我改變這樣的:

我最喜歡的網站是< <a href="www.facebook.com">www.facebook.com</a>>

,並保存在數據庫中。

現在我展示鑑於此評論,如果我使用的回聲htmlspecialchars($message)消息將

我最喜歡的網站是< <a href="www.facebook.com">www.facebook.com</a>>

但我想我的鏈接是一個超鏈接,但其他部分應該使用htmlspecailchars

我可以檢查字符串中的超鏈接,並執行一些複雜的邏輯來添加htmlspecailchars只有其他部分。我有兩個問題。

  1. 將超鏈接添加到數據庫或在查看數據時應創建超鏈接是一種好的做法嗎?

2.什麼是更好的方式使用htmlspecialchars只有超鏈接以外的字符串。

想僅僅排除了<a>標籤

htmlentities功能只見可選character-set參數,指定字符集要使用的字符串。有什麼像排除字符集。

在此先感謝

+0

如果你想回聲如下:然後簡單地echo $ message其中$ message ='<www.facebook.com>'; – 2014-12-13 07:41:25

+0

評論是由外部用戶輸入的,所以他們可以輸入任何東西,所以出於安全原因我想這樣做,這只是一個例子 – 2014-12-13 07:43:29

回答

0

你的數據庫應該存儲原始數據(消毒肯定,但不改變)。因此,轉換鏈接→鏈接應該在視圖時間之前發生,而不是在數據庫存儲之前發生。

至於爲什麼你應該存儲原始數據:沒有任何事情告訴你有一天你不會在HTML以外的其他東西中使用你的數據,因此格式化將不得不被清除以用於其他用途。

綜上所述:

  • ,可以儲存原料(消毒用於SQL)
  • 找回原
  • 清理HTML
  • 變換鏈接
  • 顯示