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]   

> Описание: Как выбрать не сколько значений в одной строке
Telnet
Отправлено: 05 Февраля, 2012 - 10:57:12
Post Id


Частый гость


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


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




Здравствуйте, уважаемые форумчани!

Есть примерно вот такой HTML
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <TR>
  3. <TD ALIGN=CENTER><b>050 52 33 555</b></TD>
  4. <TD ALIGN=CENTER><font face="georgia">Супер МТС+СМС Базовый</font></a></TD>
  5.       <TD ALIGN=CENTER><font face="georgia">Новый</font></TD>
  6.       <TD ALIGN=CENTER><b>250</b></TD>
  7. </TR>
  8.  
  9. <TR>
  10. <TD ALIGN=CENTER><b>050 875 9995</b></TD>
  11. <TD ALIGN=CENTER><font face="georgia">Супер МТС все сети 2 нуля <font color="#CC0000">50 мин/50 коп все сети </font></a></TD>
  12. <TD ALIGN=CENTER><font face="georgia">Новый</font></TD>
  13. <TD ALIGN=CENTER><b>150</b></TD>
  14. </TR>
  15.  

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

Array
(
[0] => Array ( [0] =>050 52 33 555 [1] => 250)
[1] => Array ( [0] =>050 875 9995 [1] =>150)

Пытаюсь парсить так
PHP:
скопировать код в буфер обмена
  1.  
  2.         preg_match_all('/(?:ALIGN=CENTER><b>)(\(?([\d\sxXхХ]){0,3}\)?[\d\sxXхХ]{0,15})/im', $content, $match);
  3.        
  4.         echo "<pre>".htmlspecialchars(print_r($match[1],true), ENT_QUOTES).'</pre><br>';
  5.  

в $match[1] имею
Array
(
[0] => 050 52 33 555
[1] => 250
[2] => 050 875 9995
[3] => 150

Знаю что можно просто PHP уже этот массив привести к тому виду который меня интересует, но хотелось бы заставить это сделать регулярку.

(Отредактировано автором: 05 Февраля, 2012 - 10:59:01)

 
 Top
Panoptik
Отправлено: 05 Февраля, 2012 - 11:05:42
Post Id



Постоянный участник


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


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




/(?:<TR>[\s]+<TD\sALIGN=CENTER><b>)(\(?([\d\sxXхХ]){0,3}\)?[\d\sxXхХ]{0,15})/im


-----
Just do it
 
 Top
Telnet
Отправлено: 05 Февраля, 2012 - 11:30:32
Post Id


Частый гость


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


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




Panoptik Ваш код не правильный или Вы не до конца поняли что я хотел получить

/(?:ALIGN=CENTER><b>)(\(?([\d\sxXхХ]){0,3}\)?[\d\sxXхХ]{0,15}) тут любое кол-во всего чего угодно до тех пор пока мы встретим( [\d]{3,5}) /im'

Нужно Что то вроде этого, но немножко опять не то
/(?:ALIGN=CENTER><b>)(\(?([\d\sxXхХ]){0,3}\)?[\d\sxXхХ]{0,15}).*|\s*([\d]{3,5}) /im

[1] => Array
(
[0] => 050 52 33 555
[1] => 250
[2] => 050 875 9995
[3] => 150

(Отредактировано автором: 05 Февраля, 2012 - 11:30:55)

 
 Top
Panoptik
Отправлено: 05 Февраля, 2012 - 13:27:03
Post Id



Постоянный участник


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


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




тот патерн что я вам дал находил 2 телефонных номера проверял на http://www[dot]functions-online[dot]com/[dot][dot][dot]g_match_all[dot]html


-----
Just do it
 
 Top
Telnet
Отправлено: 05 Февраля, 2012 - 14:03:07
Post Id


Частый гость


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


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




Наверное я не ясно объяснил не нужно что б результат выглядел примерно так
Array
(
[0] => Array ( [0] =>050 52 33 555 [1] => 250)
[1] => Array ( [0] =>050 875 9995 [1] =>150)
 
 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