|
|
|
| Нашел пример одного из граберов, помогите пожалуйста, разобраться в нем.
Вот код:
<?php
$t='<div style="padding-top: 10px;">
<table border=0 cellspacing=0 cellpadding=0 align="center">
<tr>
<td class="txtr" width=300><a href="team.php?num=8618" class="mnu">"<b>Лайнс</b>" Макола</a>
<td class="txtl" width=300> - <a href="team.php?num=8562" class="mnu">"<b>Виктори</b>" Коломбо</a>
<td class="txtl" width=50><a href="result.php?day=1920&a=8618&b=8562" target="_blank" class="mnu"><b>0:0</b></a> <a href="result.php?day=1920&a=8618&b=8562" target="_blank"><img src="pics/report2.gif" border=0 width=17 height=12></a>
<tr>
<td class="txtr" width=300><a href="team.php?num=8624" class="mnu">"<b>Сент-Люсиас</b>" Маннар</a>
<td class="txtl" width=300> - <a href="team.php?num=8616" class="mnu">"<b>Гранд Хотел</b>" Веннапува</a>
<td class="txtl" width=50><a href="result.php?day=1920&a=8624&b=8616" target="_blank" class="mnu"><b>0:3</b></a> <a href="result.php?day=1920&a=8624&b=8616" target="_blank"><img src="pics/report2.gif" border=0 width=17 height=12></a>
и так 8 матчей
</table>
</div>
';
preg_match_all("#<td class=\"txtr\" width=300><a.*?class=\"mnu\"[^<]+<[^>]+>(.+?)<#is", $t,$out);
unset ($out[0]);
preg_match_all("#<td class=\"txtl\" width=300> - <a.*?class=\"mnu\"[^<]+<[^>]+>(.+?)<#is", $t,$out1);
unset ($out1[0]);
preg_match_all("#<td class=\"txtl\" width=50><a.*?class=\"mnu\"[^<]+<[^>]+>(.+?)<#is", $t,$out2);
unset ($out2[0]);
for($i=0;$i<count($out[1]); $i++){
print $out[1][$i]." - ".$out1[1][$i]. " ".$out2[1][$i]."<br>";
}
?>
|
Собственно, я вижу что здесь идет поиск совпадения, а затем идут символы, которые я не могу понять, это:
[^<]+<[^>]+>(.+?)<#is", $t,$out);
|
Что это означает и как в этом разбираться, просто поняв эту структуру я смогу написать грабер сам, буду благодарен любой помощи и ссылкам на литературу. | |
|
|
|
|
|
|
|
для: Xayc
(23.08.2009 в 11:15)
| | docs.php.net::Регулярные выражения в деталях
сохраните страницу и изучайте
[^<]+< сколько-то "не<" символов за которыми "<"
[^>]+> сколько-то "не>" символов за которыми ">"
(.+?) захват скольки-то любых символов за которыми первое-же совпадение записанного дальше
<
#is - модификаторы, один для того чтобы совпадали заглавные со строчными буквы и наоборот
(поддерживается в зависимости от кодировки алфавитов и текущей настройки локали php, здесь не нужен)
другой для того чтобы точка совпадала так-же с переносами строк
о модификаторах здесь
docs.php.net::Модификаторы шаблонов | |
|
|
|
|
|
|
|
для: heed
(23.08.2009 в 13:49)
| | Спасибо большое! Буду юзать! | |
|
|
|