PHp 5.5 is the newest version of php and was released relatively recently. Which is why we do not support it in the meantime. Probably the php developers have made changes and we'll have to adjust the software for php 5.5. We'll be grateful if you PM me your error logs which pop up with php 5.5. and we'll do necessary changes for the stable work of upcoming release. Thanks.
Message:preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
File:/home/hishamqa/public_html/oxwall/ow_utilities/string.php
Line:130
I read the PHP 5.5 manual and I realzed they had deprecated this function completely:
http://php.net/manual/en/migration55.deprecated.php
They suggest to use preg_replace_callback because, as some developers said, it's better for server resource consumption. This will make Oxwall work on all PHP versions because this function is supported from PHP4.5. Now this needs some fixing on the code level for functions in (ow_utilities/string.php) to match the new function requirements. I believe this is something that really need to be considered seriously because it's better for servers and widely supported.
I'll report that to our developers in one of the upcoming releases this will be fixed.
return preg_replace('/{\$(\w+)}/ie', "isset(\$vars['\\1']) ? \$vars['\\1'] : '\\0'", $data);
to
return preg_replace_callback('/{\$(\w+)}/i',
function($match) use ($vars)
{
return (isset($vars["$match[1]"]) ? $vars["$match[1]"] : $match[0]);
},
$data);
UPDATE: my first version is wrong, because create_function can't use external variable $vars:
return preg_replace_callback('/{\$(\w+)}/i', create_function('$match', 'return isset($vars["$match[1]"]) ? $vars["$match[1]"] : $match[0];'), $data); - INCORRECT!
I'll report that to our developers in one of the upcoming releases this will be fixed.
Works fine for me, I'll continue testing and I'll let you know if something pops up. Appreciate your help :)
Change string 130 in ow_utilities/string.php from
return preg_replace('/{\$(\w+)}/ie', "isset(\$vars['\\1']) ? \$vars['\\1'] : '\\0'", $data);
toreturn preg_replace_callback('/{\$(\w+)}/i',
function($match) use ($vars)
{
return (isset($vars["$match[1]"]) ? $vars["$match[1]"] : $match[0]);
},
$data);
UPDATE: my first version is wrong, because create_function can't use external variable $vars:
return preg_replace_callback('/{\$(\w+)}/i', create_function('$match', 'return isset($vars["$match[1]"]) ? $vars["$match[1]"] : $match[0];'), $data); - INCORRECT!