in reply to How to remove HTML tags from text

One (of many) possibilities is to remove whatever there is between "<" and ">" no matter whether it's really HTML. This could be achieved easily with Text::Balanced's "extract_bracketed".


Replies are listed 'Best First'.
Re^2: How to remove HTML tags from text
by nejcPirc (Acolyte) on Feb 04, 2005 at 11:54 UTC
    Something like this?
    $data=~s/<.*?>//g; $data=~s/&lt.*?&gt//g;
      Text::Balanced does it properly even if there is some funny stuff between the brackets. Look into the documentation for more info. But of course you can also use some regex to remove the strings in a simple way.

      $data = <<_END_; <script language="JavaScript"> alert("Boo!") </script > _END_
      A /s modifier would help a little, but doesn't solve everything. Eg, what about this tag?
      $data = qq{ <img src="hello.jpg" alt="x>y" width="60" height="60" /> } +;

      Lesson: never treat HTML parsing as a "back of an envelope" exercise :)

      cLive ;-)