溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽

發(fā)布時(shí)間:2021-06-11 10:09:06 來(lái)源:億速云 閱讀:161 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

如何編寫(xiě)一個(gè)函數(shù),使用正則替換的方式能夠?qū)崿F(xiàn)清除字符串中所有的HTML標(biāo)簽?

如果我們想要去清楚字符串HTML的標(biāo)簽去要把HTML的標(biāo)簽全部列出來(lái),首先我們先把字符串定義下來(lái),總的來(lái)說(shuō)我們HTML的標(biāo)簽主要有兩種情況,一種是雙標(biāo)簽以什么開(kāi)始,以什么結(jié)束,另外一種就是單標(biāo)簽(<meta>或者是input)結(jié)束,一般情況下,我們不會(huì)把這個(gè)標(biāo)簽給刪掉,比如說(shuō)寫(xiě)一個(gè)(input)標(biāo)簽的文本域,如果我們把標(biāo)簽刪掉了,文本域就沒(méi)了,因此我們不會(huì)直接這樣做,我們會(huì)把相對(duì)應(yīng)的標(biāo)簽轉(zhuǎn)化為實(shí)體,假如,我們直接輸出(echo)$str;我們運(yùn)行結(jié)果,空白欄外是front標(biāo)簽,里面是普通的文本域,(代碼結(jié)果如下所示)

<?php
/**** ***清楚字符串HTML標(biāo)簽* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;
?>

代碼結(jié)果如下所示

怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽

以上這種情況,如果我們要是清除,是不行的,因此,我們會(huì)對(duì)上述代碼進(jìn)行替換,首先,我們先定義一個(gè)函數(shù),function demo(),給到一個(gè)字符串,緊接著我們定義正則,$pattern,然后我們需要使用到兩個(gè)符號(hào),第一(/</S),第二個(gè)是(/>/S),當(dāng)我們找到之后,我們進(jìn)行替換,$replace,一個(gè)是(&lt)另一個(gè)是(&gt),最后我們直接(return)他們的結(jié)果。輸出(echo)demo($str),最后我們得到的結(jié)果就是原樣輸出,

代碼如下:

<?php
/**** ***清楚字符串HTML標(biāo)簽* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;


function demo($str){
    //定義正則
    $pattern = array(
    '/</S',
    '/>/S'
    );
    $replace = array('&lt;','&gt;' );
    return preg_replace($pattern, $replace, $str);
}
    echo '<hr/>' ;
    echo demo($str);
?>

代碼結(jié)果如下所示;

怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽

其實(shí)一樣,我不使用這個(gè)函數(shù),系統(tǒng)中也有其他的函數(shù)幫我們實(shí)現(xiàn);

例如:

  • (htmlentities)---將字符串轉(zhuǎn)換為HTML轉(zhuǎn)義字符。

  • (htmlspecialchars)---特殊字符轉(zhuǎn)換為HTML實(shí)體。

現(xiàn)在我們用(htmlspecialchars)函數(shù)進(jìn)行編碼,然后進(jìn)行代碼演示:

代碼如下:

<?php
/**** ***清楚字符串HTML標(biāo)簽* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str . '<hr/>';
echo htmlspecialchars($str);
function demo($str){
    //定義正則
    $pattern = array(
    '/</S',
    '/>/S'
    );
    $replace = array('&lt;','&gt;' );
    return preg_replace($pattern, $replace, $str);
}
    echo '<hr/>' ;
    echo demo($str);
?>

代碼結(jié)果如下所示;

怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽

從上述代碼演示結(jié)果看出,我們所得到的結(jié)果是一樣的,這就是我們所實(shí)現(xiàn)的替換,然而對(duì)于我們今天討論的清除,道理是一樣的,我們還是定義一個(gè)正則表達(dá)式,

我們以代碼為例:

<?php
/**** ***清楚字符串HTML標(biāo)簽* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str . '<hr/>';
echo htmlspecialchars($str);
function demo($str){
    //定義正則
    $pattern = array(
    '/</S',
    '/>/S'
    );
    $replace = array('&lt;','&gt;' );
    return preg_replace($pattern, $replace, $str);
}
    echo '<hr/>' ;
    echo demo($str);
    echo '<hr/>';
    $str ='<font color="" >高考加油</font>';
    $pattern = '/<.*?>(.*?)<\/.*?>/S';
    echo preg_replace($pattern,'\1',$str);
?>

代碼結(jié)果如下所示;

怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽

通過(guò)上述代碼我們可以清楚地看到,標(biāo)簽已經(jīng)清除了,只剩下內(nèi)容了;

關(guān)于“怎么使用正則替換的方式實(shí)現(xiàn)清除字符串中所有的HTML標(biāo)簽”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI