Jump to content

ket

Newbie
  • Posts

    6
  • Joined

  • Last visited

ket's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. Задача: перенести на новую машину (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 кушает слишком много памяти и времени, соответственно вылетает по достижении лимита, того либо другого. Я уже второй день дрючу систему, а соответственно она меня, есть идеи?
  2. К JPEG картинке нужно добавить некую произвольную информацию, вроде краткого содержания, небольшой XML блок был бы идеальным решением, однако из стандартных средств PHP нашел только exif, и то он только ro, есть еще pel, но он, по-моему, какой-то кривой.. Подскажите куда можно покопать))
  3. уф.. это ж весь сайт править.. как кстате заставить оперу сообщать об кривом xml синтаксисе, а то переключатель ринципе есть везде только игнорируется
  4. похоже я зря про паддинг заикался, width=100% получается при padding=-2px; только браузер такое не хавает
  5. дык надо 100% длины, а при разных padding 98 максимум при пятиуровневой вложенности таблиц получаются сантиметровые несрастухи margin не на пиксель не меняет картины, вообще это "лечится" если поставить 102-104% width, но костыль, в принципе меня интересует совместимость с opera 9.20 - 9.24; кавычки такие, потому что это генерится php, а двоиные соответственно экранируют код html;
  6. <html> <body> <table cellspacing='0' cellpadding='0' border='1' width='100%'><tr><td> <table cellspacing='0' cellpadding='0' border='1' width='50%'><tr><td> <select style='padding:0; width:100%;'> <option>xxx</option> </select> <select style='width:100%;'> <option>xxx</option> </select> <input type='button' style='padding:0; width:100%;' value='OK'> <input type='button' style='width:100%;' value='OK'> </td></tr></table> </td></tr></table> </body> </html> объясните плз, почему у всех элементов разная длинна, причем не 100%, совпадают только с padding:0, но он мне не нужен; зарание спасибо.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy