Php使用strip_tags忽略标签中的文本

Php使用strip_tags忽略<a>标签中的文本

问题描述:

I want to strip tags. When I use

$ta=strip_tags($_REQUEST['textarea'],'<a>');

it returns <a> tags. If I use

$ta=strip_tags($_REQUEST['textarea']);

it includes the interior of the <a href>.

I want only text. For example with this html

$text= '<p>test paragraph.</p>'<a href="index.php">Click link</a>';

I want only test paragraph, but I'm getting test paragraph.Click link

Thanks for your help

我想剥离标签。 当我使用 p>

  $ ta = strip_tags($ _ REQUEST ['textarea'],'&lt; a&gt;'); 
  code>  pre> \  n 
 

它返回&lt; a&gt; code>标签。 如果我使用 p>

  $ ta = strip_tags($ _ REQUEST ['textarea']); 
  code>  pre> 
 
 

它 包括&lt; a href&gt; code>的内部。 p>

我只想要文字。 例如,使用此html p>

  $ text ='&lt; p&gt;测试段落。&lt; / p&gt;'&lt; a href =“index.php”&gt;点击链接&lt;  ; / a&gt;'; 
  code>  pre> 
 
 

我只想要测试段落 code>,但我得到测试段落。点击链接 p>

感谢您的帮助 p> div>

If it's only <a href tags you don't like as commented in the comments above this should clear them away and leave you with the rest that can be easily removed with strip_tags().

$text= '<p>test paragraph.</p><a href="index.php">Click link</a><p>test paragraph.</p><a href="index.php">Click link</a><p>test paragraph.</p>';

$pos = strpos($text, "<a href"); // find first a href

while($pos !== false){ // loop until there is no more a href
    $pos2 = strpos($text, "</a>", $pos)+4; // find the end tag of the a
    $text = substr($text, 0, $pos) . substr($text, $pos2); // remove the tag and link text
    $pos = strpos($text, "<a href"); // find the next. If none is found "false" is returned meaning while ends.
}

echo strip_tags($text); // strip away other tags.

https://3v4l.org/YtJic