
Но то, что ты делаешь - нечто подобное было у меня, когда писал переводчик
чтоб был понятен кусок кода - поясню
переводилось с японского на японский (для адаптации к словарю и кодировке (японцы тоже имееют несколько японских)), а затем по выбору клиента переводилось на русский или английский
для упрощения работы и повышения скорости - словарь хранился в простом линейном файле в формате
jp1 \t rus \t eng \t jp2 \t rus_utf \t\n
собственно кусок кода
Код: Выделить всё
$dic = file ("./jpvoc/jputf.txt");
foreach ($dic as $tmpl)
{list ($jp,$rus,) = explode ("\t",$tmpl);
$html=str_replace($jp,$rus,$html); }
unset ($dic);
выше тебе правильно указали на проблему при наличии знаков на коце слова и как быть со "строгим" соответствием?
почему я отказался от мускула - уже не упомню (толи скорость работы (слов было значительно больше 7000), толи удобства работы со словарем)
в твоем случае я бы сделал наверное так:
Код: Выделить всё
while(list($key, $val) = each($dic))
{$html=str_replace($key,$val,$html);
$html=str_replace($val,$key,$html);}
а таблицу делаешь
uniq key "key" / uniq key "val"
что однозначно обозначит связку "слово" и "синоним"
но тут возникнет еще одна проблема - два и более синонима к одному слову
это можно решить через третий столбец - думаю сообразишь как
если что не по делу - звиняйте, несовсем догнал обозначенную проблему

про чё понял - про то написал