- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
\s+? - это клиника.
в смысле
это значит "может быть один или несколько пробелов, а может не быть вообще"
или ошибаюсь?
Kpd, подскажите как решить проблему?
<a.*href\s*=\s*['\"]?(?!http:\/\/)(.*)['\"]?\s*>
Так попробуйте
тока она с target = _blank будет глючить
UPD:
Хм, можно так
или
на
joost, RTFM
это значит "может быть один или несколько пробелов, а может не быть вообще"
Это делается так - \s*
\s*
что значить? "может есть пробел,а может нет" ?
(?!http:\/\/)
равно
(?:http:\/\/)?
как называется финт с использованием ?! в скобках ? ?: - называется "не учет групировки для preg_ функций"
да, от 0 и больше
?! - отрицание в забегании
я бы сделал так
preg_match_all('#<a [^>]*?href\s*=\s*(\S+?)[>\s]#ism',$hmtl,$links);
полученные рещультаты просто бы отфильтровал на кавычки и был счастлив тому, что я гений в очередной раз.
\s*>
заменил на
joost добавил 23.07.2009 в 19:01
?! - отрицание в забегании
где почитать доступно об этом можно?
я бы сделал так
preg_match_all('#<a [^>]*?href\s*=\s*(\S+?)[>\s]#ism',$hmtl,$links);
полученные рещультаты просто бы отфильтровал на кавычки и был счастлив тому, что я гений в очередной раз.
Не обольщайся. Внутренние ссылки - это не только те, что с / начинаются.
Ну и кстати конструкция <a [^>]*?href бессмысленна) Модификатор жадности и так не дойдёт до >
joost, http://www.pcre.ru/docs/php/text/stdsyntax/ - раздел Утверждения и дальше
Насчёт target=_blank - дальше две регулярки ещё которые цепляют внутренние ссылки нормально - включая ссылки с http://свойдомен
jumash, извини, но я думал что ссылки все хотите, ибо ТС не сильно читал
(
[0] => Array
(
[0] => <a href=page.php>
[1] => <a title=page href=page.php>
[2] => <a href = page.php>
[3] => <a href="page.php">
[4] => <a href='page.php'>
[5] => <a href=http://site.com/page.php>
[6] => <a href=http://www.site.com/page.php>
[7] => <a href=http://site.com/page.php
[8] => <a href=/page.php
[9] => <a href=http://oursite.com/page.php>
[10] => <a href=http://www.oursite.com/page.php>
)
[1] => Array
(
[0] => page.php
[1] => page.php
[2] => page.php
[3] => "page.php"
[4] => 'page.php'
[5] => http://site.com/page.php
[6] => http://www.site.com/page.php
[7] => http://site.com/page.php
[8] => /page.php
[9] => http://oursite.com/page.php
[10] => http://www.oursite.com/page.php
)
)
не веришь, попробуй сам.
я уже полинтернета спарсил и почти любые регулярки пишу без проверки ;)
bearman добавил 23.07.2009 в 22:31
ну а проверить по условиям на внуттр ссылки - легко потом. поверьте, такая регулярка + foreach самый простой метод реализации.
Мы и так знаем, что ты аццкий.