Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Xml экспорт/импорт информации
Страницы (2): [1] 2 »
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
Xml экспорт/импорт информации [сообщение #74468]

Задача такая: есть сайт, пользователь заполняет форму, скрипт генерит XML документ (есть др. предложения?) и отправляет его по почте на некий адрес. Там чел получил этот файл. И скормил его в принципе тому же сайту ("внутреннему"), скрипт его пропарсил и добавил данные из документа в MySQL базу...

Вот дамп 3х таблиц в которые будет добавляться информация:


code:

CREATE TABLE soiskateli (
  soiskatel_id smallint(4) NOT NULL auto_increment,     // id должен браться из авто_инкремента и подставляться в 2 др. таблицы $id = mysql_insert_id(); и нет проблем...
  data_vnesenia date NOT NULL default '0000-00-00',     //текущая дата
  poslednii_prosmotr date NOT NULL default '0000-00-00',   // =0
  kol_vo_prosmotrov smallint(5) NOT NULL default '0',      // =0
  fio tinytext NOT NULL,
  sex enum('0','1','2') NOT NULL default '0',
  dolgnost_id tinyint(4) default NULL,
  zp mediumint(6) default NULL,
  work_graph tinyint(1) default NULL,
  zaniatost tinyint(1) default NULL,
  data_rogdenia date NOT NULL default '0000-00-00',
  famile_status enum('1','2','3','4') NOT NULL default '1',
  address tinytext,
  email tinytext,
  phone tinytext,
  education_type enum('1','2','3','4','5','6','7','8') NOT NULL default '1',
  education_spec tinytext NOT NULL,
  prof_experience text,
  prof_skill text,
  driver_certificat enum('1','0') NOT NULL default '0',
  foreign_passport enum('1','0') NOT NULL default '0',
  recommendations tinytext,
  photo_path tinytext,                // =0
  shelf_time date default '2001-01-01',                // =0
  publish enum('1','0') default '1',
  verified enum('0','1') default '0',                // =0
  nature tinytext,                // =0
  avto_owne enum('0','1') NOT NULL default '0',
  PRIMARY KEY  (soiskatel_id),
  KEY dolgnost_id (dolgnost_id)
) TYPE=MyISAM;

CREATE TABLE soiskatel_education (
  education_id smallint(5) NOT NULL auto_increment,                // простой авто_инкремент
  soiskatel_id smallint(4) NOT NULL default '0',                // =$id;
  date_from date NOT NULL default '0000-00-00',
  date_to date NOT NULL default '0000-00-00',
  school_name tinytext NOT NULL,
  education_type enum('1','2','3','4','5','6','7','8') NOT NULL default '4',
  education_spec tinytext NOT NULL,
  education_mark tinyint(1) default NULL,
  PRIMARY KEY  (education_id),
  KEY soiskatel_id (soiskatel_id)
) TYPE=MyISAM;

CREATE TABLE soiskatel_work_stage (
  work_id smallint(5) NOT NULL auto_increment,                //  простой авто_инкремент
  soiskatel_id smallint(4) NOT NULL default '0',                // =$id;
  date_from date NOT NULL default '0000-00-00',
  date_to date NOT NULL default '0000-00-00',
  job_name tinytext NOT NULL,
  sfera_deiatelnosti_id tinyint(3) NOT NULL default '0',
  dolgnost_id tinyint(4) default NULL,
  obiazanosti tinytext,
  PRIMARY KEY  (work_id),
  KEY soiskatel_id (soiskatel_id)
) TYPE=MyISAM;


см. так же мои комментарии.
Вот такой я подумал сделать XML документ

PHP:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<soiskateli>
<soiskatel verified="1" dolgnost_id="3" phone="(3852) 45-5" education_spec="Прикладная информатика в экономике" poslednii_prosmotr="27.04.2004" recommendations="Василий Иванович Чапаев, командир конного полка." photo_path="Null" fio="Иванов Иван Иванович" prof_experience="Создание вэб-представительства компании ЧП &quot;з&quot;" foreign_passport="" publish="1" nature="Null" address="г.Барнаул, пр-т им. Ленина 24-6" kol_vo_prosmotrov="0" data_rogdenia="07.06.1975" famile_status="1" avto_owne="1" data_vnesenia="27.04.2004" work_graph="2" email="ivanov@ivan.ru" prof_skill="Отличные знание компьютерной техники..." sex="1" driver_certificat="1" zp="1000" shelf_time="01.01.2010" education_type="1" zaniatost="2">
<educations>
<education education_id="1" date_from="01.09.1985" date_to="30.05.1995" school_name="Средняя общеобразовательная школа 56" education_type="1" education_spec="" education_mark="5"/>
<education education_id="2" date_from="01.09.1995" date_to="31.05.2000" school_name="АлтГУ" education_type="1" education_spec="Прикладная информатика в экономике" education_mark="5"/>
</educations>
<works>
<work work_id="2" date_from="01.04.2004" date_to="30.04.2004" job_name="БЛВЗ" sfera_deiatelnosti_id="2" dolgnost_id="11" obiazanosti="Null"/>
<work dolgnost_id="2" sfera_deiatelnosti_id="3" date_from="09.03.2000" date_to="02.04.2004" work_id="1" obiazanosti="Null" job_name="АКОО &quot;Молодые журналисты Алтая&quot;"/>
</works>
</soiskatel>
<soiskatel data_vnesenia="10.05.2004" poslednii_prosmotr="01.01.0001" kol_vo_prosmotrov="0" fio="Чапаев Василий Иванович" sex="1" dolgnost_id="1" zp="15555" work_graph="1" zaniatost="1" data_rogdenia="01.10.1935" famile_status="2" address="Красногвардейская армия 1." email="chap@ev.ru" phone="89132174167" education_type="3" education_spec="Полководец" prof_experience="Управление красногвардейскй армией. Запуск в бой полков." prof_skill="Управление Петькой и Анкой - 5\nКонная навигация - 5" driver_certificat="1" foreign_passport="1" recommendations="Главный генерал красной армии..." photo_path="2_1084204522_face.jpg" shelf_time="30.07.2005" publish="1" verified="1" nature="Null" avto_owne="0">
<educations>
<education education_id="3" date_from="01.05.2004" date_to="30.05.2004" school_name="Третья ковалерийская академия" education_type="2" education_spec="Курсы повышения конного мастерства" education_mark="5"/>
</educations>
<works>
<work work_id="4" date_from="01.01.2001" date_to="01.01.2004" job_name="Первый ковалерийский полк" sfera_deiatelnosti_id="1" dolgnost_id="1" obiazanosti="Null"/>
<work work_id="3" date_from="01.05.2004" date_to="30.05.2004" job_name="Академия конного спорта" sfera_deiatelnosti_id="3" dolgnost_id="3" obiazanosti="Null"/>
</works>
</soiskatel>
</soiskateli>


(для 2х анкет к примеру)
Возможно есть предложения по его изменению?
Сделать его проблем нет... не заморачиваться и обычным

PHP:
$xml_text="<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>";


с подстановкой переменных и последующим выводом.
Опять же готов выслушать предложения...

На этапе парсенья этого док-та

PHP:

if (file_exists('anketi.xml')) {
    
$xml = simplexml_load_file('anketi.xml');
    
$s_id = 0;
    foreach (
$xml->soiskatel as $k) {
        if(
$xml->soiskatel[$s_id]){
            foreach(
$xml->soiskatel[$s_id]->attributes() as $a => $b) {
                
$b = iconv("UTF-8", "KOI8-R", "$b");
                echo 
$a,'=="',$b,"\"\n";
            }
            
// либо так
            
print "education_spec=".iconv("UTF-8", "KOI8-R", $xml->soiskatel[$s_id]['education_spec'])."\n";
            
$s_id++;
            print 
"\n\n\n";
        } else {
            exit(
'Failed to open anketi.xml.');
        }
    }
}



Вопрос первый, UTF и никак иначе? А то как я понял при парсеньи проблемы?..
Ваши советы?..

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 10-02-2005 20:20
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74522]

