perchè la funzione è dentro un preg_replace:

$string = preg_replace('|_CAT_([0-9]+)|ie', "get_url('$1',1,_LANG_id_)", $string);

altrimenti devo risolvere creando una funzione tipo questa:

function return_value($array,$key){

return $array[$key];

}

e fare quindi così:

$string = preg_replace('|_CAT_([0-9]+)|ie', "return_value(get_url('$1',1,_LANG_id_),'$1')" , $string);