- preg_replace_callback: documentation ( source)
- trim: documentation ( source)
<?php
$_lang = array('a'=>'a harfi','b'=>'b harfi');
$c = 'Hello world {[a]} please';
$c = preg_replace_callback('/\{\[(.*?)\]\}/', function($m) use ($_lang) { return isset($_lang[trim($m[1])]) ? $_lang[trim($m[1])] : $m[1]; }, $c);
echo $c;