...а чего, с encoding="koi8-r" ошибки выдает?

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-02-2005 16:04
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74523]

SCHIZO угу... какие то запарки кри "импорте".. крякозяброй...

he][es добавил 13-02-2005 в 16:57:56:
SCHIZO а в общем и целом какие нить советы будут?
исправления? Ошибки?

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-02-2005 16:56
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74531]

he][es он у тебя вообще с кодировкой отличной от UTF-8 не работает или просто с читабельностью вывода пробемы?

P.S.
Я бы не стал использовать экпериментальное расширение для продакшн задач. У меня есть класс для создания собственного XML парсера. Тебе останется только написать произвольные функции обработки данных и подсунуть их экземпляру этого класса.

Если интересно могу выложить.

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-02-2005 08:14
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74559]

quote:
просто с читабельностью вывода пробемы

education_spec=="п÷я─п╦п╨п╩п╟п╢п╫п╟я▐ п╦п╫я└п╬я─п╪п╟я┌п╦п╨п╟ п╡ я█п╨п╬п╫п╬п╪п╦п╨п╣"
Ð_то он взял из файла в koi8-r информацию и вывел без трансформации из UTF в koi8-r. Я так понял читает он вроде правильно, но у него "внутренняя" кодировка UTF и он в ней выдает...

