From 07b321b6c3a8ec99dec4d1d0e6b62bc877272dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Wed, 11 Sep 2013 15:00:35 +0200 Subject: [PATCH] Replaced PHP 5.5 deprecated call in external library --- htdocs/includes/nusoap/lib/Mail/mime.php | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/htdocs/includes/nusoap/lib/Mail/mime.php b/htdocs/includes/nusoap/lib/Mail/mime.php index 55b32be55b1..3d44f050062 100644 --- a/htdocs/includes/nusoap/lib/Mail/mime.php +++ b/htdocs/includes/nusoap/lib/Mail/mime.php @@ -677,10 +677,24 @@ class Mail_mime foreach ($input as $hdr_name => $hdr_value) { preg_match_all('/(\w*[\x80-\xFF]+\w*)/', $hdr_value, $matches); foreach ($matches[1] as $value) { - $replacement = preg_replace('/([\x80-\xFF])/e', - '"=" . - strtoupper(dechex(ord("\1")))', - $value); + /* + * preg_replace /e modifier is deprecated in PHP 5.5 + * but anonymous functions for use in preg_replace_callback are only available from 5.3.0 + */ + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + $replacement = preg_replace_callback( + '/([\x80-\xFF])/', + function ($m) { + return "=" . strtoupper(dechex(ord($m[1]))); + }, + $value + ); + } else { + $replacement = preg_replace('/([\x80-\xFF])/e', + '"=" . + strtoupper(dechex(ord("\1")))', + $value); + } $hdr_value = str_replace($value, '=?' . $this->_build_params['head_charset'] . '?Q?' . $replacement . '?=',