本篇內(nèi)容主要講解“php怎么實現(xiàn)html標簽自動閉合”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php怎么實現(xiàn)html標簽自動閉合”吧!

10年積累的成都網(wǎng)站設計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有黎城免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
實現(xiàn)代碼:
/**
* @Description: html 自動閉合
* @param string $html html
* @param int $len 閉合搜尋附近的標簽次數(shù) 默認3個 最小1
* @return: string
*/
public function subHtml($html,$len = 3)
{
#去除注釋
#$html = preg_replace('~<!--(?:.|\r|\n)+?-->','',$html);
$result = '';
$tagStack = array();
$contents = preg_split('~(<!--(?:.|\r|\n)*?-->|<[\s\r\n]*script(?:.|\r|\n)+?<[\s\r\n]*/[\s\r\n]*script[\s\r\n]*>|<[\s\r\n]*/?[\s\r\n]*[a-z0-9]+(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)*[^\'">]*>)~si', $html, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
foreach ($contents as $kkk => $tag) {
if ($tag == "" || $kkk-1 >= 0 && ($tag == "'" || $tag == '"') && preg_match('~^<[\s\r\n]*([a-z0-9]+)[\s\r\n]*(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)+[^\'">]*>$~si', $contents[$kkk-1], $match) ) continue;
$reg = '^<!--(?:.|[\r\n])*?-->$|^<[\s\r\n]*(?:input|img|isindex|area|base|basefont|bgsound|col|embed|frame|keygen|link|meta|nextid|param|plaintext|spacer|wbr|br)(?:[^\'">]*?([\'"])(?:\\\\\1|(?!\1).)*?\1)*?[^\'">]*>$';
#增加兼容自定義標簽 <img1x src="" /> by:LingMax
#$reg .= '|^<[\s\r\n]*[a-z0-9]+(?:(?:[^\'">]*?)([\'"])(?:\\\\\2|(?!\2).)*?\2)*?[^\'">]*/[\s\r\n]*>$';
if (preg_match('~'.$reg.'~si', $tag)) {
$result .= $tag;#放行 img這種自帶閉合的標簽
} else if (preg_match("~^<[\s\r\n]*/[\s\r\n]*([a-z0-9]+)[\s\r\n]*>$~si", $tag, $match)) {
$arrb = $tagStack;
$bz = false;
$lsstr = '';
for ($i=0; $i < $len; $i++) {
$ls = array_pop($arrb);
if($ls == $match[1]){
$lsstr .= $tag;
$bz = true;
break;
}else{
#出現(xiàn)標簽閉合問題 需要修補
$lsstr .= '<!--修補--></'.$ls.'>';
#array_push($tagStack, $ls);
}
}
if($bz){
$tagStack = $arrb;
$result .= $lsstr;
}else{
$result .= '<!--放棄'.$tag."-->";
}
} else if (preg_match('~^<[\s\r\n]*([a-z0-9]+)[\s\r\n]*(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)*[^\'">]*>$~si', $tag, $match)) {
array_push($tagStack, $match[1]);
$result .= $tag;
}else {
$result .= $tag;
}
}
while (!empty($tagStack)) {
$result .= '</' . array_pop($tagStack) . '>';
}
return $result;
}一、phpStudy,是一個新手入門最常用的開發(fā)環(huán)境。
二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡單對小白比較友好。
三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站集成軟件包。
四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。
五、寶塔面板,寶塔面板是一款服務器管理軟件,支持windows和linux系統(tǒng)。
六、UPUPW,UPUPW是目前Windows平臺下最具特色的Web服務器PHP套件。
到此,相信大家對“php怎么實現(xiàn)html標簽自動閉合”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
當前標題:php怎么實現(xiàn)html標簽自動閉合
標題路徑:http://chinadenli.net/article8/ppcgip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、云服務器、品牌網(wǎng)站建設、做網(wǎng)站、服務器托管、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)