| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Тег а в url и email |
| Автор: mkredaktor 24.3.2008, 21:35 | ||||
| Помогите плиз. Есть функция которая переносит текст статьи из сайта на форум, и в итоге все ссылки вида <a href=http> и <a href=mailto> заменяются на [url], а нужно что бы емейлы делались через [email]. Помогите плиз дописать код, что бы правильно работало. Вот текущий кусок кода:
Заменить "/\[a.+?(href=\"?mailto:){1}/i", на нужный ббкод получилось, а вот как сделать что бы различать где нужен закрывающий тег [/url] или [/email], не знаю.
|
| Автор: mishaSL 26.3.2008, 11:47 |
| mkredaktor, приведи исходный кусок кода HTML и то что должно получиться. |
| Автор: Smith 26.3.2008, 12:37 | ||
|
| Автор: mkredaktor 28.3.2008, 13:41 | ||||
Не работает. Вроде все правильно написано, но пишет ошибку Unknown modifier 'a' |
| Автор: flashaa 28.3.2008, 14:19 | ||
|
| Автор: mkredaktor 28.3.2008, 14:35 | ||||||||||
Кстати добавил \/a И код стал без ошибок, но все равно не работает :( Добавлено через 1 минуту и 4 секунды
Сейчас проверю |
| Автор: mkredaktor 28.3.2008, 14:53 |
| Ээ. Вот что оно заменило в итоге [email=//1]//2[/email] |
| Автор: flashaa 28.3.2008, 15:13 | ||
Мда, у Smitha в регулярке как минимум 3 ошибки было.. Вот исправленное целиком:
Этот код будем заменять, только правильные атрибуты href, значения которых были в кавычках, причем именно в двойных. Если надо большего, пиши. |
| Автор: mkredaktor 28.3.2008, 15:53 | ||||
Вот какой код хтмл я пытаюсь заменить. Может так станет нагляднее.
И нужно получить уже код для форума SMF в таком виде:
Вот эта переменная содержит коренной путь к сайту $mosConfig_live_site = http://zdorovja.com.ua/ Тоесть должно быть три комбинации: Две с адресом с $mosConfig_live_site и без и одна комбинация замены мыла. flashaa, Вот теперь что получилось: [[email protected] И после єтого пусто. Тоесть видно все что после ємейле, чего то все обрезало. |
| Автор: ksnk 28.3.2008, 17:05 | ||
|
| Автор: mkredaktor 28.3.2008, 19:35 | ||||
Тоже самое. В итоге выводит текст и после [[email protected] пусто и ничего нет. По каким то причинам он его дальше обрубает. |
| Автор: ksnk 28.3.2008, 20:41 | ||||
вот это
у меня выдает
|
| Автор: flashaa 28.3.2008, 20:49 | ||||
А у меня вот этот код
Выводит вот что:
|
| Автор: ksnk 28.3.2008, 20:57 | ||
| Не заметил косяк... http://forum.vingrad.ru/forum/topic-202402/anchor-entry1459243/0.html# flashaa, в условии встречаются еще и такие данные
|
| Автор: flashaa 28.3.2008, 21:04 |
| ksnk, я не спорю. Я лишь подтвердил что автор не прав. |
| Автор: mkredaktor 28.3.2008, 22:12 | ||||||||
| Спасибо работает. А подскажите плиз как теперь к этому всему прикрутить мою переменную $mosConfig_live_site. Ну адрес может передаваться как и с корневым путем и без:
Как видно в первом варианте нет корневого пути и нужно тогда при замене его добавить, а во втором случае не нужно добавлять. В итоге должно получиться:
А сейчас выводит так:
Тоесть отсутствует вот эта переменная
|
| Автор: mkredaktor 29.3.2008, 13:56 |
| Поможете, добрые люди? |
| Автор: mkredaktor 31.3.2008, 15:09 |
| Поможете мне переделать предыдущий код с переменной $mosConfig_live_site ? |
| Автор: ksnk 31.3.2008, 15:47 | ||
Нужно учитывать, что preg_replace может принимать параметры-массивы, да и последние три регулярки можно, навнерное, слить в одну... |
| Автор: mkredaktor 1.4.2008, 15:13 |
| Хочу выразить всем огромное спасибо, особенно flashaa, ksnk. Хотел сделать +1 в репу.. но у меня сообщений маловато. :( |