Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串中删除HTML标记和内部文本_Php_Html - Fatal编程技术网

Php 从字符串中删除HTML标记和内部文本

Php 从字符串中删除HTML标记和内部文本,php,html,Php,Html,我一直在使用strip\u标记从字符串中删除HTML标记。但是,此方法仍然保留那些内部文本 如何从字符串中删除标记和内部文本 例如: Hello World <a href="/world">Remove me please!</a>, hello my friends. //expected result Hello world, hello my friends. 你好,世界,朋友们好。 //预期结果 你好,世界,你好,我的朋友们。 摘自PHP文档中关于stri

我一直在使用
strip\u标记
从字符串中删除HTML标记。但是,此方法仍然保留那些内部文本

如何从字符串中删除标记和内部文本

例如:

Hello World <a href="/world">Remove me please!</a>, hello my friends.

//expected result

Hello world, hello my friends.
你好,世界,朋友们好。
//预期结果
你好,世界,你好,我的朋友们。

摘自PHP文档中关于
strip\u tags()的注释。



你能举个例子吗?输入和期望输出。你考虑过吗?请发布一个你想要解析的HTML示例。还剩下什么?我想您需要使用DOM解析器来增加真正需要的部分;echo preg_replace(“#.*?#”和“$str”);这就是你想要的。
<?php 
function strip_tags_content($text, $tags = '', $invert = FALSE) { 

  preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
  $tags = array_unique($tags[1]); 

  if(is_array($tags) AND count($tags) > 0) { 
    if($invert == FALSE) { 
      return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
    } 
    else { 
      return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
    } 
  } 
  elseif($invert == FALSE) { 
    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
  } 
  return $text; 
} 
?>