Fixed deprecated preg_replace in php >= 5.3.0 with the /e flag in utf8 reports.
authorJoe <unknown>
Fri, 7 Nov 2014 06:50:05 +0000 (07:50 +0100)
committerJoe <unknown>
Fri, 7 Nov 2014 06:50:05 +0000 (07:50 +0100)
reporting/includes/html_entity_decode_php4.php

index 1ecad710f053238c35af49248154a976780ae129..27d5f36bcfdd7e03278afea7066d5a1ac41f1369 100644 (file)
@@ -332,8 +332,17 @@ function html_entity_decode_php4($text_to_convert) {
                "&lt;" => "<"
        );
        $return_text = strtr($text_to_convert, $htmlentities_table);
-       $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text);
-       $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text);
+       
+       if (version_compare(PHP_VERSION, '5.3.0') >= 0) // 07.11.2014, from php 5.3.0 fixed deprecated preg_replace with the /e flag. Joe. 
+       {
+               $return_text = preg_replace_callback('~&#x([0-9a-f]+);~i', function ($m){ return chr(hexdec($m[1]));}, $return_text);
+               $return_text = preg_replace_callback('~&#([0-9]+);~', function ($m){ return chr($m[1]);}, $return_text);
+       }
+       else
+       {
+               $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text);
+               $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text);
+       }
        return $return_text;
 }