Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 1
Регистрация: 10.07.2013
Сообщений: 131
1

Замена bb-ссылок

13.04.2015, 21:45. Показов 735. Ответов 7
Метки нет (Все метки)

В общем переменная с bb-ссылкой на картинку.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$url = "текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст
 
[url=http://www.i2.site.com/img/4578722.png][imgs]http://site.com/img/45145722.png[/imgs][/url]
 
[url=http://www.i2.site.com/img/45873722.png][imgs]http://site.com/img/457773722.png[/imgs][/url]
 
[url=http://www.i2.site.com/img/687827.png][imgs]http://site.com/img/45544422.png[/imgs][/url]
 
текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст текст";
 
$desc = preg_replace('#\[url=(.*?site\.com/.*?)\].*?\[/url\]#is', '[imgs]$1[/imgs][br]', $url);
 
echo $desc;[/url]

В итоге я получаю такого вида:

PHP
1
[imgs]http://www.i2.site.com/img/687827.png][imgs]http://site.com/img/45544422.png[/imgs]
Почему регулярка так работает? Вроде все экранировал, пробовал даже / и = экранировать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2015, 21:45
Ответы с готовыми решениями:

Замена внешних ссылок с исключениями
Доброго времени суток знатоки PHP. Столкнулся с проблемой в регулярных выражениях. Мне необходимо...

Замена youtube ссылок на ifarame
Возможно у кого-то есть готовый скрипт? Необходимо находить в тексте все ссылки youtube, вроде этой...

Замена youtube ссылок на плеер
В общем был такой мод раньше на форумах популярных, но не нашел его в связи с чем пытаюсь сделать...

Замена ссылок с помощью регулярного выражения
Уже задолбался подскажите вчем баг беру каскадные стили и вместо сылок на кних в документе...

7
1939 / 1763 / 825
Регистрация: 23.01.2014
Сообщений: 6,210
13.04.2015, 22:21 2
Цитата Сообщение от kingkobra97 Посмотреть сообщение
Почему регулярка так работает? Вроде все экранировал, пробовал даже / и = экранировать?
Ничего не понятно. Скрипт
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$url = "
текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст
 
[url=http://www.i2.site.com/img/4578722.png][imgs]http://site.com/img/45145722.png[/imgs][/url]
 
[url=http://www.i2.site.com/img/45873722.png][imgs]http://site.com/img/457773722.png[/imgs][/url]
 
[url=http://www.i2.site.com/img/687827.png][imgs]http://site.com/img/45544422.png[/imgs][/url]
 
текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст текст
";
$desc = preg_replace('#\[url=(.*?site\.com/.*?)\].*?\[/url\]#is', '[imgs]$1[/imgs][br]', $url);
echo $desc;
выводит
Код
текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст
 
[imgs]http://www.i2.site.com/img/4578722.png[/imgs][br]
 
[imgs]http://www.i2.site.com/img/45873722.png[/imgs][br]
 
[imgs]http://www.i2.site.com/img/687827.png[/imgs][br]
 
текст текст текст текст текст тексттекст текст текст текст текст тексттекст текст текст текст текст
как и должен я так понимаю. Так в чем проблема?
0
2 / 2 / 1
Регистрация: 10.07.2013
Сообщений: 131
14.04.2015, 14:34  [ТС] 3
pav1uxa, все просто. Главное что я должен получить это обработанные ссылки регуляркой. Я написал общий результат и он относится ко всем ссылкам.
Смотри внимательно что делает регулярка
PHP
1
preg_replace('#\[url=(.*?site\.com/.*?)\].*?\[/url\]#is', '[imgs]$1[/imgs][br]', $url);
обрабатывает ссылки, а тот текст просто для разнообразия, т.к ссылки у меня в тексте находятся а не в пустой переменной.

Добавлено через 15 часов 49 минут
Цитата Сообщение от pav1uxa Посмотреть сообщение
Так в чем проблема?
проблема в том что регулярка не дает такой ответ:
HTML5
1
[imgs]http://www.i2.site.com/img/4578722.png[/imgs]
а такой:
HTML5
1
[imgs]http://www.i2.site.com/img/4578722.png][imgs]http://site.com/img/45145722.png[/imgs][\/url] <!--без обратного слэша в [\/url](\) ибо сайт делает ссылку-->
0
1939 / 1763 / 825
Регистрация: 23.01.2014
Сообщений: 6,210
14.04.2015, 17:29 4
Цитата Сообщение от kingkobra97 Посмотреть сообщение
проблема в том что регулярка не дает такой ответ:
я показал вывод который дает этот скрипт.
0
2 / 2 / 1
Регистрация: 10.07.2013
Сообщений: 131
14.04.2015, 17:57  [ТС] 5
Цитата Сообщение от pav1uxa Посмотреть сообщение
я показал вывод который дает этот скрипт.
у меня почему-то нет. Регулярка правильная, а обрабатывает не правильно.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16831 / 6709 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.04.2015, 23:27 6
Чудеса прям. Не верю.
Ищите ошибку..
0
2 / 2 / 1
Регистрация: 10.07.2013
Сообщений: 131
15.04.2015, 14:08  [ТС] 7
Цитата Сообщение от KOPOJI Посмотреть сообщение
Чудеса прям.
ох, Господь Бох обрушил на меня свои кары за то, что я использовал eval
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16831 / 6709 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.04.2015, 14:54 8
Есть еще справедливость на свете
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2015, 14:54

Замена ссылок
Здравствуйте!!!подскажите пожалуйста!!!у меня следующее задание:имеется некая научная...

Замена ссылок в тексте
Привет. Подскажите, пожалуйста. Есть переменная caption, в нет текст с ссылками. Как в этой...

Замена ссылок на папки
Доброго времени суток. После переноса IT-ками сервера, возникла проблема с ссылками на папки на...

Автоматическая замена ссылок
Здравствуйте, форумчане! Проблема такова, что имею 200-300 файлов .html каждый с которых имеет в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru