@@ -197,9 +197,9 @@ public static function remove_html_tags($text, $allowableTag = null)
197
197
public static function safe_tag_chars ($ text , $ way )
198
198
{
199
199
if ($ way )
200
- $ text = preg_replace_callback ('/(\<\/?)([^<>]+?)(\>)/s ' , create_function ('$m ' ,'return (strlen($m[1])==1 && substr(trim($m[2]), 0, 1) == \'- \' && substr(trim($m[2]), 1, 1) != \'- \')? $m[0] : $m[1].( substr(trim($m[2]), 0, 1) === "a" ? "%%___" : "" ) . EMT_Lib::encrypt_tag(trim($m[2])) . $m[3]; ' ), $ text );
200
+ $ text = preg_replace_callback ('/(\<\/?)([^<>]+?)(\>)/s ' , EMT_Lib:: create_function ('$m ' ,'return (strlen($m[1])==1 && substr(trim($m[2]), 0, 1) == \'- \' && substr(trim($m[2]), 1, 1) != \'- \')? $m[0] : $m[1].( substr(trim($m[2]), 0, 1) === "a" ? "%%___" : "" ) . EMT_Lib::encrypt_tag(trim($m[2])) . $m[3]; ' ), $ text );
201
201
else
202
- $ text = preg_replace_callback ('/(\<\/?)([^<>]+?)(\>)/s ' , create_function ('$m ' ,'return (strlen($m[1])==1 && substr(trim($m[2]), 0, 1) == \'- \' && substr(trim($m[2]), 1, 1) != \'- \')? $m[0] : $m[1].( substr(trim($m[2]), 0, 3) === "%%___" ? EMT_Lib::decrypt_tag(substr(trim($m[2]), 4)) : EMT_Lib::decrypt_tag(trim($m[2])) ) . $m[3]; ' ), $ text );
202
+ $ text = preg_replace_callback ('/(\<\/?)([^<>]+?)(\>)/s ' , EMT_Lib:: create_function ('$m ' ,'return (strlen($m[1])==1 && substr(trim($m[2]), 0, 1) == \'- \' && substr(trim($m[2]), 1, 1) != \'- \')? $m[0] : $m[1].( substr(trim($m[2]), 0, 3) === "%%___" ? EMT_Lib::decrypt_tag(substr(trim($m[2]), 4)) : EMT_Lib::decrypt_tag(trim($m[2])) ) . $m[3]; ' ), $ text );
203
203
return $ text ;
204
204
}
205
205
@@ -212,7 +212,7 @@ public static function safe_tag_chars($text, $way)
212
212
*/
213
213
public static function decode_internal_blocks ($ text )
214
214
{
215
- $ text = preg_replace_callback ('/ ' .EMT_Lib::INTERNAL_BLOCK_OPEN .'([a-zA-Z0-9\/=]+?) ' .EMT_Lib::INTERNAL_BLOCK_CLOSE .'/s ' , create_function ('$m ' ,'return EMT_Lib::decrypt_tag($m[1]); ' ), $ text );
215
+ $ text = preg_replace_callback ('/ ' .EMT_Lib::INTERNAL_BLOCK_OPEN .'([a-zA-Z0-9\/=]+?) ' .EMT_Lib::INTERNAL_BLOCK_CLOSE .'/s ' , EMT_Lib:: create_function ('$m ' ,'return EMT_Lib::decrypt_tag($m[1]); ' ), $ text );
216
216
return $ text ;
217
217
}
218
218
@@ -341,6 +341,15 @@ public static function strpos_ex(&$haystack, $needle, $offset = null)
341
341
return strpos ($ haystack , $ needle , $ offset );
342
342
}
343
343
344
+ public static function create_function ($ args , $ code ) {
345
+ if (version_compare (PHP_VERSION , '7.0.0 ' ) < 0 ) {
346
+ return create_function ($ args , $ code );
347
+ }
348
+ $ closure = false ;
349
+ eval ('$closure = function( ' .$ args .') { ' .$ code .' }; ' );
350
+ return $ closure ;
351
+ }
352
+
344
353
public static function _process_selector_pattern (&$ pattern )
345
354
{
346
355
if ($ pattern ===false ) return ;
@@ -649,13 +658,13 @@ public static function html_char_entity_to_unicode($entity)
649
658
public static function convert_html_entities_to_unicode (&$ text )
650
659
{
651
660
$ text = preg_replace_callback ("/\&#([0-9]+)\;/ " ,
652
- create_function ('$m ' , 'return EMT_Lib::_getUnicodeChar(intval($m[1])); ' )
661
+ EMT_Lib:: create_function ('$m ' , 'return EMT_Lib::_getUnicodeChar(intval($m[1])); ' )
653
662
, $ text );
654
663
$ text = preg_replace_callback ("/\&#x([0-9A-F]+)\;/ " ,
655
- create_function ('$m ' , 'return EMT_Lib::_getUnicodeChar(hexdec($m[1])); ' )
664
+ EMT_Lib:: create_function ('$m ' , 'return EMT_Lib::_getUnicodeChar(hexdec($m[1])); ' )
656
665
, $ text );
657
666
$ text = preg_replace_callback ("/\&([a-zA-Z0-9]+)\;/ " ,
658
- create_function ('$m ' , '$r = EMT_Lib::html_char_entity_to_unicode($m[1]); return $r ? $r : $m[0]; ' )
667
+ EMT_Lib:: create_function ('$m ' , '$r = EMT_Lib::html_char_entity_to_unicode($m[1]); return $r ? $r : $m[0]; ' )
659
668
, $ text );
660
669
}
661
670
@@ -701,7 +710,7 @@ public static function url_regex() {
701
710
URLREGEX;
702
711
*/
703
712
return <<<URLREGEX
704
- #(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))#iS
713
+ #(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))#iSu
705
714
URLREGEX ;
706
715
707
716
/*
0 commit comments