如何从php中的字符串中删除用户定义的标签?

时间:2012-09-17 07:38:27

标签: string strip-tags

例如:

$str="<name>ABCDE<age>45";

我知道使用strip_tags函数,它会重新显示sring中的所有标记。但我想只删除一个特定的标签,以获得"ABCDE<age>45";

的输出

有可能吗?

5 个答案:

答案 0 :(得分:2)

我已经解决了如下任务。感谢您的所有有用答案。

$str_arr==preg_split("/<[^>]+>/", $str, 0, PREG_SPLIT_NO_EMPTY);

输出:

$str_arr[0]=ABCDE
$str_arr[1]=45

答案 1 :(得分:0)

您也可以通过strip_tags()从字符串中删除HTML和PHP标记

  // Allow <p> and <a>
      echo strip_tags($str, '<p><a>');

  $str="<name>ABCDE<age>45";

来自你的评论是否可以将其作为“ABCDE”投放?, 是的,这可以通过substrpreg_match

来完成
  echo substr($str,6,8); to get only ABCDE 

您可以preg_match

执行此操作
$pattern = '/^ABCDE/';
preg_match($pattern, $str, $matches, PREG_OFFSET_CAPTURE, 5);
print_r($matches);

答案 2 :(得分:0)

strip_tags()allowable_tags

一起使用
$str="<name>ABCDE<age>45";
echo strip_tags($str, '<age>');

Codepad Example

答案 3 :(得分:0)

您可以在数组中设置要删除的标记,然后将其删除。例如:

$string = "<name>ABCDE<age>45";
$custom_tags = array('name');
$tags_length = sizeof($custom_tags);
for ($i = 0; $i < $tags_length; $i++) {
    $string = str_replace("<" . $custom_tags[$i] . ">", "", $string);
}

答案 4 :(得分:0)

阅读 strip_tags

的文档

string strip_tags(string $ str [,string $ allowable_tags]

如果您愿意,可以允许使用某些标签:http://php.net/manual/en/function.strip-tags.php 可选参数 [,string $ allowable_tags] 可以解决您的问题吗? !