Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как загнать таблицу в массив
 
 автор: Port_Artur1   (04.02.2007 в 20:33)   письмо автору
 
 

Как выбрать из таблицы(не XML - обычная TABLE) текст не являющийся тегами и занести его в массив?
Где то я видел подобное, но вот найти никак не могу!

   
 
 автор: ddhvvn   (04.02.2007 в 20:35)   письмо автору
 
   для: Port_Artur1   (04.02.2007 в 20:33)
 

Наверное, с помощью функции preg_match_all ...

   
 
 автор: Port_Artur1   (04.02.2007 в 22:39)   письмо автору
 
   для: ddhvvn   (04.02.2007 в 20:35)
 

В середине таблице встречаются объединённые ячейки и их местоположение постоянно меняется и неизвестно. А preg_match_all, как мне кажется используется когда вся таблица одинаковая.
Может я и не прав, поясните пожалуйста!


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffff99>
<TABLE width="100%" border=0>
<TBODY>
<TR align=middle bgColor=#ffff99>
<TD colSpan=7>
<DIV align=center><STRONG>Межгосударственные рейсы</STRONG></DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Москва </TD>
<TD width="15%">Боков </TD>
<TD width="10%">
<DIV align=center>1246 </DIV></TD>
<TD width="15%">
<DIV align=center>140</DIV></TD>
<TD width="15%">
<DIV align=center>20:05</DIV></TD>
<TD width="15%">
<DIV align=center>23:05</DIV></TD>
<TD width="15%">
<DIV align=center>116.30</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Парус </TD>
<TD width="15%">Ветер </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>151</DIV></TD>
<TD width="15%">
<DIV align=center>10:55</DIV></TD>
<TD width="15%">
<DIV align=center>14:03</DIV></TD>
<TD width="15%">
<DIV align=center>125.32</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">поле </TD>
<TD width="15%">небо </TD>
<TD width="10%">
<DIV align=center>357 </DIV></TD>
<TD width="15%">
<DIV align=center>151</DIV></TD>
<TD width="15%">
<DIV align=center>20:05</DIV></TD>
<TD width="15%">
<DIV align=center>23:10</DIV></TD>
<TD width="15%">
<DIV align=center>125.32</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Вода</TD>
<TD width="15%">огонь </TD>
<TD width="10%">
<DIV align=center>ч/д</DIV></TD>
<TD width="15%">
<DIV align=center>491</DIV></TD>
<TD width="15%">
<DIV align=center>10:30</DIV></TD>
<TD width="15%">
<DIV align=center>20:39</DIV></TD>
<TD width="15%">
<DIV align=center>370.52</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Ветер </TD>
<TD width="15%">Поле </TD>
<TD width="10%">
<DIV align=center>ч/д</DIV></TD>
<TD width="15%">
<DIV align=center>119</DIV></TD>
<TD width="15%">
<DIV align=center>18:29</DIV></TD>
<TD width="15%">
<DIV align=center>21:04</DIV></TD>
<TD width="15%">
<DIV align=center>99.08</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Солнце </TD>
<TD width="15%">Луна</TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>48</DIV></TD>
<TD width="15%">
<DIV align=center>16:30</DIV></TD>
<TD width="15%">
<DIV align=center>17:30</DIV></TD>
<TD width="15%">
<DIV align=center>39.90</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left colSpan=7>
<DIV align=center><STRONG>Межобластные рейсы</STRONG></DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Свет </TD>
<TD width="15%">Воздух </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>365</DIV></TD>
<TD width="15%">
<DIV align=center>3:50</DIV></TD>
<TD width="15%">
<DIV align=center>10:33</DIV></TD>
<TD width="15%">
<DIV align=center>319.05</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">право </TD>
<TD width="15%">Дело </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>365</DIV></TD>
<TD width="15%">
<DIV align=center>23:12</DIV></TD>
<TD width="15%">
<DIV align=center>6:01</DIV></TD>
<TD width="15%">
<DIV align=center>316.00</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left colSpan=7>
<DIV align=center><STRONG>Междугородние рейсы</STRONG></DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Колода </TD>
<TD width="15%">Карта </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>140</DIV></TD>
<TD width="15%">
<DIV align=center>15:25</DIV></TD>
<TD width="15%">
<DIV align=center>18:19</DIV></TD>
<TD width="15%">
<DIV align=center>116.30</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Карта </TD>
<TD width="15%">Колода </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>151</DIV></TD>
<TD width="15%">
<DIV align=center>12:26</DIV></TD>
<TD width="15%">
<DIV align=center>15:30</DIV></TD>
<TD width="15%">
<DIV align=center>125.32</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left colSpan=7>
<DIV align=center><STRONG>Пригородные рейсы</STRONG></DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Село </TD>
<TD width="15%">Город </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>48</DIV></TD>
<TD width="15%">
<DIV align=center>5:30</DIV></TD>
<TD width="15%">
<DIV align=center>6:42</DIV></TD>
<TD width="15%">
<DIV align=center>33.60</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Город </TD>
<TD width="15%">Село </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>48</DIV></TD>
<TD width="15%">
<DIV align=center>12:20</DIV></TD>
<TD width="15%">
<DIV align=center>13:32</DIV></TD>
<TD width="15%">
<DIV align=center>33.60</DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Город </TD>
<TD width="15%">Село </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>48</DIV></TD>
<TD width="15%">
<DIV align=center>17:10</DIV></TD>
<TD width="15%">
<DIV align=center>18:22</DIV></TD>
<TD width="15%">
<DIV align=center>33.60</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left colSpan=7>
<DIV align=center><STRONG>Междугородние суперрейсы</STRONG></DIV></TD></TR>
<TR bgColor=#ffff99>
<TD align=left width="15%">Страна </TD>
<TD width="15%">Страна </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>149</DIV></TD>
<TD width="15%">
<DIV align=center>12:55</DIV></TD>
<TD width="15%">
<DIV align=center>16:01</DIV></TD>
<TD width="15%">
<DIV align=center>120.70</DIV></TD></TR>
<TR bgColor=#ffffcc>
<TD align=left width="15%">Вода </TD>
<TD width="15%">Вода </TD>
<TD width="10%">
<DIV align=center>ежедн.</DIV></TD>
<TD width="15%">
<DIV align=center>225</DIV></TD>
<TD width="15%">
<DIV align=center>9:20</DIV></TD>
<TD width="15%">
<DIV align=center>13:40</DIV></TD>
<TD width="15%">
<DIV align=center>181.50</DIV></TD></TR></TBODY></TABLE></BODY></HTML>

   
 
 автор: Port_Artur1   (04.02.2007 в 23:03)   письмо автору
 
   для: Port_Artur1   (04.02.2007 в 22:39)
 

