powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Регулярное выражение
3 сообщений из 3, страница 1 из 1
(PHP) Регулярное выражение
    #37980924
Netot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь функцией preg_match_all разбить таблицу:
Код: php
1.
preg_match_all('/<tr><td colspan="2">(.*?)<\/td><\/tr>((?:[\s]*<tr>[\s]*<td.*?>.*?<\/td>[\s]*<td,*,>.*?<\/td>[\s]*<\/tr>[\s]*)+)/is', $file, $return, PREG_SET_ORDER);


Таблица:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<table>

	<tr><td colspan="2">Заголовок1</td></tr>
	<tr><td class="hhh">1-1</td><td>1-1</td></tr>
	 <tr>  <td>1-2</td><td>1-2</td></tr>
	<tr><td>1-3</td>      <td>1-3</td></tr>
	<tr><td>1-4</td><td>1-4</td>      </tr>
	
	<tr><td colspan="2">Заголовок2</td></tr>
	<tr><td class="hhh">2-1</td><td class="hhh">2-1</td></tr>
	<tr><td>2-2</td>           <td>2-2</td>      </tr>
	<tr><td>2-3</td>       <td class="hhh">2-3</td></tr>
	<tr><td>2-6</td><td>2-5</td></tr>
	<tr>          <td>2-7</td><td>2-7</td></tr>
	
</table>



На выходе должен получится массив типа такого:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Array
(
    [0] => Array
        (
            [0] => <tr><td colspan="2">Заголовок1</td></tr>
	<tr><td class="hhh">1-1</td><td>1-1</td></tr>
	<tr>  <td>1-2</td><td>1-2</td></tr>
	<tr><td>1-3</td>      <td>1-3</td></tr>
	<tr><td>1-4</td><td>1-4</td>      </tr>
	

            [1] => Заголовок1
            [2] => 
	<tr><td class="hhh">1-1</td><td>1-1</td></tr>
	<tr>  <td>1-2</td><td>1-2</td></tr>
	<tr><td>1-3</td>      <td>1-3</td></tr>
	<tr><td>1-4</td><td>1-4</td>      </tr>
	

        )
    [1] => Array
        (
            [0] => 	<tr><td colspan="2">Заголовок2</td></tr>
	<tr><td class="hhh">2-1</td><td class="hhh">2-1</td></tr>
	<tr><td>2-2</td>           <td>2-2</td>      </tr>
	<tr><td>2-3</td>       <td class="hhh">2-3</td></tr>
	<tr><td>2-6</td><td>2-5</td></tr>
	<tr>          <td>2-7</td><td>2-7</td></tr>
	

            [1] => Заголовок2
            [2] => 
	<tr><td class="hhh">2-1</td><td class="hhh">2-1</td></tr>
	<tr><td>2-2</td>           <td>2-2</td>      </tr>
	<tr><td>2-3</td>       <td class="hhh">2-3</td></tr>
	<tr><td>2-6</td><td>2-5</td></tr>
	<tr>          <td>2-7</td><td>2-7</td></tr>
	

        )
		
)



Но почему-то не получается. Что не так?
...
Рейтинг: 0 / 0
(PHP) Регулярное выражение
    #37980928
Netot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправка:
Код: php
1.
preg_match_all('/<tr><td colspan="2">(.*?)<\/td><\/tr>((?:[\s]*<tr>[\s]*<td.*?>.*?<\/td>[\s]*<td.*?>.*?<\/td>[\s]*<\/tr>[\s]*)+)/is', $file, $return, PREG_SET_ORDER);
...
Рейтинг: 0 / 0
(PHP) Регулярное выражение
    #37981552
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Netot,

Код: php
1.
2.
3.
preg_match_all('#<tr><td colspan="2">(.*?)</td></tr>|(<tr>.*</tr>)#i', $html, $out);
$out = array_filter($out[1]) + array_filter($out[2]);
print_r($out);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Регулярное выражение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]