Har nedanstående funktioner för att rensa bort htmlkod (inkl. ev. attribut) från en sträng. Den fungerar fint, fast jag vill ändra en sak. Nu måste jag ange de attribut jag vill ska vara otillåtna, jag vill göra tvärtom (dvs. anger de attribut som ska vara godkända (precis som strip_tags fungerar mao)). Någon som vet hur jag modifierar koden så att den fungerar så?
function removeEvilTags($source){
$allowedTags = '<b><h1><span>';
$source = strip_tags($source, $allowedTags);
return preg_replace('/<(.*?)>/ie', "'<'.removeEvilAttributes('\\1').'>'", $source);
}
function removeEvilAttributes($tagSource){
$stripAttrib = "' (javascript:|onclick|ondblclick|onmousedown|onmouseup|" .
"onmouseover|onmousemove|onload|onmouseout|onkeypress|".
"onkeydown|onkeyup)(\s*)=(\s*)(\"|\')(.*?)(\"|\')'i";
$tagSource = stripslashes($tagSource);
$tagSource = preg_replace($stripAttrib, '', $tagSource);
return $tagSource;
}