Помогите понять как мне это сделать, как вылавливать объединённые ячейки.

   
 
 автор: ddhvvn   (05.02.2007 в 14:04)   письмо автору
 
   для: Port_Artur1   (04.02.2007 в 23:03)
 

В смысле "объединенные"?

   
 
 автор: Loki   (05.02.2007 в 14:11)   письмо автору
 
   для: Port_Artur1   (04.02.2007 в 23:03)
 

<?
preg_match_all
('/<TD colSpan=\d+>(.*?)<\/td>/is'$table$result);
print_r($result);

ну или что-то вроде...

   
 
 автор: Port_Artur1   (05.02.2007 в 19:26)   письмо автору
 
   для: Loki   (05.02.2007 в 14:11)
 

Я понимаю что можно сначалавыбрать все ячейки кроме( TD colSpan) , потом выбрать ячейки с TD colSpan, но как их потом поставить на свои места что - то никак не помогу понять.
Как я буду знать, что что после Пргородных рейсов , их, рейсов идёт например 3, а не 7, и в это место вставить междугородние рейсы Поясните пожалуйста !!!!
Ну я что-то не могу понять.

   
 
 автор: вит   (05.02.2007 в 20:40)   письмо автору
 
   для: Port_Artur1   (05.02.2007 в 19:26)
 

Ты объясни конкретно каким образом ты хочешь их объеденить в массив, чтобы каждая строка с colSpan являлась отдельным элементом массива который в свою очередь будет массивом или как

   
 
 автор: Loki   (05.02.2007 в 21:43)   письмо автору
 
   для: Port_Artur1   (05.02.2007 в 19:26)
 

>и в это место вставить
Очень подмывает порекомендовать в том же духе, но лучше дождусь конкретизации задачи:)

   
 
 автор: Port_Artur1   (05.02.2007 в 22:15)   письмо автору
 
   для: Loki   (05.02.2007 в 21:43)
 

Ладно, ну может я конечно плохо выразился,
В общем нужно извлечь данные из этой таблицы и поместить в свою таблицу, сохранив первоначальную структуру (количество сток, столбцов, их очерёдность). В общем вопрос таков.

То что всю информацию можно извлечь с помощью preg_match_all это понятно.
Но как сохранить первоначальную структуру в новой таблице.

   
 
 автор: вит   (08.02.2007 в 16:44)   письмо автору
 
   для: Port_Artur1   (05.02.2007 в 22:15)
 

Ну так извлекай структура то сохраниться,

   
 
 автор: вит   (10.02.2007 в 12:57)   письмо автору
 
   для: Port_Artur1   (05.02.2007 в 22:15)
 

ну так preg_match_all сохраняет

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования