2012-02-22 54 views
0

我在我的數據庫中存儲HTML值,然後在我的網站上輸出它。
有一個HTML值「截斷」HTML(我無法控制HTML,因爲我在不同的網站上獲得它),也就是說,它看起來像這樣從數據庫獲取「截斷」HTML值然後在網站上輸出

<a href="http://site.com 

當我輸出這在我的網站我有,因爲低於一個問題「切斷」 HTML,HTML等都會受到影響,所以它看起來像這樣(例如)

<a href="http://site.com <input type="button" value="test" /> 

我這裏的問題是,如何知道HTML是否被切斷,然後如果它被切斷,我想通過簡寫關閉它關閉它與" or />

+2

你可以發佈你的代碼?到底發生了什麼。當你閱讀你的帖子 – 2012-02-22 13:37:51

+0

時,你完全困惑的是什麼?感覺就像我解釋得很好。 :) – PinoyStackOverflower 2012-02-22 13:39:28

+2

你做了什麼,你想達到什麼 – 2012-02-22 13:41:53

回答

1

查看它是否被切斷的一種方法是查看<的數量是否等於>的數量。所以像這樣:

<?php 
list($len, $a, $b) = array(strlen($html), 0, 0); 
for ($i = 0; $i < $len; $char = $html[$i++]) { 
    if ($char == '<') 
     $a++; 
    if ($char == '>') 
     $b++; 
} 
$broken = true; 
if ($a == $b) 
    $broken = false; 
+0

哦,小子!謝天謝地,有人理解我的問題,因爲感覺幾乎每個人都沒有,甚至有人給了我一個投票。 你的回答對我來說是一個很好的開端。 謝謝!不勝感激! :) – PinoyStackOverflower 2012-02-22 14:00:02

+1

不客氣:)很高興我幫了忙。 – Sietse 2012-02-22 14:04:36

1

如何將它們存儲在數據庫中?它們是否也在數據庫中被切斷?如果是,那麼確保通過mysql_real_escape_string()將它們存儲在數據庫中,因爲它似乎因爲以某種方式被插入到數據庫中而破壞了HTML。

+0

這個問題不是關於如何將它們存儲在數據庫中。它是關於從數據庫輸出截斷html值,所以是的,它們也在數據庫中被截斷,就像


                            
    PinoyStackOverflower
                                2012-02-22 13:42:05
                            
                        
                    

+0

如果問題是由於引號導致的查詢被破壞,他會知道(該查詢將具有..broke)。 Mysql_real_escape_string()與html無關,否則 – 2012-02-22 13:42:19

+1

然後你的問題不在輸出或輸入到數據庫中,而是你從哪裏獲得HTML,在這種情況下,你必須驗證遠遠多於破碎的標記。您需要修復而不是輸出。 – kingmaple 2012-02-22 13:44:41