Regular Expressions
| From: | Matt Palermo | Date: | Sun, 04 Apr 2004 18:54:50 +0000 |
| Subject: | Regular Expressions | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-182296@lists.php.net to get a copy of this message | ||
I have a page where I am stripping the html tags down. Basically, it will
allow certain tags, but still strips out ALL attributs of the tag, so it
works something like this:
$allowed_tags = "<p><br><strong><b><i><u>";
// State which tags are allowed
$info = strip_tags($info, $allowed_tags);
// Strip all unwanted tags out
$allowed_tags = "p|br|strong|b|i|u";
// Convert tags for regular expression
$info = preg_replace("/<(?!".$allowed_tags.")[^>]*>/",
'<\1>', $info); //
Strip out all attributes from allowed tags
This will strip all attributes out of those tags, so it will turn something
like this <p some stuff here>My p tag</p> into this <p>My p tag</p>. The
above regular expression will handle this just fine. The only problem I am
running into is when someone uses a less than sign in their input (<). So
when someone puts something like: 2 < 8 in their input it gets changed to
this: 2 <>. How can I set it to only replace things when there is a < and
a matching > for it? Anyone have any ideas?
Thanks,
Matt