tarantas Опубликовано 11 Декабря 2008 Жалоба Поделиться Опубликовано 11 Декабря 2008 Есть строка вида : <a id="rlink" style="margin: 0pt 10px;" target="_blank" href="http://dl16.intv.ru/w/4c83deed9a76829cf9b8f19c72e06239"Мне нужно вырвать из нее http://dl16.intv.ru/w/4c83deed9a76829cf9b8f19c72e06239 Делаю : preg_match_all("/(?<=id\=\"rlink\".*href\=\")\S{20,}(?=\")/i", $videolink, $matches); preg_match_all(): Compilation failed: lookbehind assertion is not fixed length at offset 24 Скобочки по всякому пробовал расставлять - бесполезно. Раньше делал просто preg_match_all("/(?<=href\=\")\S{20,}(?=\")/i", $videolink, $matches);Работало. Но нужно еще проверять есть ли в строке id="rlink" Подскажите, пожалуйста. ---------- Оказывается в этих проверках никаких абстракций не допускается.Все конкретно должно быть. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 12 Декабря 2008 Жалоба Поделиться Опубликовано 12 Декабря 2008 (изменено) Гмм.. А не проще ли сначала искать <a, затем id="rlink", затем href=" и забирать всё до следующей двойной кавычки? И никаких тебе откручиваний строки назад. Наверняка, и пошустрее будет. Раз в десять. Updated: хотя нет, лучше уже искать <a id="rlink", а затем href=". И приводить все нужные ссылки к такому виду, чтобы начинались с <a id="rlink". А то лишнего захватит.) Изменено 12 Декабря 2008 пользователем WildRAID Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Декабря 2008 Жалоба Поделиться Опубликовано 12 Декабря 2008 грубо прикинуть -preg_match("/<a id\=\"rlink\"(.+?)href=\"(.+?)\"/i",$videolink,$matches);и потом в $matches[2] будет Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.