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 :: Проблема с регуляркой [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
ALEN
Отправлено: 05 Июня, 2009 - 21:54:50
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




Я так понял на странице несколько таких блоков и все их нужно обработать? Разница только в содержимом?
Если да, то можно это делать по типу парсера новостей.

Ничего сложного не вижу!
(Добавление)
CODE (text):
скопировать код в буфер обмена
  1. preg_match_all("#<a class=\"gen\" href=\"tracker\.php?f=([0-9]*)\">(.*)</a>#isU",$curlotvet,$gen);
  2. preg_match_all("#<a class=\"genmed\" href=\"\./(.*)\"><b>(.*)</b></a>#isU",$curlotvet,$genmed);
  3. preg_match_all("#<a class=\"med dLink\" href=\"\./(.*)\">#isU",$curlotvet,$meddLink);
  4. preg_match_all("#<td class=\"row4 small nowrap\" style=\"padding: 1px 3px 2px;\" title=\"Добавлен\">(.*)<p>(.*)</p>(.*)<p>(.*)</p>(.*)</td>#isU",$curlotvet,$row4smallnowrap);

(Отредактировано автором: 05 Июня, 2009 - 21:56:14)

 
 Top
Champion Супермодератор
Отправлено: 06 Июня, 2009 - 08:07:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




И она работает?
ALEN пишет:
php?f=(
Это означает, что буква p мажет быть, а может и не быть. А после нее идет буква f.
ALEN пишет:
</a>
А тут <> вот эти вещи бы заэкранировать
 
 Top
ALEN
Отправлено: 06 Июня, 2009 - 08:09:58
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




Champion
Экранируйте еще только знаки вопроса... Все остальное не нужно!
(Добавление)
CODE (text):
скопировать код в буфер обмена
  1. preg_match_all("#<a class=\"gen\" href=\"tracker\.php\?f=([0-9]*)\">(.*)</a>#isU",$curlotvet,$gen);
  2. preg_match_all("#<a class=\"genmed\" href=\"\./(.*)\"><b>(.*)</b></a>#isU",$curlotvet,$genmed);
  3. preg_match_all("#<a class=\"med dLink\" href=\"\./(.*)\">#isU",$curlotvet,$meddLink);
  4. preg_match_all("#<td class=\"row4 small nowrap\" style=\"padding: 1px 3px 2px;\" title=\"Добавлен\">(.*)<p>(.*)</p>(.*)<p>(.*)</p>(.*)</td>#isU",$curlotvet,$row4smallnowrap);

(Добавление)
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $curlotvet='<td class="row1"><a class="gen" href="tracker.php?f=521">Животный и растительный мир</a></td>
  3. <td class="row4 med tLeft">
  4. <a class="genmed" href="./viewtopic.php?t=310455"><b>Шершни из ада / Hornets From Hell [2002, SatRip]</b></a>
  5. </td>
  6. <td class="row1"><a class="med" href="tracker.php?pid=9231">oia</a></td>
  7. <td class="row4 med nowrap"><a class="med dLink" href="./download.php?id=260209">[<span class="dlSp"> </span><span class="bold" onclick="this.className=\'normal\'">DL</span><span class="dlSp"> </span>]</a></td>
  8. <td class="row4 small nowrap">729&nbsp;MB</td>
  9. <td class="row4 seedmed" title=" Last seen:
  10. Never"><b>0</b></td>
  11. <td class="row4 leechmed" title="Личеры"><b>0</b></td>
  12. <td class="row4 small" title="Ответов: 0">0</td>
  13. <td class="row4 small nowrap" style="padding: 1px 3px 2px;" title="Добавлен">
  14. <p>10:19</p>
  15. <p>31-Май-09</p>
  16. </td>';
  17.  
  18. preg_match_all("#<a class=\"gen\" href=\"tracker\.php\?f=([0-9]*)\">(.*)</a>#isU",$curlotvet,$gen);
  19. preg_match_all("#<a class=\"genmed\" href=\"\./(.*)\"><b>(.*)</b></a>#isU",$curlotvet,$genmed);
  20. preg_match_all("#<a class=\"med\" href=\"tracker\.php\?pid=([0-9]*)\">(.*)</a>#isU",$curlotvet,$med);
  21. preg_match_all("#<a class=\"med dLink\" href=\"\./(.*)\">#isU",$curlotvet,$meddLink);
  22. preg_match_all("#<td class=\"row4 small nowrap\" style=\"padding: 1px 3px 2px;\" title=\"Добавлен\">(.*)<p>(.*)</p>(.*)<p>(.*)</p>(.*)</td>#isU",$curlotvet,$row4smallnowrap);
  23.  
  24. echo $gen[1][0]."<br/>".$gen[2][0]."<br/>".$genmed[1][0]."<br/>".$genmed[2][0]."<br/>".$med[1][0]."<br/>".$med[2][0]."<br/>".$meddLink[1][0]."<br/>".$row4smallnowrap[2][0]."<br/>".$row4smallnowrap[4][0];
  25. ?>
 
 Top
Champion Супермодератор
Отправлено: 06 Июня, 2009 - 08:21:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Не нужно, но не буквенно-цифровые символы если заэкранируешь, ничего страшного не поизойдет. Я на всякий случай их экранирую обычно.
 
 Top
ALEN
Отправлено: 06 Июня, 2009 - 08:30:42
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




Champion
Я знаю, что ничего страшного не будет, но не люблю лишние символы в коде!
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB