[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите исправить регулярное выражение
olgatcpip
Всем здрасьте.

У меня вот что есть - поиск всех ссылок на странице сайта
PHP
$Pattern "/<a\s+href=(?:\"|'|)(.*)(?:\"|'|[>\s]).*>/isU";
$Matches = array();
                    
if (
preg_match_all($Pattern$Content$Matches))
   
$Links array_unique($Matches[1]);
    echo 
'<br />LINKS = <br><pre>';
}

$Content - html-код страницы
Все бы хорошо, но вот если на странице есть коментарии:
HTML
<!--
<li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
<li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li> -->

То эти ссылки тоже находятся.
Нужно, чтобы это не находилось.

Как в регулярном выражении написать !='<!--' ?
Надеюсь понятно выразилась.

Т.е. Чтобы под регулярное выражение не попадал html-код с коментариями, как в моём примере.

Помогите кто чем может.



Спустя 26 минут, 37 секунд (13.08.2009 - 18:48) olgatcpip написал(а):
Нашла ответ вот страница

Спустя 3 минуты, 40 секунд (13.08.2009 - 18:51) twin написал(а):
Не выйдет)))

Спустя 51 секунда (13.08.2009 - 18:52) twin написал(а):
PHP
$text preg_replace('/<!--(.*?)-->/Uis'''$text);

Вот так надо.

Спустя 11 минут, 24 секунды (13.08.2009 - 19:04) olgatcpip написал(а):
twin, поясни пожалуйста вопросик что такое?

Спустя 12 минут, 24 секунды (13.08.2009 - 19:16) twin написал(а):
Ну если ты сделаешь как там написано, то скрипт съест все от начала первого коммента, до конца последнего. То есть если будет так:
HTML
<!--
<li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
<li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li> -->

<li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
<li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li>

<!--
<li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
<li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li> -->

то ссылок ты не увидишь вообще.

Спустя 1 минута, 31 секунда (13.08.2009 - 19:18) twin написал(а):
А вопросик - это жадность. То есть когда он есть, то выбирается все до первого совпадения.

Спустя 24 минуты, 25 секунд (13.08.2009 - 19:42) olgatcpip написал(а):
a-a-a понятно, а я думала, что вопросик - это условие... blink.gif

Спустя 50 минут, 19 секунд (13.08.2009 - 20:32) twin написал(а):
Прикольная аватарко)))

Спустя 10 часов, 28 минут, 32 секунды (14.08.2009 - 07:01) olgatcpip написал(а):
twin, у меня не так как ты говоришь отработало.
Смотри.
PHP
echo 'begin<br>';        
$Content
='<br><!-- 
            <li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
            <li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li> -->Представитель государственнного регулирующего концерна Белнефтехим 
отказался подтвердить или опровергнуть эту информацию , 
а значит наши предприятия 
<a href="http://www.netco.ru" target="_blanck">хостинга</a>, 
других секторов и газет, а также <a href="http://www.utelco.ru" target="_blanck">доменов</a>, 
будут стоить также как и 
<a href="http://www.netco.ru" target="_blanck">
панель управления
</a>. Кроме того связь других планет, а также 
<a href="http://www.utelco.ru" target="_blanck">роботов</a>, 
будут происходить также как и <a href="http://www.netco.ru" target="_blanck">тв</a>, 
сославшись на ее конфиденциальный характер, передает Reuters.
<br>
<br>Источник: www.vz.ru<br><br><b>05.01.08</b> - <a href=\'news_5829.html\'>"Газпром" добрался до Нигерии</a><br><!-- 
            <li><a href="http://www.galnaftogas.com/press/">Прес-центр</a></li>
            <li><a href="http://www.galnaftogas.com/society/">Ми та суспільство</a></li> --><b>'
;
$Content = preg_replace('/<!--(.*?)-->/Uis', '',$Content);
$Pattern = "/<a\s+href=(?:\"|'|)(.*)(?:\"|'|[>\s]).*>/isU";
$Matches = array();

if (preg_match_all($Pattern, $Content, $Matches))
    {
        $Links = array_unique($Matches[1]);
        echo 'вывод -- ';print_r($Links);
    }

А если в регулярке вопросик написать, то он не найдёт вообще никаких ссылок

А если не ставить, то нажодит
PHP
Array ( [0] => http://www.netco.ru [1] => http://www.utelco.ru [5] => news_5829.html )
Это мне и нужно.

Спустя 4 минуты, 27 секунд (14.08.2009 - 07:05) olgatcpip написал(а):
Цитата
Прикольная аватарко)))
решила гламурчика добавить smile.gif

Спустя 34 минуты, 38 секунд (14.08.2009 - 07:40) twin написал(а):
Да, облажался чуток. Не заметил, что модификатор стоит U , а не u. Все верно. С таким модификатором не нужно вопросика.

Спустя 19 минут, 58 секунд (14.08.2009 - 08:00) olgatcpip написал(а):
понятно.


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.