From ff6fdd67be8d854ce995948538312808399cca95 Mon Sep 17 00:00:00 2001 From: Ludovic Arnaud Date: Thu, 17 Apr 2003 23:47:26 +0000 Subject: More bbcode fixes git-svn-id: file:///svn/phpbb/trunk@3879 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/bbcode.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'phpBB/includes/bbcode.php') diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php index 70e1698efc..c34092f35c 100644 --- a/phpBB/includes/bbcode.php +++ b/phpBB/includes/bbcode.php @@ -312,18 +312,18 @@ class bbcode switch ($type) { case 'php': + $str_from = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}', '.', '@'); + $str_to = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}', '.', '@'); + + $code = str_replace($str_to, $str_from, $code); + $remove_tags = FALSE; - if (!preg_match('/<\?(php)? .*? \?>/', $code)) + if (!preg_match('/\<\?.*?\?\>/is', $code)) { $remove_tags = TRUE; $code = ""; } - $str_from = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}', '.', '@'); - $str_to = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}', '.', '@'); - - $code = str_replace($str_to, $str_from, $code); - ob_start(); highlight_string($code); $code = ob_get_contents(); @@ -331,10 +331,12 @@ class bbcode if ($remove_tags) { - $code = preg_replace('/(.*?)<\?php (.*)\?>(.*?)/', '\1\2\3', $code); + $code = preg_replace('!^[\n\r\s\t]*[\n\r\s\t]*()<\?php (.*)\?>[\n\r\s\t]*()[\n\r\s\t]*[\n\r\s\t]*!is', '\1\2\3', $code); + } + else + { + $code = preg_replace('!^[\n\r\s\t]*[\n\r\s\t]*(.*)[\n\r\s\t]*[\n\r\s\t]*!is', '\1', $code); } - - $code = preg_replace('!^[\n\r\s\t]*[\n\r\s\t]*(.*)[\n\r\s\t]*[\n\r\s\t]*!is', '\\1', $code); break; default: -- cgit v1.2.1