Ticket Hash: 60c4f626fab9f09a2fc6c265376036a044446366
Title: preg_replace() /e depreciated in garbage2xhtml
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2013-11-22 19:40:23
Version Found In: 0.5.9
User Comments:

anonymous added on 2013-11-20 11:35:51:

Same error than ticket [67500772cc] wile editing the Wiki

__
Exception of type ErrorException happened !

0 - preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

In: /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php:563

http://garradin.example.org/admin/wiki/?Nicelab

#0 [internal function]: Garradin\exception_error_handler(8192, 'preg_replace():...', '/home/garradin/...', 563, Array)
#1 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(563): preg_replace('~�*([0-9a-f]...', 'chr(hexdec("\1"...', 'https://www.ass...')
#2 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(576): garbage2xhtml->decodeObfuscated('https://www.ass...')
#3 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(546): garbage2xhtml->protectAttribute('href', 'https://www.ass...')
#4 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(775): garbage2xhtml->getTagAttributes('a href="https:/...', 'a')
#5 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(245): garbage2xhtml->buildTree()
#6 /home/garradin/include/libs/garbage2xhtml/lib.garbage2xhtml.php(267): garbage2xhtml->parse('Bienvenue dans ...')
#7 /home/garradin/include/lib.utils.php(335): garbage2xhtml->process('Bienvenue dans ...')
#8 /home/garradin/include/lib.template.php(182): Garradin\utils::htmlGarbage2xhtml('Bienvenue dans ...')
#9 [internal function]: Garradin\tpl_format_wiki('Bienvenue dans ...')
#10 /home/garradin/include/libs/template_lite/class.template.php(822): call_user_func_array('Garradin\tpl_fo...', Array)
#11 /home/garradin/cache/compiled/c_ab8bbb56b49b568ef75cc201549c59b6.php(93): Template_Lite->_run_modifier('Bienvenue dans ...', 'format_wiki', 'plugin', 1)
#12 /home/garradin/include/libs/template_lite/class.template.php(712): include('/home/garradin/...')
#13 /home/garradin/include/libs/template_lite/class.template.php(583): Template_Lite->_fetch_compile('admin/wiki/page...')
#14 /home/garradin/include/libs/template_lite/class.template.php(543): Template_Lite->fetch('admin/wiki/page...', NULL, true)
#15 /home/garradin/www/admin/wiki/index.php(32): Template_Lite->display('admin/wiki/page...')
#16 {main}

bohwaz added on 2013-11-20 14:36:21:

Bug corrigé depuis déjà quelques temps dans la version upstream de la lib, mais n'avait pas été mise à jour, ça sera fait la prochaine fois.

En attendant, possibilité de corriger en mettant à jour le fichier par celui-ci : http://svn.kd2.org/svn/misc/libs/garbage2xhtml/lib.garbage2xhtml.php

anonymous added on 2013-11-22 18:18:49:

Il me semble que l'erreur persiste sur le fichier upstram, j'ai essayé la manip proposée sans succès

anonymous added on 2013-11-22 18:40:23:

Il y a deux utilisations de preg_replace à modifier dans le fichier

// unicode entities don't always have a semicolon ending the entity
$value = preg_replace_callback('~&#x0*([0-9a-f]+);?~i', function() { return chr(hexdec("\\1")); }, $value);
$value = preg_replace_callback('~&#0*([0-9]+);?~', function() { return chr("\\1"); }, $value);