Добрый день! Не как не могу добиться идеального шаблона. Цель вытащить анкор из ссылки. Еще объясню я вытягиваю контент сайта там может быть много ссылок но меня интересует только та в которой линк seetv.tv ну или любой заданный мною!! Есть сам линк - seetv.tv! А вот ссылки могут быть разными, что есть сейчас: Код (Text): Ссылка: <a href="http://seetv.tv/" target="_blank">Онлайн ТВ</a> preg_match('/<a\\s?href\=["\\']?.*?[http\:\/\/]?([w]{3})?\.?seetv\.tv\/?["\']?\s?(.*)?["\']?\>(.*)?<\/a\>[^(.*)?]?/', input, $match) $match[3] - "Онлайн ТВ" //Все как надо Но если ссылка вида - <a href="http://seetv.tv/" target="_blank">Онлайн ТВ</a> - <a href=''>sdfsd</a> то $match[3] - "sdfsd" //Тут лажа!!!!!!!!!! То есть я так понимаю у меня не получается именно сказать что дальше искать не нужно!!!
))) Код (Text): $match[3] - "Онлайн ТВ" //ВОТ ТАК НАДО! из любой ссылки как из Код (Text): <a href="http://seetv.tv/" target="_blank">Онлайн ТВ</a> такой так и из Код (Text): <a href="http://seetv.tv/" target="_blank">Онлайн ТВ</a> - <a href=''>sdfsd</a> такой
PHP: <?php $text = '<a href="http://seetv.tv/" target="_blank">Онлайн ТВ</a> - <a href=\'\'>sdfsd</a>'; preg_match_all('#<a\s+href="http://seetv\.tv/"[^>]*>(.*)</a>#sUi', $text, $matches); echo '<pre>'.print_r($matches, true).'</pre>';
Код (Text): $data = "<a href='http://seetv.tv/' target='_blank'>Онлайн ТВ</a> - <a href='blabla.com'>DDDDDDDDD</a> "; preg_match_all('#<a\s+href="http://seetv\.tv/"[^>]*>(.*)</a>#sUi', $data, $ank); print_r($ank, true); Результат : Код (Text): 11 Array ( [0] => Array ( ) [1] => Array ( ) ) Вот как сейчас: Код (Text): $data = "<a href='http://seetv.tv/' target='_blank'>Онлайн ТВ</a> - <a href='blabla.com'>DDDDDDDDD</a> "; preg_match('/<a\s?href\=["\']?.*?[http\:\/\/]?([w]{3})?\.?' . preg_quote($link, '/') . '\/?["\']?\s?(.*)?\>(.*)?<\/a\>/', $data, $ank); print_r($ank, true); Результат: Код (Text): Array ( [0] => Онлайн ТВ - DDDDDDDDD [1] => [2] => ttp://seetv.tv/' target='_blank'>Онлайн ТВ - DDDDDDDDD ) Не знаю почему такой массив но $ank[3] - выводит DDDDDDDDD
Блин, и откуда это пошло, использовать регулярки для вытаскивания ссылок... Прошлый век же... PHP: <?php $doc = new DOMDocument; @$doc->loadHTMLFile('http://www.yandex.ru/'); $result = array(); foreach($doc->getElementsByTagName('a') as $node) { $result[] = array($node->getAttribute('href'), $node->nodeValue); } /********************************/ header('Content-type: text/plain'); print_r($result); ?>
Panter7777 вах-вах, так тяжело регулярку поправить... preg_match_all('#<a\s+href=[\'"]http://seetv\.tv/[\'"][^>]*>(.*)</a>#sUi', $text, $matches); Vladson велкам бэк. давно ж тебя не было видно
Нет хороших книг. Сначала просто пойми что ты делаешь и зачем (это самое сложное, иногда уходят годы чтоб это понять) а потом уже книги будут не нужны.