本文實例講述了PHP實現網頁內容html標簽補全和過濾的方法。分享給大家供大家參考,具體如下:
如果你的網頁內容的html標簽顯示不全,有些表格標簽不完整而導致頁面混亂,或者把你的內容之外的局部html頁面給包含進去了,我們可以寫個函數方法來補全html標簽以及過濾掉無用的html標簽.
php使HTML標簽自動補全,閉合,過濾函數方法一:
代碼:
function closetags($html) { preg_match_all( # (?!meta|img|br|hr|input/b)/b([a-z]+)(?: .*)?(? ![/|/ ]) #iU , $html, $result); $openedtags = $result[1]; preg_match_all( # /([a-z]+) #iU , $html, $result); $closedtags = $result[1]; $len_opened = count($openedtags); if (count($closedtags) == $len_opened) { return $html; $openedtags = array_reverse($openedtags); for ($i=0; $i $len_opened; $i++) { if (!in_array($openedtags[$i], $closedtags)) { $html .= / .$openedtags[$i]. }else { unset($closedtags[array_search($openedtags[$i], $closedtags)]); return $html;}
closetags()解析:
array_reverse() : 此函數將原數組中的元素順序翻轉,創建新的數組并返回。如果第二個參數指定為 true,則元素的鍵名保持不變,否則鍵名將丟失。
array_search() : array_search(value,array,strict),此函數與in_array()一樣在數組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。 如果第三個參數strict被指定為 true,則只有在數據類型和值都一致時才返回相應元素的鍵名。
php使HTML標簽自動補全,閉合,過濾函數方法二:
function checkhtml($html) { $html = stripslashes($html); preg_match_all( // ([^/ ]+)/ /is , $html, $ms); $searchs[] = $replaces[] = $searchs[] = $replaces[] = if($ms[1]) { $allowtags = img|font|p|table|tbody|tr|td|th|br|p|b|strong|i|u|em|span|ol|ul|li //允許的標簽 $ms[1] = array_unique($ms[1]); foreach ($ms[1] as $value) { $searchs[] = .$value. $value = shtmlspecialchars($value); $value = str_replace(array( // , /* ), array( . , /. ), $value); $value = preg_replace(array( /(javascript|script|eval|behaviour|expression)/i , /(/s+| | )on/i ), array( . , . ), $value); if(!preg_match( /^[//|/s]?($allowtags)(/s+|$)/is , $value)) { $value = $replaces[] = empty($value)? : .str_replace( , , $value). $html = str_replace($searchs, $replaces, $html); return $html;//取消HTML代碼function shtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key = $val) { $string[$key] = shtmlspecialchars($val); } else { $string = preg_replace( / ((#(/d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/ , //1 , str_replace(array( , , , ), array( , , , ), $string)); return $string;}
checkhtml($html)解析:
stripslashes():函數刪除由addslashes()函數添加的反斜杠。該函數用于清理從數據庫或HTML表單中取回的數據。
以上就是2種PHP實現網頁內容html標簽補全和過濾的方法的詳細內容,html教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答