- array_map: documentation ( source)
- preg_replace: documentation ( source)
<?php
$original = 'some od or perhaps a #ph in this :rn:';
$abbreviation= array();
$abbreviation[0] = 'od';
$abbreviation[1] = 'rn';
$abbreviation[2] = 'ph';
$abbreviation[3] = 'real';
$translated= array();
$translated[0] ='odometer';
$translated[1] ='run';
$translated[2] ='pinhole';
$translated[3] ='fake';
function add_regex_finders($str){
return "/([\s:\#])" . $str . "([\s:])/i";
}
$original_parsed = array_map('add_regex_finders',$abbreviation);
echo preg_replace($original_parsed, array_map(function ($v) { return '$1' . $v . '$2'; }, $translated), $original);