Всем привет. Подскажите пожалуйста, как произвести замену значений в тегах? У меня есть массив оригинальных строк и уже переведенных, саму замену произвожу в файле. Пробовал через str_replace но он меняет все найденные совпадения, получается нечто: <ТекстBlock ТекстWrapping="Wrap">Цвет</ТекстBlock> )))
Оригинальные значения искал через preg_match_all, после сохранял в базу и делал перевод
пример файла
CODE ( htmlphp):
скопировать код в буфер обмена
<TextBlock TextWrapping="Wrap">Color</TextBlock> <TextBlock>Greed</TextBlock> <Label>Text</Label> и прочие поля
Попытка произвести замену
PHP:
скопировать код в буфер обмена
$query = "SELECT `en`,`ru` FROM `#__translate` WHERE ru!=\"\""; $db->setQuery($query); $row = $db->loadObjectList(); for($i=0;$i<=count($row);$i++) { $patterns[0] = '/<GroupBox Header="'.$row[$i]->en.'"(.*?)>/'; $patterns[1] = '/<Label(.*?)="'.$row[$i]->en.'"(.*?)\/>/'; $patterns[2] = '/<TextBlock(.*?)>'.$row[$i]->en.'<\/TextBlock>/'; $replacements[0] = '/<GroupBox Header="'.$row[$i]->ru.'"(.*?)>/'; $replacements[1] = '/<Label(.*?)="'.$row[$i]->ru.'"(.*?)\/>/'; $replacements[2] = '/<TextBlock(.*?)>'.$row[$i]->ru.'<\/TextBlock>/'; }
Как я понял, я намудрил с шаблонами... Кто подскажет или объяснит как поправить дело?
|