Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Условие и отрицание

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VestCoastman
Отправлено: 02 Мая, 2013 - 18:01:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




имеется замена бб кода url на ссылку
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/\[url=(?:'|"|\'|\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?:'|"|\'|\")\](.*)\[\/url\]/Usi", "<a href=\"$1\">$7</a>", $text);

И имеется просто замена ссылки на кликабельную ссылку т.е.
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)/", "<a href=\"$1\">$1</a>", $text);

Но при таком раскладе совпадение будет некорректным, например
PHP:
скопировать код в буфер обмена
  1. [url="http://google.ru"]test[/url]

выделит http://google.ru, соответственно нужно, например, отрицание кавычек вокруг.
Подскажите решение?

(Отредактировано автором: 02 Мая, 2013 - 18:17:17)

 
 Top
LIME
Отправлено: 02 Мая, 2013 - 20:33:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/(?<!\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?!\")/", "<a href=\"$1\">$1</a>", $text);
 
 Top
VestCoastman
Отправлено: 02 Мая, 2013 - 21:41:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




LIME пишет:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/(?<!\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?!\")/", "<a href=\"$1\">$1</a>", $text);


Вот спасибо.
Подредактировал под одинарные кавычки и &quot; но правильнее было бы проверять весь тег [url="
Может кому и пригодится:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/(?<!:'|"|\'|\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?<!:'|"|\'|\")/", "<a href=\"$1\">$1</a>", $text);


тут теги &quot ; не фильтруются в теге [php])

(Отредактировано автором: 02 Мая, 2013 - 22:10:33)

 
 Top
LIME
Отправлено: 02 Мая, 2013 - 21:55:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




зачем...ведь бб-код заменит на " ...одинарной быть после него не может
 
 Top
VestCoastman
Отправлено: 03 Мая, 2013 - 08:59:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




Не пошло дело. Огорчение Что с тегом url, что с img...
Вот полный код:
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace("/\[url=(?:& #039;|& quot;|\'|\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?:& #039;|& quot;|\'|\")\](.*)\[\/url\]/Usi", "<a href=\"$1\">$7</a>", $text);
  2. $text = preg_replace("/\[img\]((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)\[\/img\]/Usi", "<img src=\"$1\">", $text);
  3. $text = preg_replace("/(?<!\")((((ht|f)tps?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?<!\")/", "<a href=\"$1\">$1</a>", $text);

PHP:
скопировать код в буфер обмена
  1. [img]https://www.google.ru/images/srpr/logo4w.png[/img]
  2. [url="http://google.ru"]google[/url]
  3. http://google.ru

выше написанный код не обрабатывается. Результат его работы:
CODE (html):
скопировать код в буфер обмена
  1. <img src="https://<a href="www.google.ru/images/srpr/logo4w.png">www.google.ru/images/srpr/logo4w.png</a>">
  2. <a href="http://google.ru">google</a>
  3. <a href="http://google.ru">http://google.ru</a>


Уже и так и сяк пытался, но не выходит(
 
 Top
VestCoastman
Отправлено: 03 Мая, 2013 - 16:07:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




Второй день парюсь. Прошу помощи.

(Отредактировано автором: 03 Мая, 2013 - 16:07:48)

 
 Top
LIME
Отправлено: 03 Мая, 2013 - 16:32:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а почему не поищешь готовые решения
хотя бы посмотреть как сделано
 
 Top
VestCoastman
Отправлено: 03 Мая, 2013 - 17:11:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




Уже искал и punbb с phpbb3 поковырял, но в punbb какая-то хитрожопая система, а в phpbb3 коды добавляются через панель/базу, по этому тоже хитрожопая система.
Гугл дает результаты только на готовые бб коды, но ни слова про отдельные ссылки

(Отредактировано автором: 03 Мая, 2013 - 18:38:22)

 
 Top
OrmaJever
Отправлено: 03 Мая, 2013 - 18:39:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




VestCoastman пишет:
"/\[url=(?:'|"|\'|\")((((ht|f)tps?Недовольство, огорчение?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?:'|"|\'|\")\](.*)\[\/url\]/Usi"

Я извиняюсь, но вот это замена bb кода? А?! Не понял
Помоему вот этого хватит "\[url=?(.+?)\](.+?)[url]ims" Растерялся
(Добавление)
я не представляю как долго php будет отбрабывать вашу регулярку


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
VestCoastman
Отправлено: 03 Мая, 2013 - 19:07:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




OrmaJever пишет:
VestCoastman пишет:
"/\[url=(?:'|"|\'|\")((((ht|f)tps?Недовольство, огорчение?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(\:?)|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+#~%\/.\w-_]*)?\??(?:[-\+=&;,%@.\w_]*)#?(?:[\w]*))?)(?:'|"|\'|\")\](.*)\[\/url\]/Usi"

Я извиняюсь, но вот это замена bb кода? А?! Не понял
Помоему вот этого хватит "\[url=?(.+?)\](.+?)[url]ims" Растерялся
(Добавление)
я не представляю как долго php будет отбрабывать вашу регулярку

Не в этом дело, регулярка естественно будет оптимизирована, тут вопрос в другом.

(Отредактировано автором: 03 Мая, 2013 - 19:07:52)

 
 Top
VestCoastman
Отправлено: 05 Мая, 2013 - 22:01:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




Ответа я так и не получил. Чтож, очень жаль.
 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Мая, 2013 - 22:07:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




VestCoastman пишет:
отрицание кавычек

PHP:
скопировать код в буфер обмена
  1. $str = 'a="text1" b=text2';
  2. $str = preg_replace("/(\w+)=(\")?(\w+)(\\2)?/", "$3", $str);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB