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
Форумы портала PHP.SU :: Версия для печати :: Проблема с регуляркой
Форумы портала PHP.SU » PHP » Регулярные выражения » Проблема с регуляркой

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

1. UA.ProG - 17 Мая, 2009 - 12:23:56 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $content = file_get_contents('http://www.***.ru/');
  3.   preg_match_all('%<td class="contentheading1">()<\/a></td>%is',$content,$tmp);
  4.   print_r($tmp);
  5. ?>
2. Champion - 17 Мая, 2009 - 12:31:32 - перейти к сообщению
Ну и в чем проблема-то? Чего получить надо? В скобках, кстати чего - пустота?
3. UA.ProG - 17 Мая, 2009 - 15:12:50 - перейти к сообщению
получить надо имя девушки которая отображена на том сайте.
что () что (.+?) тоже самое возвратит все что находится перед и после
4. Champion - 17 Мая, 2009 - 16:05:49 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. /\<td class=.contentheading1.\>\<a[^>]+\>([^<]+)\<a\>/
5. UA.ProG - 17 Мая, 2009 - 19:58:48 - перейти к сообщению
Champion пишет:
CODE (text):
скопировать код в буфер обмена
  1. /\<td class=.contentheading1.\>\<a[^>]+\>([^<]+)\<a\>/


Array ( [0] => Array ( ) [1] => Array ( ) )

не работает


-----еще есть регулярка----

Текст:

<div class="articleBody">

<div class="imgBox">
<a href="/images/news/ready/1/1/7/8/117868.jpg" onclick="return Chrome.Images.viewPic('/image/index/name/imagenews/id/117868');" ><img src="/images/news/small/1/1/7/8/117868.jpg" width="140" height="79" alt="Фото: РИА Новости" title="Фото: РИА Новости" border="1px" /></a>
</div>
Рабочие российского завода Ford в городе Всеволожск Ленинградской области 15 мая выйдут на митинг против планируемого с июня этого года введения на предприятии сокращенной рабочей недели, сообщил РИА Новости председатель профорганизации ЗАО "Форд Мотор Компани" Алексей Этманов.<br />
<br />
Ситуация на заводе обострилась после того, как в конце марта администрация ознакомила рабочих с приказом о переходе с 8 июня по 5 октября на четырехдневную рабочую неделю. Рабочие считают, что это приведет к 20-процентному сокращению их заработной платы, которая сейчас в среднем составляет около 27 тысяч рублей.<br />
<br />
"В пятницу мы проведем митинг против четырехдневной рабочей недели. Акция согласована, в ней примут участие до 300 человек", - сказал Этманов. </div>
<!-- end of article -->

<div class="clrflt">


Надо извлечь из него все что находится между </div> и </div>

Пожалуйста давайте только проверенные регулярки на практике
6. Champion - 17 Мая, 2009 - 20:16:20 - перейти к сообщению
UA.ProG пишет:
не работает
попробуй слеш перед > в квадратных скобках поставить. $content, кстати, не пустой?

Извлечь между <div> уже делали. И не раз. Поищи. Таоке наверное даже в примерах в мануале есть.
7. UA.ProG - 17 Мая, 2009 - 20:47:44 - перейти к сообщению
Можешь приести пример?
Контент не пустой.
(Добавление)
~</div>(.*?)</div>~i

Делаю так ничего не получается

\ - ставить только когда разделителем явлется \ поєтому прозьба не писать за єто
8. vitaliy_mad - 17 Мая, 2009 - 21:54:39 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. preg_match_all("/<\/div>(.*?)<\/div>/is",$content,$match);
9. chaynyk - 17 Мая, 2009 - 23:19:12 - перейти к сообщению
vitaliy_mad пишет:
CODE (text):
скопировать код в буфер обмена
  1. preg_match_all("/<\/div>(.*?)<\/div>/is",$content,$match);

