есть ссылка
<a href="то что мне нужно получить" title="города и курорты ТУТ НАЗВАНИЕ СТРАНЫ КОТОРОЕ МЕНЯЕТСЯ">Города и курорты</a>
делаю такой регуляркой
preg_match('#<a\s+href="(.*)"\s+title="города и курорты[^\"]*"[^>]*>Города и курорты</a>#Usi',$page[1],$link);
Что делаю не так обьясните пожалуйста!!
Вот ссылка на страницу для теста http://vernisag-tambov.ru/index.php?option...%B0%D0%B4%D1%8B
заранее всем спасибо !!
Спустя 5 минут, 10 секунд (28.08.2011 - 19:15) Winston написал(а):
Так ?
$str = '<a href="то что мне нужно получить" title="города и курорты ТУТ НАЗВАНИЕ СТРАНЫ КОТОРОЕ МЕНЯЕТСЯ">Города и курорты</a>';
preg_match("#<a[\s\w]+href=(\"|')(.*)\\1[^>]*>#isuU", $str, $link);
echo '<pre>'.htmlspecialchars(print_r($link, true)).'</pre>';
Спустя 6 минут, 44 секунды (28.08.2011 - 19:22) to0n1 написал(а):
на вот этой странице http://vernisag-tambov.ru/index.php?option...%B7%D0%B8%D1%8F находит
а должно найти из вот этого
вот это /index.php?option=com_tonkosti&view=default&Itemid=17&tpath=%D0%93%D0%BE%D1%80%D0%BE%D0%B4%D0%B0_%D0%B8_%D0%BA%D1%83%D1%80%D0%BE%D1%80%D1%82%D1%8B_%D0%90%D0%B1%D1%85%D0%B0%D0%B7%D0%B8%D0%B8
Array
(
[0] => <a href="mailto:agent@vernisag-tambov.ru">
[1] => "
[2] => mailto:agent@vernisag-tambov.ru
)
а должно найти из вот этого
<a href="/index.php?option=com_tonkosti&view=default&Itemid=17&tpath=%D0%93%D0%BE%D1%80%D0%BE%D0%B4%D0%B0_%D0%B8_%D0%BA%D1%83%D1%80%D0%BE%D1%80%D1%82%D1%8B_%D0%90%D0%B1%D1%85%D0%B0%D0%B7%D0%B8%D0%B8" title="Города и курорты Абхазии">Города и курорты</a>
вот это /index.php?option=com_tonkosti&view=default&Itemid=17&tpath=%D0%93%D0%BE%D1%80%D0%BE%D0%B4%D0%B0_%D0%B8_%D0%BA%D1%83%D1%80%D0%BE%D1%80%D1%82%D1%8B_%D0%90%D0%B1%D1%85%D0%B0%D0%B7%D0%B8%D0%B8
Спустя 14 минут, 13 секунд (28.08.2011 - 19:36) brdm написал(а):
Может можно без регулярок. Регулярка это всегда напряг для сервера.
1. Находим все, что после href
Дальше примерно то же только уже с кавычками
$str = '<a href="то что мне нужно получить" title="города и курорты ТУТ НАЗВАНИЕ СТРАНЫ КОТОРОЕ МЕНЯЕТСЯ">Города и курорты</a>';
1. Находим все, что после href
$temp1 = strstr($str, "href");2. Находим все, что после title
$temp2 = strstr($str, "title");3. Отнимаем от первого второе
$str = trim(str_replace($temp2,"",$temp1));
Дальше примерно то же только уже с кавычками
Спустя 8 минут, 40 секунд (28.08.2011 - 19:45) to0n1 написал(а):
УРАААА получилось вот такой вот регуляркой
Всем спасибо !! Winston извини за надоедания !!!
preg_match_all('#• <a href="(.*)"[^>]*title="[^>]*">Города и курорты</a>#', $cont[1], $link);
Всем спасибо !! Winston извини за надоедания !!!
Спустя 6 минут, 53 секунды (28.08.2011 - 19:51) Winston написал(а):
А почему бы не упростить ее ?
preg_match_all('#<a\s*href="(.*)"[^>]*>Города и курорты</a>#isuU', $cont[1], $link);
Спустя 31 минута, 49 секунд (28.08.2011 - 20:23) to0n1 написал(а):
В том то и дело что если упрощаю какаято хрень начинает лезть пол страницы контента попадает под регулярку .... Я сам в шоке почему и обратился к Вам !!!
помогло если Вы не заметили не усложнение проверок на закрытие тега а проверка на спецсимволы перед ссылкой (форум их обрезает)
UPD Вообщем обрезает их форум может так
UPD неа :( вобщем там перед ссылкой bull и nbsp вот я их и задействовал ! И все нормально теперь !
помогло если Вы не заметили не усложнение проверок на закрытие тега а проверка на спецсимволы перед ссылкой (форум их обрезает)
'#<a\s*href="(.*)"[^>]*>Города и курорты</a>#isuU', $cont[1], $link
UPD Вообщем обрезает их форум может так
'#<a\s*href="(.*)"[^>]*>Города и курорты</a>#isuU', $cont[1], $link
UPD неа :( вобщем там перед ссылкой bull и nbsp вот я их и задействовал ! И все нормально теперь !