[ticket/514] Use preg_replace_callback in portal

B3P-514
This commit is contained in:
Marc Alexander
2015-03-20 17:49:01 +01:00
parent 6835979dbf
commit 39482d5441
3 changed files with 25 additions and 21 deletions

View File

@@ -716,11 +716,13 @@ class calendar extends module_base
* *
* @param string $serial_str Serialized string * @param string $serial_str Serialized string
* *
* @return array Unserialized array * @return array Unserialized string
*/ */
protected function utf_unserialize($serial_str) private function utf_unserialize($serial_str)
{ {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) {
return 's:' . strlen($result[2]) . ":\"{$result[2]}\";";
}, $serial_str);
return unserialize($out); return unserialize($out);
} }

View File

@@ -470,7 +470,9 @@ class links extends module_base
*/ */
private function utf_unserialize($serial_str) private function utf_unserialize($serial_str)
{ {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str); $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) {
return 's:' . strlen($result[2]) . ":\"{$result[2]}\";";
}, $serial_str);
return unserialize($out); return unserialize($out);
} }
} }