помощь с регуляркой

sarkis

Профессор
Регистрация
27 Фев 2014
Сообщения
248
Реакции
40
Код:
<div class="av-img-thumb-wr ">
<a href='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-big.jpg'>
<img src='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-small.jpg' class='av-img-thumb' data-index='1'>
                </a></div>
Здравствуйте ..Не могу понять как правильно создать регулярку ,чтобы вытащить адрес ссылки ..
На данный момент только сделал начальную стадию
Код:
preg_match_all("|<div class=\"av-img-thumb-wr \">([\r\w\W\s]+.*)</div>|U",$main_str,$images, PREG_PATTERN_ORDER);
но это все выводит. а мне нужно именно значение атрибута href ..Спасибо , кто откликнется
 
preg_match_all("/<div +class=\"av-img-thumb-wr +\">\s+<a +href='(.*?)'>/s",$main_str,$images);

только вам в другой раздел Для просмотра ссылки Войди или Зарегистрируйся
 
Код:
$code = <<<CODESET
        <div class="av-img-thumb-wr ">
<a href='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-big.jpg'>
<img src='http://img.inforico.com.ua/a/prodam-visloushka-koshechka.--bc09-1410344122875831-1-small.jpg' class='av-img-thumb' data-index='1'>
                </a></div>';
CODESET;

$pattern1 = "|href='(.*?)'|is";
$pattern2 = "|<a.*?href='(.*?)'|is";
$pattern3 = "|<div.*?class=\".*?\">.*?<a.*?href='(.*?)'|is";
$pattern4 = "|<div.*?class=\"av-img-thumb-wr.*?\">.*?<a.*?href='(.*?)'|is";

$res = array();
preg_match_all($pattern1, $code, $res);
echo "Result of {$pattern1}<br>";
var_dump($res);

$res = array();
preg_match_all($pattern2, $code, $res);
echo "Result of {$pattern2}<br>";
var_dump($res);

$res = array();
preg_match_all($pattern3, $code, $res);
echo "Result of {$pattern3}<br>";
var_dump($res);

$res = array();
preg_match_all($pattern4, $code, $res);
echo "Result of {$pattern4}<br>";
var_dump($res);

$pattern1 - найдёт всё что внутри одинарных кавычек следующих за href=
$pattern2 - тоже, но обязательно внутри тега a
$pattern3 - тоже, но внутри тэга а следующего внутри (или после) тега div с произвольным классом
$pattern4 - тоже, но класс обязательно должен начинаться с того, как у вас в примере
 
preg_match_all("/<div.*?class=\"av-img-thumb-wr.*?\">.*?<a.*?href='(.*?)'/is", $images, PREG_PATTERN_ORDER);
 
  • Заблокирован
  • #5
регулярка для замены:

текст|текст|текст
на
текст|текст@текст
 
Назад
Сверху