Вот так попробуй Радость
PHP:
скопировать код в буфер обмена
  1. $info='<!-- end of article';
  2. preg_match(/<(div).*?(class)\=\"(imgBox)(\n|.)*?<\!\-\-\s(end)\s(of)\s(article)/i,$content, machindex) ;
  3. $content1=machindex[0];
  4. preg_match(/<(a)\s(href)\=\".*?\"/i,$content1, machimeg) ;
  5. $imeg=machimeg[0];
  6. $imeg=$domen.$imeg ;
  7. $content1=str_replace($info,'',$wtitle);
  8. $conectinfo=strip_tags($content1);
  9. echo='<p><b>Фото</b></p>'.$imeg.'<br>';
  10. echo='<p>Текст:<br>'.$imeg.'</p>';
10. разум - 01 Июня, 2009 - 15:53:39 - перейти к сообщению
Господа, нуждаюсь в помощи. Уже не первый час бьюсь, толку 0.
Есть страница, получаемая curl'ом
в странице повторяется такой код
Цитата:
<td class="row1"><a class="gen" href="tracker.php?f=521">Животный и растительный мир</a></td>
<td class="row4 med tLeft">
<a class="genmed" href="./viewtopic.php?t=310455"><b>Шершни из ада / Hornets From Hell [2002, SatRip]</b></a>
</td>
<td class="row1"><a class="med" href="tracker.php?pid=9231">oia</a></td>
<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>
<td class="row4 small nowrap">729&nbsp;MB</td>
<td class="row4 seedmed" title=" Last seen:
Never"><b>0</b></td>
<td class="row4 leechmed" title="Личеры"><b>0</b></td>
<td class="row4 small" title="Ответов: 0">0</td>
<td class="row4 small nowrap" style="padding: 1px 3px 2px;" title="Добавлен">
<p>10:19</p>
<p>31-Май-09</p>
</td>

Жирным выделены те значения, которые надо выцепить. В статике (каждая строка отдельно) значение получить удается, а вот при парсинге целой страницы - нет. Буду рад помощи.
11. Champion - 01 Июня, 2009 - 16:34:52 - перейти к сообщению
разум пишет:
(каждая строка отдельно) значение получить удается, а вот при парсинге целой страницы - нет.
флаг m - многострочный поиск, флаг s чтобы перевод строки тоже относился к любым символам
12. разум - 03 Июня, 2009 - 08:00:11 - перейти к сообщению
Тут более менее разобрался.
Парсинг такой строки
Цитата:
<a class="genmed" href="./viewtopic.php?t=310455"><b>Шершни из ада / Hornets From Hell [2002, SatRip]</b></a>
идет через
CODE (text):
скопировать код в буфер обмена
  1. preg_match_all('/\<a[^\>]+href=([\'"]).\/viewtopic\.php\?t=(\d+)\\1[^\>]*><b>([^\<]+)\<\/b\>\<\/a\>/is', $page, $out2, PREG_SET_ORDER);

Но в некоторых названиях есть одиночный тег <wbr>:
Цитата:
<a class="genmed" href="./viewtopic.php?t=311534"><b>НЕДЕЛЯ в НБА с В.ГОМЕЛЬСКИМ<wbr> на НТВ+ [26.05.2009, Баскетбол , TVRip] [2009, TVRip]</b></a>

Как сделать так, чтобы он игнорировался?
13. Champion - 03 Июня, 2009 - 08:33:53 - перейти к сообщению
брать любой символ не до '<' а именно до '</a>'
14. разум - 03 Июня, 2009 - 09:03:18 - перейти к сообщению
Любые символы до </a> - это так: ([^\<\/a\>]+)?

Еще встала проблема, если название содержит &nbsp; то оно не выводится
Цитата:
<a class="genmed" href="./viewtopic.php?t=956"><img src="images/tor_gold.gif" width="16" height="15" title="Золото" />&nbsp;<b>Люди Икс: Начало. Росомаха / X-Men Origins: Wolverine (Гэвин Худ) [2009 г., фантастика, боевик, триллер, фэнтези, DVDRip]</b></a>
15. Champion - 03 Июня, 2009 - 13:56:17 - перейти к сообщению
разум пишет:
Любые символы до </a> - это так: ([^\<\/a\>]+)?
нет, не так. Первую регулярку сам писал?

 

Powered by ExBB FM 1.0 RC1