Задача: перенести на новую машину (LAMP) сайт с базами данных с машины с аналогичной системой. Решение: Базы не большие поэтому посредством PHP были экспортированны в XML формат, результат переброшен на новую машину и импорт.. однако на этапе разборки XML часть информации исчезает, а именно запись вида <entry> <name>Вася Пупкин</name> <age>20</age> <addr>123456, деревня Кукуево...</addr> </entry> разбирается как <entry> <name>Вася Пупкин</name> <age>20</age> <addr>123456, </addr> </entry> то есть в случае наличия в строке русских букв, если первая русская, то запись проходит, иначе проходят только не русские символы до первого вхождения русского, как результат адрес с указанием индекса обрезается до одного только индекса. реализован импорт посредством следующего PHP-кода function importFile($fn) { /* открываем файл */ if(!($fd = gzopen($fn, "br"))) return 1; /* создаем парсер */ $p = xml_parser_create("UTF-8"); xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 0); /* настраеваем парсер */ xml_set_element_handler($p, "bTag", "eTag"); xml_set_character_data_handler($p, "xData"); /* читаем и разбираем файл блоками */ do { $data = gzread($fd, 65536); xml_parse($p, $data, feof($fd)); } while(!feof($fd)); /* освобождаем ресурсы */ gzclose($fd); xml_parser_free($p); return 0; } /* глобальная переменна для звязи функций обработчика */ $xmls = array(); /* обработка открытия тэга */ function bTag($p, $tag, $attr) { global $xmls; switch($tag) { case "root": break; case "entry": $xmls["current_tag"] = $tag; $xmls["entry"] = array(); break; default: $xmls["entry"][$xmls["current_tag"]] = ""; } } /* обработка закрытия тэга */ function eTag($p, $tag, $attr) { global $xmls; switch($tag) { case "root": break; case "entry": if($xmls["entry"]) { inser_to_db($xmls["entry"]); } $xmls["current_tag"] = false; $xmls["entry"] = false; break; default: $xmls["entry"][$xmls["current_tag"]] = false; } } /* обработка содержимого тэга */ function xData($p, $data) { global $xmls; if($xmls["current_tag"]) $xmls["entry"][$xmls["current_tag"]] = $data; } на старой машине этот код работает нормально, а на новой при обработке содержимого тэга addr функции xData передается только "123456, ". Новая система altlinux-server 4 php-5.2.2 apahe-1.3.37 PHP-расширения dom mbstring mcrypt mysql suhosin Все настроенно на UTF-8, включая mbstring и glibc самой системы. Разборка через DOM кушает слишком много памяти и времени, соответственно вылетает по достижении лимита, того либо другого. Я уже второй день дрючу систему, а соответственно она меня, есть идеи?