|
|
|
| Как извлечь из HTML кода:
<td class=tdbr>Физическая культура (зачёт)</td>
<td class=tdbr><font color=red>Н/З_1</font><br><font color=red>Н/З_2</font><br><font color=red>Н/З_3</font><br><font size=-2>Зач</font></td>
<td class=tdb>15.12.05<br>30.12.05<br>17.02.06</td>
Название предмета
Сдачи
Даты
При этом количество пересдач неизвестно
Пробовал сделать
$pattern2 = "~<td class=tdbr>([^<]*)</td>[^<]+<td class=tdbr>(?:<font color=red>([^<]*)</font><br>)+<font size=-2>([^<]*)</font></td>~";
preg_match_all($pattern2,$text,$Exams,PREG_PATTERN_ORDER);
|
Но выдается только последний Н/З как все-таки добиться, чтобы получать весь список
Array
(
[0] => Физическая культура (зачёт)
Н/З_1
Н/З_2
Н/З_3
Зач
)
[1] => Array
(
[0] => Физическая культура (зачёт)
)
[2] => Array
(
[0] => Н/З_3
)
[3] => Array
(
[0] => Зач
)
)
я может что-то не понимаю, кто знает помогите пожалуйста | |
|
|
|
|
|
|
|
для: Igoris
(10.05.2007 в 13:13)
| | Можно примерно так
<? $pattern2 = "~<td[^>]*>((?!</td).)*?</td[^>]*>~si";
preg_match_all($pattern2, $text, $exams, PREG_PATTERN_ORDER);
print_r($exams);
print '<hr>';
for($i = 0; $i < count($exams[0]); $i++)
{
$arr[$i] = preg_split ('#\s*(</?[^>]+>)+\s*#', $exams[0][$i], -1, PREG_SPLIT_NO_EMPTY);
print_r($arr[$i]);
print '<hr>';
}
|
| |
|
|
|
|
|
|
|
для: EXP
(10.05.2007 в 15:42)
| | Спасибо! | |
|
|
|