Консультация № 57288
01.10.2006, 02:03
0.00 руб.
0 2 2
Здравствуйте, уважаемые эксперты. У меня два вопроса.
1. Подскажите пожалуйста, как можно выловить в текстовой строке (довольно большой) любой url или e-mail и окружить их соответстсвующими тегами? то есть, как теги добавить я соображу, но как обнаружить нужные отрывки?
2. Как добавить в форму простой визуальный редактор? Текстовое поле с кнопочками для жирного текста, курсива, ссылки... и чтобы после отправки это все преобразовывалось в соответствующий HTML-код. Есть же, наверное, готовые решения?

Обсуждение

Неизвестный
01.10.2006, 03:42
общий
это ответ
Здравствуйте, Rori!
Выловить URL можно вот так -
$text = ‘rusfaq: http://www.rusfaq.ru. Windows mobile: http://www.microsoft.com/windowsmobile/default.mspx.‘;
$text = ereg_replace(‘[[:alpha:]]+://([^<>[:space:]]+[[:alnum:]/])‘, "<a href=\\0>\\1</a>", $text);//
echo $text;
На второй вопрос я бы Вам рекомендовал открыть такой редактор в блакноте и изучить его код.
Неизвестный
01.10.2006, 11:42
общий
это ответ
Здравствуйте, Rori!
1) Как уже сказал предыдущий эксперт, нужно пользоваться регулярными выражениями. Вот код, позволяющий выделять e-mail в приложении. Этот код не идеален, он обрабатывает адреса, в кот. только цифры и только буквы. Если хотите, то можете добавить ещё символы, кот. Вас нужны: <b>[\w.<font color=red>-_()</font>]</b>
2) Этот компонент называеться TINY MCE - <a href=‘http://tinymce.moxiecode.com/‘>http://tinymce.moxiecode.com/</a>. Этот компонент кроссбраузерный, т.е. работает в нескольких поддерживаемых браузерах

Приложение:
$html = preg_replace( ‘{ [\w-.]+ # имя ящика @ [\w-]+(\.[\w-]+)* # имя хоста }xs‘, ‘<a href="mailto:$0">$0</a>‘, $text ); echo $html;
Форма ответа