X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с регулярным выражением Php
Scratches
Scratches
Topic Starter сообщение 15.8.2009, 18:52; Ответить: Scratches
Сообщение #1


Участник
***

Группа: User
Сообщений: 100
Регистрация: 1.4.2008
Поблагодарили: 15 раз
Репутация:   11  


м не нужно создать поиск ссылок в тексте через функцию preg_match, частично сделал но не до конца да и ищет только когда у href="" кавычки двойные не знаю как сделать чтоб искалось и с двойными и с одинарными и вообще без кавычек, еще проблема в том что у некоторых ссылок есть title. Ну в общем и целом не разобрался я в регулярных выраженияж PCRE

preg_match_all("/<a([\040])href=\"http:\/\/(.*)\">(.*)<\/a>/i", $url, $found, PREG_SET_ORDER)

помогите дописать

Сообщение отредактировал Scratches - 15.8.2009, 20:14


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Psixo
Psixo
сообщение 17.8.2009, 19:54; Ответить: Psixo
Сообщение #2


Новичок
*

Группа: User
Сообщений: 37
Регистрация: 12.4.2008
Из: СССР
Поблагодарили: 8 раз
Репутация:   0  


Если погуглить, можно найти много готового кода.
По поводу кавычек:
[\"']*

preg_match_all("/<a([\040])href=\"http:\/\/(.*)\">(.*)<\/a>/i", $url, $found, PREG_SET_ORDER)
меняем
preg_match_all("/<a([\040])href=[\"']*http:\/\/(.*)[\"']*>(.*)<\/a>/i", $url, $found, PREG_SET_ORDER)

Если без кавчек,то добавь во вторые [] ещё и пробел.

На самом деле у тебя совсем не универсальная регулярка получилась.
Я бы сделал примерно так:

<a.+?href=[\"']*.*?[\"' ].*?>

Честно,не тестил даже и давно не спал smile.gif
Если вопрос актуален - в личку.


--------------------
(\_(\
.(=' :')
•. (,('')('')
.•*`*•..•*`*•..•*`*•.. •*
*•..•*`*•..•*`*•..•*`*•..
JID: psixo@jabber.org
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Samborsky
Samborsky
сообщение 18.8.2009, 16:32; Ответить: Samborsky
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 426
Регистрация: 31.7.2008
Поблагодарили: 139 раз
Репутация:   19  


В таких случаях нужно проходить текст 3-мя разными регулярками, которые предусматривают

1. Если ссылка заключена в двойные кавычки

пример:
<a href="http://www.samborsky.com">Жека</a>


Регулярка:
/href="([^"]+)"/i'


2. Если ссылка в одинарных кавычках

пример:
<a href='http://www.samborsky.com'>Жека</a>


Регулярка:
/href='([^']+)'/i


3. Если ссылка вообще без кавычек, то включаем поиск до первого пробела, или закрытия тега

пример:
<a href="http://www.maultalk.com/go.php?http://www.samborsky.com>Жека</a>

Регулярка:
/href=([^ \>]+)/i


Сообщение отредактировал Samborsky - 18.8.2009, 16:33


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите выбрать программу
Помогите выбрать программу
11 impak 1319 Вчера, 13:11
автор: Mikki
Открытая тема (нет новых ответов) php скрипты любой сложности / диз+верстка (адаптивно)
любые задачи на php - автоматизация, парсинг, работа с БД
1 affrodita 478 8.12.2017, 17:40
автор: affrodita
Открытая тема (нет новых ответов) Помогите найти плагин на WP
Отзывы с профилей соц сетей
1 SEOMR 429 30.11.2017, 7:18
автор: Nell
Открытая тема (нет новых ответов) Помогите найти проблему
Долгий ответ сервера
6 maxim1249 666 29.11.2017, 17:27
автор: genjnat
Открытая тема (нет новых ответов) Помогите оценить новотник. Плиз
1 Alex-777 504 29.11.2017, 7:18
автор: grumdas


 



RSS Текстовая версия Сейчас: 12.12.2017, 8:51
Дизайн