webForumDet fria alternativet
Logga in / Bli medlem

Plocka bort attribut från htmlkod

PHP

1 svar · 206 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Trådstart#1

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;
}
Medlem sedan mars 20025 907 inlägg
#2

Det var nog svårt det här :(

256 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)