Remove Specific Html Tags Using Php
Solution 1:
Either use a simple replace:
$string = str_replace(array("<script>","</script>"), "");
or a RegEx:
$string = preg_replace("/<script.*?>(.*)?<\/script>/im","$1",$string);
Solution 2:
I guess you want to prevet XSS attacks, you shouldn't merely worry about script
tags, someone might exploit it like this: <a href="http://anywhere.com" onClick="alert(1);">test</a>
(this is a very basic way though).
If you only want the script
tag, with no attributes, to be filtered:
str_replace(array('<script>', '</script>'), array('', ''), $str);
You should improve this using Regex; using preg_match'es and preg_replaces (or only preg_replaces) you can match and/or replace the script tag with its attributes. Or even have more protection against XSS.
Edit: or even a regex like /<script>(.+)<\/script>/
then store what between the brackets into a variable then print it.
Solution 3:
You can always use strip_tags()
with a second parameter containing the allowable tags.
Alternativly, use...
preg_replace('/<script>(.*)</script>/i', '$1', $input);
Note, not tested.
Solution 4:
echo strip_tags($text, '<p><strong><a>');
Just state the ones you dont want removed in the second param
Solution 5:
Try this comrade..
$strn = "<script>alert(1)</script>";
$ptrn = "=^<script>(.*)</script>$=i";
echo preg_match( $ptrn, $strn, $mtchs ); // 0 means fail to matche and 1 means matches was found!
var_dump( $mtchs );
results in
1array(2) {
[0]=> string(25) ""
[1]=> string(8) "alert(1)"
}
Post a Comment for "Remove Specific Html Tags Using Php"