總結php刪除html標籤和標籤內的內容的方法

來源:互聯網
上載者:User

標籤:text   ati   param   each   標籤   連結   token   targe   opera   

經常扒別人網站文章的坑們;
我是指那種批量式採集的壓根不看內容的;
少不了都會用到刪除html標籤的函數;
這裡介紹3種不同用途上的方法;

$str=‘<div><p>這裡是p標籤</p><img src="" alt="這裡是img標籤"><a href="">這裡是a標籤</a><br></div>‘;
PHPCopy

1:刪除全部或者保留指定html標籤
php內建的函數strip_tags即可滿足要求,
使用方法:
strip_tags(string,allow);
string:需要處理的字串;
allow:需要保留的指定標籤,可以寫多個;

echo strip_tags($str,‘<p><a>‘);//輸出:<p>這裡是p標籤</p><a href="">這裡是a標籤</a>
PHPCopy

此函數的優點是簡單粗暴;
但是缺點也很明顯;
如果有一大堆標籤;
而我只是想刪除指定的某一個;
那要寫很多需要保留的標籤;
所以有了第二個方法;

2:刪除指定的html標籤
使用方法:strip_html_tags($tags,$str);
$tags:需要刪除的標籤(數組格式)
$str:需要處理的字串;

function strip_html_tags($tags,$str){    $html=array();    foreach ($tags as $tag) {        $html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";    }    $data=preg_replace($html, ‘‘, $str);    return $data;}echo strip_html_tags(array(‘p‘,‘img‘),$str);//輸出:<div>這裡是p標籤<a href="">這裡是a標籤</a><br></div>;
PHPCopy

3:刪除標籤和標籤的內容
使用方法:strip_html_tags($tags,$str);
$tags:需要刪除的標籤(數組格式)
$str:需要處理的字串;

function strip_html_tags($tags,$str){    $html=array();    foreach ($tags as $tag) {        $html[]=‘/<‘.$tag.‘.*?>[\s|\S]*?<\/‘.$tag.‘>/‘;        $html[]=‘/<‘.$tag.‘.*?>/‘;    }    $data=preg_replace($html,‘‘,$str);    return $data;}echo strip_html_tags(array(‘a‘,‘img‘),$str);//輸出<div><p>這裡是p標籤</p><br></div>
PHPCopy

很多網站文章裡面會帶上網站名和連結;
比如<a href="http://www.baijunyao.com">白俊遙部落格</a>;
這個函數就是專治這種;
別拿這個函數採集本站啊;
不然保證不打死你;
4:終極函數,刪除指定標籤;刪除或者保留標籤內的內容;
使用方法:strip_html_tags($tags,$str,$content);
$tags:需要刪除的標籤(數組格式)
$str:需要處理的字串;
$ontent:是否刪除標籤內的內容 0保留內容 1不保留內容

/** * 刪除指定標籤 * * @param array $tags     刪除的標籤  數組形式 * @param string $str     html字串 * @param bool $content   true保留標籤的內容text * @return mixed */function stripHtmlTags($tags, $str, $content = true){    $html = [];    // 是否保留標籤內的text字元    if($content){        foreach ($tags as $tag) {            $html[] = ‘/(<‘ . $tag . ‘.*?>(.|\n)*?<\/‘ . $tag . ‘>)/is‘;        }    }else{        foreach ($tags as $tag) {            $html[] = "/(<(?:\/" . $tag . "|" . $tag . ")[^>]*>)/is";        }    }    $data = preg_replace($html, ‘‘, $str);    return $data;}//輸出<div><p>這裡是p標籤</p><img src="" alt="這裡是img標籤"><br></div>;
PHPCopy

前面扯了那麼多;
其實最後這個函數才是乾貨;
一口氣搞定各種標籤刪除的疑難雜症不費勁;
別看下面這張了;
無非帶點顏色好看;
我主要是拿來湊圖當文章封面的;

 

總結php刪除html標籤和標籤內的內容的方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.