note 106819 deleted from function.strip-tags by danbrown

From: Date: Sun, 11 Dec 2011 19:12:39 +0000
Subject: note 106819 deleted from function.strip-tags by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-185032@lists.php.net to get a copy of this message
Note Submitter: info at malagadev dot com ---- The function strip_javascript that was developed by nathan@8 in this comments at 08-Mar-2009 06:55 has an error that leads into wrong replacements. Below is the corrected function: function strip_javascript($filter){ // realign javascript href to onclick $filter = preg_replace("/href=(['\"]).*?javascript:(.*)?\\1/i", "onclick=' $2 '", $filter); //remove javascript from tags while( preg_match("/\<(.*)?javascript.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i", $filter)) $filter = preg_replace("/\<(.*)?javascript.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i", "<$1$3$4$5>", $filter); // dump expressions from contibuted content if(0) $filter = preg_replace("/:expression\(.*?((?\>[^(.*?)]+)|(?R)).*?\)\)/i", "", $filter); while( preg_match("/\<(.*)?:expr.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i", $filter)) $filter = preg_replace("/\<(.*)?:expr.*?\(.*?((?\>[^()]+)|(?R)).*?\)?\)(.*)?\>/i", "<$1$3$4$5>", $filter); // remove all on* events while( preg_match("/\<(.*)?\s+on.+?=?\s?.+?(['\"]).*?\\2\s?(.*)?\>/i", $filter,$rr) ) { $filter = preg_replace("/\<(.*)?\s+on.+?=?\s?.+?(['\"]).*?\\2\s?(.*)?\>/i", "<$1$3>", $filter); } return $filter; }

« previous php.notes (#185032) next »