Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pcre разбор ссылок 
:(
    Опции темы
Axxent
  Дата 3.4.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 25.3.2004
Где: Новосибирск

Репутация: 3
Всего: 5



Есть код:
Код

$text=preg_replace("/\\[a href=(.*)\\](.*)\\[\\/a\]/i", "<a href='\\1'>\\2</a>", $text);  

Который по идее должен делать из "ссылок" вида [a href=что-то]ссылка[/a] ссылки, понятные броузеру. Однако, если "что-то" обрамить кавычками, то код начинает плодить обратные слеши. Как бы это порешить? Подскажите...
PM MAIL ICQ   Вверх
Mal Hack
Дата 3.4.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код
$text=preg_replace("/\[a href=(.*)\](.*)\[\/a\]/i", "<a href='\\1'>\\2</a>", $text);  


PM ICQ   Вверх
Axxent
Дата 3.4.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 25.3.2004
Где: Новосибирск

Репутация: 3
Всего: 5



Пасиб, хоть и не работает, но на мысль натолкнул =) Решил траблу так:
Код

          $text=preg_replace("/\[a href=[\"|']?(.*)[\"|']?\"\](.*)\[\/a\]/i", "<a href='\\1'>\\2</a>", $text); 

PM MAIL ICQ   Вверх
Mal Hack
Дата 3.4.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Рэг у тебя однозначно странный...
Попробуй так:
Код
$text=preg_replace("/\[a href=(.*)\](.*)\[\/a\]/i", "<a href=\\1>\\2</a>", $text);  

PM ICQ   Вверх
DENNN
Дата 4.4.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Код

preg_replace("/\[a .*href=(?:\"|\')([ \t\"\']+)\]+(?:\"|\').*\[\/a\]/i", "<a href=\"\\1>\"\\2</a>", $text);

Вот, примерно так. Только не проверяется что закрывающие кавычки такие же как открывающие у href=

Это сообщение отредактировал(а) DENNN - 4.4.2005, 10:45
PM ICQ   Вверх
Axxent
Дата 4.4.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 25.3.2004
Где: Новосибирск

Репутация: 3
Всего: 5



Пасиб, я ж сказал, работает как надо. =) Мне надо было максимальное ограничение свободы в формате ввода (типа о безопасности беспокоюсь), что я и получил.

Рег странный? Ну странный =) Зато работает =)
PM MAIL ICQ   Вверх
Mal Hack
Дата 4.4.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(DENNN @ 4.4.2005, 11:44)
Только не проверяется что закрывающие кавычки такие же как открывающие у href=

Ну это можно сделать так (тока покажу на своем рэге):
Код
$text=preg_replace("/\[a href=(\"|\'){0,1}(.+?)\\1{0,1}\](.*)\[\/a\]/i", "<a href='\\2'>\\3</a>", $text);  


PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.