我的任務是探索博客並獲取他們的最新帖子。現在我有腳本完成任務並將內容作爲html
存儲在數據庫中。
除了模板推理,一切正常。意思是如果內容html代碼例如有一個額外的</div>
或忘記關閉標籤,它會毀掉我的整個頁面。防止外部html干擾整個頁面模板
問:有什麼辦法給外部內容限制在一個部門,因此,如果外部代碼出現了一些問題,只是影響該div
箱而不是整個模板的模板?
Link to correct template
Link to damaged template
在此先感謝
我的任務是探索博客並獲取他們的最新帖子。現在我有腳本完成任務並將內容作爲html
存儲在數據庫中。
除了模板推理,一切正常。意思是如果內容html代碼例如有一個額外的</div>
或忘記關閉標籤,它會毀掉我的整個頁面。防止外部html干擾整個頁面模板
問:有什麼辦法給外部內容限制在一個部門,因此,如果外部代碼出現了一些問題,只是影響該div
箱而不是整個模板的模板?
Link to correct template
Link to damaged template
在此先感謝
我們可以簡化通過使用修復被廢棄的格式不正確的代碼庫。
你可以做這樣的:
<?php
$content = '<div><p>I am a bad guy, and i am gonna put an additional div at the end.</p></div></div>';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
libxml_clear_errors();
$content = trim($dom->saveHTML());
echo $content;
它將返回:
<div><p>I am a bad guy, and i am gonna put an additional div at the end.</p></div>
感謝lago它工作正常,但它不支持utf8編碼,結果是這樣的:'...ØØاÙ「ÙانØÙ...Ù」هرÙØ³ÛŒÙ‡Ø¨Ù‡Ø¯Ø§Ø¹Ø '' –
是的,我建議你看到這個問題:http://stackoverflow.com/questions/11309194/php-domdocument-failing-to-handle-utf-8-characters只是爲了不在這裏複製。 –
非常感謝你bro –
比較安全的方法,以確保它不會影響任何東西您的網頁上,據我」意識到,就是爲了iframe而已。其他任何東西都會注入到你的頁面中,所以你會冒着你提到的東西像未封閉的標籤,風格標籤覆蓋你的CSS,潛在的惡意JS等,除非你做了一些嚴肅的解析和糾錯。其中一些是通過諸如JQuery的AJAX函數來完成的,但是如果您根本無法冒任何風險,那麼我會使用一個iframe來顯示一個呈現您的內容的頁面。
您使用什麼編程語言來獲取此內容? –
PHP,如果有問題,請告訴我將其添加到我的問題中,謝謝 –
消耗RSS代替或解析和序列化html重新服務之前。 – dandavis