Ввод адреса электронной почты и URL для кликабельности - PullRequest
1 голос
/ 03 января 2011

У меня есть форма, которую я обрабатываю в PHP.Пользователи иногда помещают свои адреса электронной почты в форму или URL-адреса.Они обычно появляются в виде текста после того, как я удаляю ввод тегов.

Недавно мои пользователи стали просить меня сделать свои URL-адреса и электронные письма кликабельными, когда они открывают страницу, которая отображает их ввод (теперь извлекается из БД).

Может кто-нибудь предложить общий шаблон или способы, которыми это обрабатывается?Как правило, если кто-то вводит URL-адрес в форме, как сделать URL-адрес кликабельным вместо текста при просмотре?

Спасибо, Алекс

Ответы [ 2 ]

7 голосов
/ 03 января 2011

Вы можете использовать функцию на основе регулярных выражений, например:

function  autolink($message) { 
    //Convert all urls to links
    $message = preg_replace('#([\s|^])(www)#i', '$1http://$2', $message);
    $pattern = '#((http|https|ftp|telnet|news|gopher|file|wais):\/\/[^\s]+)#i';
    $replacement = '<a href="$1" target="_blank">$1</a>';
    $message = preg_replace($pattern, $replacement, $message);

    /* Convert all E-mail matches to appropriate HTML links */
    $pattern = '#([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.';
    $pattern .= '[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)#i';
    $replacement = '<a href="mailto:\\1">\\1</a>';
    $message = preg_replace($pattern, $replacement, $message);
    return $message;
1 голос
/ 03 января 2011

Вы должны заключить URL в тег привязки:

при условии, что $myLink - это текст ссылки, полученный из вашей базы данных:

<a href="<?php echo $myLink; ?>"><?php echo $myLink; ?></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...