quote:
Я бы не стал использовать экпериментальное расширение для продакшн задач.

Т.е.? вы про что?..
quote:
Если интересно могу выложить.

Интересно конечно. Только я не совсем понимаю. У меня нет чёткого понмания что зачем и куда... Нужен ли мне парсер?
Мне не хватит того что я написал выше?
Я ведь прочто открываю файл и обращаюсь к переменным типа
print "education_spec=".iconv("UTF-8", "KOI8-R", $xml->soiskatel[$s_id]['education_spec'])."\n";
и засовываю их в БД...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-02-2005 11:01
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
fStrange
Участник+
Средний рейтинг: 5 | Оценок: 5
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2003
Место проживания:
Публикаций: 125
Статус: fStrange в оф-лайне
[сообщение #74563]


PHP:


setlocale
(LC_ALL, "ru_RU.CP1251");


эта строчка не поможет?

может из - за этого кракозябры?

__________________
Новая жизнь HMM3(Герои 3.5 WoG)http://hmm3.fclan.ru

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-02-2005 11:37
Нажмите сюда для просмотра профайла fStrange Отправить Персональное сообщение fStrange Посетить домашнию страничку fStrange! Найти сообщения от fStrange Добавить fStrange в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74573]

fStrange при чем тут cp1251?

he][es я запутался в твоих объяснениях... значит в XML документе ты объявляешь что он в кодировке UTF-8. А реально в какой? Ð_то раз.

Что мешает объявить кодировку не UTF-8 а KOI8-R? (или любую другую соответствующюю кодировке запроса при отправке формы) Ð_то два.

Третье. С какого момента текст становиться нечитабельным? На каком этапе? После какого преобразования? Или только при выводе из базы после записи, а напрямую из БД читается нормально?

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-02-2005 18:07
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74577]

quote:
А реально в какой?

Ð_еально в той, в какой указано. (Вообще мне бы желательно в кои. Что б не конвертировать при экспорте).

quote:
или любую другую соответствующюю кодировке запроса при отправке формы

Не совсем понял... Т.е. реальную кодировку? Так оно и есть!...

quote:
С какого момента текст становиться нечитабельным? На каком этапе?

Ну я ещё никуда ничего не пишу. Просто открываю файл. с той кодировкой которая указана в нем. (желательно КОИ) и вывожу все значения записаные в нем на экран... Тут то и всё "всплывает"...
Если не сделать
iconv("UTF-8", "KOI8-R", $xml->soiskatel[$s_id]['VAR_NAME'])
со всеми переменными, то он выведет все в UTF. воот. Соответственно и в базу он в UTF записал бы...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-02-2005 06:53
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74587]

he][es ты пробовал указывать в декларации XML документа encoding="KOI8-R"? Судя по последнему посту ты сразу туда UTF-8 пишешь.. Или я чего то недопонял?

__________________
FAQ OFF

Сообщение было отредактировано SCHIZO 16-02-2005 в 08:53

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-02-2005 08:50
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74604]

SCHIZO Угу. не совсем. Без разницы в какой кодировке док-т (декларация ВСЕГДА соответствует реальной кодировке (я всё правильно указываю)) на "экран" он всегда его в UTF отдает!..

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-02-2005 15:36
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74619]

he][es, тогда это не лечится... можно ускорить процесс выводя всю страницу в UTF-8, или накапливая данные в буфере вывода вызвать iconv один раз..

Ð_асширение simplexml экспериментальное, в доках ничего кроме функций и методов не описано. В продакшн вариантах функций работы с XML хоть константы какие то есть или параметры позволяющие кодировку явно указывать, а тут вообще ничего.

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-02-2005 18:49
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74629]

quote:
В продакшн вариантах функций работы с XML

Ð_то что такое???
quote:
можно ускорить процесс выводя всю страницу в UTF-8, или накапливая данные в буфере вывода вызвать iconv один раз..

1е не получится... Весь сайт на кои, 2ое тоже. это просто куча переменных. их как бы не накопишь...

И выводить как таковой текст мне в принципе не оч. важно. Ð_то будет оч. редко делаться, главное импорт в БД.

А так, кроме кодировки, мой вариант как? Пойдёт? Или есть какие нить глюки, подводные камни, etc.?

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-02-2005 22:35
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74643]

he][es ХЗ, я не пробовал..

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 17-02-2005 10:40
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #74644]

SCHIZO а по первому вопросу?..
(н в принцие? Грубых ошибок нет?)

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 17-02-2005 10:56
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #74662]

he][es, попробуй с error_reporting E_ALL, все увидишь сам..

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 17-02-2005 15:45
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя

Страницы (2): [1] 2 »


Формат времени GMT. Текущее время 02:51.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.63437796 seconds (98.71% PHP - 1.29% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.