2011-11-30 39 views
0

我有一些文字,我從數據庫中獲取這樣發送的文字:從PHP創建的HTML

$solution = $row['solution']; 

然後我有一些HTML我在PHP中使用像這樣的變量創建:

echo '<a class="delete_suggested_solution" data-problem_id="'.$problem_id.'" data-suggested_solution_id="'.$suggested_solution_id.'" href="#">Delete</a> | <a href="#" class="edit_suggested_solution" data-problem_id="'.$problem_id.'" data-suggested_solution_id="'.$suggested_solution_id.'" data-solution_text="'.$solution.'" data-solution_title="'.$solution_name.'">Edit</a>'; 

在大多數情況下,這實際上可以正常工作,但是當$解決方案中有一個鏈接,如<a href="http://SomeUrlWhatever.com">something</a>,則此HTML會在頁面顯示時中斷HTML。

有什麼可以做的,使頁面上的HTML不會被破壞我嗎?

謝謝!

回答

5

假設你想在這裏的部分something而不是鏈接,只需使用strip_tags()htmlentities()僅檢索標籤的內部文本內容,並編碼引用內部HTML中使用屬性。

$solution = htmlentities(strip_tags($row['solution']), ENT_QUOTES); 
+0

謝謝 - 試試吧。什麼時候實際顯示文本?我應該使用你建議的功能嗎?還是我不應該「按摩」任何文字? – GeekedOut

+0

@GeekedOut如果你只是顯示它,並且它起源於用戶輸入,那麼使用'htmlspecialchars()'將其編碼爲跨站點腳本攻擊。 –

+0

完全工作真的很好! – GeekedOut