Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Релулярки
 
 автор: OLi   (22.01.2009 в 21:48)   письмо автору
 
 

Вот достаточно долго перечитываю инфу по регулярным выражениям в php из разных источников и буквально с недавнего времени, что называется "дошло" как их использовать, но все же есть моменты, которые нигде не описываются. Вот например...
Есть часть кода html страницы с ссылками. Я составляю регулярное выражение для нахождения совпадения с ссылками и вывожу на печать, выводитяться строки с полным тегом <a> ,а мне надо вывести текст между .*>Текст</a>, вот как сделать это?
Вот мой простой пример:
#<td>.*<a[^>]+class=\"List_Head\">([^>]+)<\/a><\/h2>#si

Буду благодарен, если кто-то разъяснит мне мои "непонятки" по этой теме!

  Ответить  
 
 автор: AcidTrash   (22.01.2009 в 21:53)   письмо автору
 
   для: OLi   (22.01.2009 в 21:48)
 

>Есть часть кода html страницы с ссылками
Пример кода html страницы приведите, легче будет отталкиваться.
И в итоге вам нужен Текст со всех ссылок или которые содержат class="ListHead"?

  Ответить  
 
 автор: OLi   (22.01.2009 в 22:19)   письмо автору
 
   для: AcidTrash   (22.01.2009 в 21:53)
 

<img src="/img/small/9593.jpg" style="border: 1px solid rgb(0, 0, 0);" border="0" height="80" width="80"></a></td>
<td><img src="/img/empty.gif" height="1" width="15"></td><td width="100%"><h2 class="List_Head"><a href="/computers/04.09.2008/1.html" class="List_Head">Intel представила в России новые компоненты Intel Centrino 2</a></h2><p class="List_Date">4 сентября 2008</p><p class="List_Text">Корпорация Intel представила в России продукцию для ноутбуков на базе процессорной технологии Intel Centrino 2. Новая архитектура подразумевает использование мощного четырехядерного процессора и скоростной
-------
Выделенное, надо выдернуть, только содержащие класс List_Head!

  Ответить  
 
 автор: AcidTrash   (22.01.2009 в 22:45)   письмо автору
 
   для: OLi   (22.01.2009 в 22:19)
 

Пробуем
<pre>
<?php
$text
='<img src="/img/small/9593.jpg" style="border: 1px solid rgb(0, 0, 0);" border="0" height="80" width="80"></a></td>
<td><img src="/img/empty.gif" height="1" width="15"></td><td width="100%"><h2 class="List_Head"><a href="/computers/04.09.2008/1.html" class="List_Head">Intel представила в России новые компоненты Intel Centrino 2</a></h2><p class="List_Date">4 сентября 2008</p><p class="List_Text">Корпорация Intel представила в России продукцию для ноутбуков на базе процессорной технологии Intel Centrino 2. Новая архитектура подразумевает использование мощного четырехядерного процессора и скоростной'
;
preg_match_all("#<td>.*<a.*class=\"List_Head\">(.+?)</a>#is",$text$out);
unset(
$out[0]);
print_r($out);
?>

  Ответить  
 
 автор: OLi   (22.01.2009 в 22:54)   письмо автору
 
   для: AcidTrash   (22.01.2009 в 22:45)
 

Странно так:
Ваш и мой шаблон рабочий, идентично вырезает данные!

$pattern = '#<td>.*<a[^>]+class=\"List_Head\">([^>]+)<\/a><\/h2>#si';
preg_match_all($pattern, $jjj, $out);

print $out[1][0]; 
Сделал вывод таким образом и скрипт сделал то, что и требовалось! В этом и была проблема!
Спасибо!

  Ответить  
 
 автор: AcidTrash   (22.01.2009 в 23:01)   письмо автору
 
   для: OLi   (22.01.2009 в 22:54)
 

Ну вы уж немного переусердствовали. :)

>Сделал вывод таким образом и скрипт сделал то, что и требовалось
На будущее, лучше(перед) выводить результат print_r, понятнее будет, что и где.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования