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]   

> Без описания
romanov
Отправлено: 04 Мая, 2012 - 13:39:47
Post Id


Гость


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


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




Всем доброго времени суток, помогите пожалуйста написать рег.выражение которое получает теги между table

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <table cellpadding="4" cellspacing="0" border="0" class="text" width="100%">
  3. <tr class="cat-r1">
  4.         <td>
  5. Высота  </td>
  6.         <td style="padding-right:10px;border-left:1px solid #ffffff;">390</td>
  7. </tr>
  8. <tr class="cat-r2">
  9.         <td>
  10. Глубина </td>
  11.         <td style="padding-right:10px;border-left:1px solid #ffffff;">98</td>
  12. </tr>
  13. <tr class="cat-r1">
  14.         <td>
  15. Вес     </td>
  16.         <td style="padding-right:10px;border-left:1px solid #ffffff;">3.2</td>
  17. </tr>
  18. <tr class="cat-r2">
  19.         <td>
  20. Диагональ       </td>
  21.         <td style="padding-right:10px;border-left:1px solid #ffffff;">21.5</td>
  22. </tr>
  23. <tr class="cat-r1">
  24.         <td>
  25. Ширина  </td>
  26.         <td style="padding-right:10px;border-left:1px solid #ffffff;">528</td>
  27. </tr>
  28. <tr class="cat-r2">
  29.         <td>
  30. Вес без подставки       </td>
  31.         <td style="padding-right:10px;border-left:1px solid #ffffff;">0</td>
  32. </tr>
  33. <tr class="cat-r1">
  34.         <td>
  35. Глубина без подставки   </td>
  36.         <td style="padding-right:10px;border-left:1px solid #ffffff;">0</td>
  37. </tr>
  38. <tr class="cat-r2">
  39.         <td>
  40. Высота без подставки    </td>
  41.         <td style="padding-right:10px;border-left:1px solid #ffffff;">0</td>
  42. </tr>
  43. <tr class="cat-r1">
  44.         <td>
  45. Ширина без подставки    </td>
  46.         <td style="padding-right:10px;border-left:1px solid #ffffff;">0</td>
  47. </tr>
  48. <tr class="cat-r2">
  49.         <td>
  50. Тип     </td>
  51.         <td style="padding-right:10px;border-left:1px solid #ffffff;">LED-телевизор</td>
  52. </tr>
  53. <tr class="cat-r1">
  54.         <td>
  55. Серия   </td>
  56.         <td style="padding-right:10px;border-left:1px solid #ffffff;">НЕТ</td>
  57. </tr>
  58. <tr class="cat-r2">
  59.         <td>
  60. Дизайн (телевизоры)     </td>
  61.         <td style="padding-right:10px;border-left:1px solid #ffffff;">НЕТ</td>
  62. </tr>
  63. <tr class="cat-r1">
  64.         <td>
  65. PatrNumber/Артикул Производителя        </td>
  66.         <td style="padding-right:10px;border-left:1px solid #ffffff;">LEM2288FDT</td>
  67. </tr>
  68. <tr class="cat-r2">
  69.         <td>
  70. Брэнд   </td>
  71.         <td style="padding-right:10px;border-left:1px solid #ffffff;">BBK</td>
  72. </tr>
  73. <tr class="cat-r1">
  74.         <td>
  75. Модель  </td>
  76.         <td style="padding-right:10px;border-left:1px solid #ffffff;">LEM2288FDT</td>
  77. </tr>
  78. <tr class="cat-r2">
  79.         <td>
  80. Диагональ экрана        </td>
  81.         <td style="padding-right:10px;border-left:1px solid #ffffff;">22" (55.88 см)</td>
  82. </tr>
  83. <tr class="cat-r1">
  84.         <td>
  85. Цвет    </td>
  86.         <td style="padding-right:10px;border-left:1px solid #ffffff;">черный металлик</td>
  87. </tr>
  88. <tr class="cat-r2">
  89.         <td>
  90. Разрешение экрана (телевизоры)  </td>
  91.         <td style="padding-right:10px;border-left:1px solid #ffffff;">FULL HD</td>
  92. </tr>
  93. <tr class="cat-r1">
  94.         <td>
  95. Поддержка 3D    </td>
  96.         <td style="padding-right:10px;border-left:1px solid #ffffff;">Нет</td>
  97. </tr>
  98.  
  99. </table>
  100.  


Пробовал получить содержимое с помощью

PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match('#<table cellpadding="4" cellspacing="0" border="0" class="text" width="100%">\s+(.*?)\s+</table>#im',$content,$description);
  3.  
  4.  


не получилось
 
 Top
Alho
Отправлено: 04 Мая, 2012 - 13:47:48
Post Id



Посетитель


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


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




Уточните, что значит "получает" теги?

К примеру содержимое между тегами table можно получить так:
PHP:
скопировать код в буфер обмена
  1. $out=preg_replace("/(<table)[\s\S]*?>/", "", $out);
  2. echo $out;
 
 Top
romanov
Отправлено: 04 Мая, 2012 - 13:53:57
Post Id


Гость


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


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




Спасибо вам за ответ, вы правильно поняли надо получить содержимое между table .... и /table но то что вы написали работает некорректно.
 
 Top
Alho
Отправлено: 04 Мая, 2012 - 13:57:56
Post Id



Посетитель


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


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




romanov пишет:
Спасибо вам за ответ, вы правильно поняли надо получить содержимое между table .... и /table но то что вы написали работает некорректно.


Уточните тогда, что вы хотите получить - руками удалите лишнее из вышепредставленного вами кода.
 
 Top
romanov
Отправлено: 04 Мая, 2012 - 14:01:26
Post Id


Гость


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


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




Есть страница с html разметкой

$html ="

<html>
<head><title></title></head>
<body>

Код таблицы который написан выше

</body>
</html>
"


Надо получить эту таблицу
 
 Top
Alho
Отправлено: 04 Мая, 2012 - 14:15:11
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. preg_match("|(<table)[\s\S]*?>[\s\S]*<\/table>|", $in, $out);
 
 Top
romanov
Отправлено: 04 Мая, 2012 - 14:29:45
Post Id


Гость


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


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




Благодарю, выражение работает
 
 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