Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг html таблицы 
:(
    Опции темы
s0lman
Дата 26.11.2010, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Всем привет. Проблема, вроде, банальная, но решения не нашел.
В общем, имеем таблицу
Код

<tr><td>?</td>55<td>Zaporozhye</td><td>Vnukovo</td><td>OZH//VKO</td></tr>777
<tr><td>!</td><td>Dnepr</td><td>Boryspil</td><td>DP//BP</td></tr>

Зачем включил цифры, скажу ниже
Хочу ее отпарсить одним выражением, причем, чтоб строки сохранялись как отдельные элементы массива, то есть результат был бы примерно таким
Код

array(
    0 => array('?','Zaporozhye', ... ),
    1 = > array('!','Dnepr', ... )
)

поэтому простая регулярка вида 
Код

<td>(.*?)<\/td>

не поможет.
Составил след. регулярку
Код

<tr>(<td>(.*?)<\/td>)+<\/tr>

но она работает некорректно:
1. в диапазон вхождений попадает 55 (хотя вроде бы не должна, жадность ведь подавил)
2. в массиве значений возвращается только значение последней ячейки. Почему?
Поделюсь ссылкой - регулярки тестирую здесь


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
CruorVult
Дата 26.11.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: нет
Всего: 28



для начала нужно разбить по <tr>, для этого воспользуемся
Код

<tr>.*<\/tr>

потом по <td>
Код

<td>[^<]+<\/td>

PM MAIL Skype   Вверх
s0lman
Дата 26.11.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



То есть одной регуляркой ну никак? smile
И меня ж еще интересует вопрос, почему моя регулярка не находит то, что я хочу)


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
CruorVult
Дата 26.11.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: нет
Всего: 28



Цитата(s0lman @  26.11.2010,  13:17 Найти цитируемый пост)
То есть одной регуляркой ну никак?

по-моему никак.

Цитата(s0lman @  26.11.2010,  13:17 Найти цитируемый пост)
И меня ж еще интересует вопрос, почему моя регулярка не находит то, что я хочу)

<tr>(<td>(.*?)<\/td>)+<\/tr> - ищет от 1-го открывающегося td до последнего закрывающегося в пределах tr, вот и 55 попадает.
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.