Если это не то, что вам нужно делать очень часто (или в режиме реального времени), простой вариант - сначала скомпилировать файл «словарь» (скажем, с разделителями табуляции, который содержит аббревиатуры и синонимы), а затем просто прочитать все содержимое его в хеш-таблицу, а затем запустите str_replace (ключ, значение) для каждого элемента в хеш-таблице для вашей исходной строки.
Обновление: вот как может выглядеть код:
$sourceString = 'My very long string full of acronyms like CBN';
$target = '';
//replace the following with file parsing routine
$myDict = array()
$myDict['CBN'] = 'Cannot Be Negated';
...
$myDict['PCBN'] = 'Probably Cannot Be Negated';
$myDict['MDCBN'] = 'Most Definitely Cannot Be Negated';
//replace acronyms with synonyms
foreach($myDict as $synonym=>$acronym)
$target = str_replace($target, $acronym, $synonym)
Обновление 2:
// reading values from file:
$fp = fopen('dictionary.txt');
while (!eof($fp)) {
$line = fgets($fp);
$values = explode("/t", $line);
//add to dictionary
$myDict[$values[0]] = $values[1];
}
fclose($fp);