What is wrong with my code? I ran the code on my test server and the code worked but when I upload it to my production server I get
Parse error: syntax error, unexpected T_FUNCTION in /hermes/bosweb/web013/b130/ipg.acrsflcom/darayngedbeats/gentest.php on line 10
here is my code
$old = "http://darayngedbeats1.s3.amazonaws.com /mp3/CrazyMonsta2.mp3?AWSAccessKeyId=AKIAJXA36ESCLQHCB54Q&Expires=1297279906& Signature=HD36ZQE8yeTIW6JPWKMcciPTiTs%3D"; //enter the key that needs to be converted
$search = array(":","?","=","&","%");
$replace = array("%3A","%3F","%3D","%26","%25");
function search_replace($s,$r,$sql)
{ $e = '/('.implode('|',array_map('preg_quote', $s)).')/';
$r = array_combine($s,$r);
return preg_replace_callback($e, function($v) use ($s,$r) { return $r[$v[1]]; },$sql);
}
echo "<br><br>";
$new = search_replace($search,$replace,$old);
echo $new;
?>
The error is likely caused by
Chances are you're using PHP 5.2 or earlier, which doesn't support closures. You can find out which version of PHP you're using
phpinfo()
.You'll likely either need to upgrade to PHP 5.3+, or use
create_function
, or write a static function and pass it as a callback.Here's an example of the last option, using a simple class to store the state of
$r
: