X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fhtmlawed%2Fsrc%2FPlugin%2FFilter%2FFilterhtmlawed.php;fp=web%2Fmodules%2Fcontrib%2Fhtmlawed%2Fsrc%2FPlugin%2FFilter%2FFilterhtmlawed.php;h=6585918ae62e1e52927499e98342d0d4a3cf5b7c;hp=1542eb75502f694cfa5aee74f90d664740e6845f;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/modules/contrib/htmlawed/src/Plugin/Filter/Filterhtmlawed.php b/web/modules/contrib/htmlawed/src/Plugin/Filter/Filterhtmlawed.php index 1542eb755..6585918ae 100644 --- a/web/modules/contrib/htmlawed/src/Plugin/Filter/Filterhtmlawed.php +++ b/web/modules/contrib/htmlawed/src/Plugin/Filter/Filterhtmlawed.php @@ -55,7 +55,7 @@ class Filterhtmlawed extends FilterBase { // If PHP code blocks are to be preserved, hide the special characters // like '<' of '`sme', '`<\?php(.*)$`sme'), array("\"\x83?php\". str_replace(array('<', '>', '&'), array('<', '>', '&'), '$1'). \"?\x84\"", "\"\x83?php\". str_replace(array('<', '>', '&'), array('<', '>', '&'), '$1')"), $text); + $text = preg_replace_callback('`<\?php(.+?)\?>|<\?php(.*?)$`sm', function($m){return "\x83?php". str_replace(array('<', '>', '&'), array('<', '>', '&'), $m[1]). (substr($m[0], -2) == '?>' ? "?\84" : '');}, $text); } // If Libraries module (API 3.x) is enabled, use htmLawed library through it; @@ -78,7 +78,7 @@ class Filterhtmlawed extends FilterBase { // Handle any PHP code preservation. if (!empty($config['save_php'])) { - $text = preg_replace(array('`\x83\?php(.+?)\?\x84`sme', '`\x83\?php(.*)$`sme'), array("''), '$1'). '?>'", "''), '$1')"), $text); + $text = preg_replace_callback('`\x83\?php(.+?)\?\x84|\x83\?php(.*?)$`sm', function($m){return "'), $m[1]). (substr($m[0], -2) == "?\x84" ? "?>" : '');}, $text); } // Return value.