Zebra_Form
Zebra_Form copied to clipboard
PHP error: The /e modifier is deprecated, use preg_replace_callback instead
Getting a php error on the xssclean.php file at lines 285 and 286 "The /e modifier is deprecated, use preg_replace_callback instead "
285: $str = preg_replace('~&#x(0*[0-9a-f]{2,5})~ei', 'chr(hexdec("\1"))', $str);
suggest it is rewritten to: $str = preg_replace_callback('~&#x(0*[0-9a-f]{2,5})~ei', create_function ('$matches', 'return chr(hexdec($matches[1]));'), $str);
286: return preg_replace('~&#([0-9]{2,4})~e', 'chr(\1)', $str);
suggest it is rewritten to:
return preg_replace_callback('~&#([0-9]{2,4})~e', 'chr(\1)', create_function ('$matches', 'return chr($matches[1]);'), $str);
Can anyone confirm that this is correct?
OK so it seems 'create_function' is deprecated as well.
Here's another attempt. I would love confirmation that it is correct. Thanks
$str = preg_replace_callback('~&#x(0*[0-9a-f]{2,5})~i', function ($m) { return chr(hexdec($m[1]));}, $str);
return preg_replace_callback('~&#([0-9]{2,4})~', function ($m) { return chr($m[1]);}, $str);
Seems I'm a victim of 'auto replace' In the code above the section that has the strike-through should actually have a ~ after the first single quote and before the last single quote. No idea how to make it show correctly