sipdorus sipdorus - 3 years ago 146
PHP Question

Php using strip_tags to ignore text in <a> tags

I want to strip tags.
When I use


it returns
If I use


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

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download