程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP移除指定HTML標簽方法總結

PHP移除指定HTML標簽方法總結

編輯:關於PHP編程

在php中我們最常用的指定HTML標簽可以直接使用strip_tags函數來替換了,利用它可以過濾所有的html標簽哦,下面我來給大家介紹除了此函數之外的其它辦法。

有時候我們需要把html標簽頁存到數據庫裡,但是有些場合卻需要拿無html標簽的純數據,這個時候就要對帶html標簽的數據進行處理,把html標簽都去掉。平時用 htmlspecialchars() 來過濾html,但是把html的字符轉義了,最後顯示出來的就是html源代碼,利用strip_tags()就可以把html標簽去除掉。


PHP默認的函數有移除指定html標簽,名稱為strip_tags,在某些場合非常有用。

strip_tags


strip_tags — Strip HTML and PHP tags from a string


string strip_tags ( string str [, string allowable_tags] )

弊端 :


這個函數只能保留想要的html標簽,就是參數string allowable_tags。

這個函數的參數allowable_tags的其他的用法。

 代碼如下 復制代碼


strip_tags($source, ”); 去掉所以的html標簽。
strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em標簽。

如果想去掉的html的指定標簽。那麼這個函數就不能滿足需求了。


於是乎我用到了這個函數。

 代碼如下 復制代碼

function strip_only_tags($str, $tags, $stripContent = FALSE) {
  $content = '';
 
  if (!is_array($tags)) {
    $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
    if (end($tags) == '') {
      array_pop($tags);
    }
  }
 
  foreach($tags as $tag) {
    if ($stripContent) {
      $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)';
    }
 
    $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str);
  }
 
  return $str;
}


參數說明


$str  — 是指需要過濾的一段字符串,比如div、p、em、img等html標簽。
$tags — 是指想要移除指定的html標簽,比如a、img、p等。
$stripContent = FALSE  — 移除標簽內的內容,比如將整個鏈接刪除等,默認為False,即不刪除標簽內的內容。

使用說明

 代碼如下 復制代碼


$target = strip_only_tags($source, array(‘a’,'em’,'b’));移除$source字符串內的a、em、b標簽。

$source='<div><a href="" target="_blank"><img src="logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>
 ';
 
$target = strip_only_tags($source, array('a','em'));
 
//target results
//<div><img src="/logo.png" border="0" alt="Welcome to lixiphp." />This a example from<strong>!</strong></div>

其它辦法

 代碼如下 復制代碼


<?php
//取出br標記
function strip($str)
{
$str=str_replace("<br>","",$str);
//$str=htmlspecialchars($str);
return strip_tags($str);
}
?>


一個自定義的函數

/

 代碼如下 復制代碼 **
 * 取出html標簽
 *
 * @access public
 * @param string str
 * @return string
 *
 */
function deletehtml($str) {
    $str = trim($str); //清除字符串兩邊的空格
    $str = strip_tags($str,"<p>"); //利用php自帶的函數清除html格式。保留P標簽
    $str = preg_replace("/t/","",$str); //使用正則表達式匹配需要替換的內容,如:空格,換行,並將替換為空。
    $str = preg_replace("/rn/","",$str);
    $str = preg_replace("/r/","",$str);
    $str = preg_replace("/n/","",$str);
    $str = preg_replace("/ /","",$str);
    $str = preg_replace("/  /","",$str);  //匹配html中的空格
    return trim($str); //返回字符串
}
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved