Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Какой принцип построения парсера !?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
kappa
Отправлено: 11 Ноября, 2011 - 16:39:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Добрый вечер. Впервые сталкиваюсь с парсингом, так что сильно не судите.
Хочу понять какой принцип построения парсера такого вида.
Если данные нужно получить с прайса отфильтровать и сохранить в БД.
 
 Top
EuGen Администратор
Отправлено: 11 Ноября, 2011 - 16:45:52
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Если данные в XML, то все просто, http://php.su/functions/?simplexml_load_string как вариант. И далее - работать с массивом, заполняя БД.
Если файл - csv то, например, http://php.su/functions/?fgetcsv
Если формат другой, то в общем случае это - регулярные выражения.
preg_match_all - даст тот же массив.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kappa
Отправлено: 11 Ноября, 2011 - 17:07:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




EuGen
Спасибо, даже и не знал про simplexml_load_string, а уж тем более про .csv.
Но вот что-то не пойму как бы выглядело если файл в таком виде:

Цитата:
Название :
Вид:
Цена:

Название :
Вид:
Цена:


то если через
PHP:
скопировать код в буфер обмена
  1.  $xml = simplexml_load_string($string);
  2. foreach($xml as $kay => $value) {
  3.  
  4. }


а как это можно записать в БД чтобы было две отдельные строки ?

(Отредактировано автором: 11 Ноября, 2011 - 17:15:04)

 
 Top
vectorserver
Отправлено: 11 Ноября, 2011 - 17:14:47
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




Можно так.

PHP:
скопировать код в буфер обмена
  1.          $xml = simplexml_load_string($string);
  2. foreach($xml as $k) {
  3.  
  4.  
  5.  
  6. mysql_query("INSERT INTO connection SET
  7.                 cena='{$k['cena']}',
  8.                 vid='{$k['vid']}',
  9.                 name='{$k['name']}',");
  10. }

(Отредактировано автором: 11 Ноября, 2011 - 17:15:46)

 
 Top
kappa
Отправлено: 11 Ноября, 2011 - 17:19:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




vectorserver
Точно, спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB