[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как заменить русские слова на анг-е в файле utf-8
Alexander5675
Здравствуйте!

Проблема: есть файл xml с русскими узлами в кодировке utf-8. Надо заменить названия некоторых узлов английскими. Пытаюсь делать так: зачитываю файл в строковую переменную и делаю

$str = preg_replace('/русское название/', 'english name', $str);

Не работает (делал с /u тоже). Пытался с помощью iconv конвертировать сначала в windows-1251, потом применить preg_replace - тоже не работает для русских слов. Пытался также применить

$str = mb_ereg_replace('/русское название/', 'english name', $str);

Это не работает почему-то вообще ни для каких, ни для русских, ни для английских. Ничего не могу понять, как решить казалось бы такую простую задачу по замене слов.. Помогите, пожалуйста!



Спустя 46 минут, 19 секунд (3.09.2012 - 17:55) AlmazDelDiablo написал(а):
<?php

error_reporting( E_ALL );
header( 'Content-Type: text/html; charset=urf-8' );

$str = 'dfgsdfgssdfgdsfg русское название">';
echo preg_replace( '/русское название/iu', 'english name', $str ); // Результат: dfgsdfgssdfgdsfg english name">

?>

На локалке сработало нормально. Покажите более подробно, какие у вас входные данные.

Спустя 51 минута, 3 секунды (3.09.2012 - 18:46) Alexander5675 написал(а):
На вход дается xml файл, в котором <?xml version="1.0" encoding="UTF-8"?>, и сохранен в кодировке UTF-8 без BOM. Ну и содержимое типа:
<узел1>
содержимое1
</узел1>
...

Зачитываю так:

$handle = fopen($filename, 'r');

if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
$str .= $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}

вывод $str выводит содержимое правильно. Теперь делаю preg_replace( '/узел1/iu', 'english name', $str ) - не работает. Если 1-й параметр на англ, то заменяет, если в кириллице, то заменяет пустым местом.

Спустя 8 минут (3.09.2012 - 18:54) Alexander5675 написал(а):
Кажется, догадываюсь в чем дело. Возможно xml воспринимается не как обычный текстовый файл, из-за этого возникают проблемы..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.