Как связать адрес электронной почты с помощью php - PullRequest
2 голосов
/ 09 июля 2011

Я узнал, как связать URL в php здесь , но кто-нибудь знает, как сделать эту же концепцию с адресом электронной почты?Спасибо!

Ответы [ 2 ]

2 голосов
/ 09 июля 2011

Было бы идеально использовать preg_replace.

Ответ gar_onn не сработает, потому что, если я напишу сообщение типа: «Я использую звездочку @ home. Это довольно аккуратно», вся строка будет связана.

Нечто подобное было бы более идеальным:

$pattern = '/([a-z0-9][-a-z0-9._]*[a-z0-9]*\@[a-z0-9][-a-z0-9_]+[a-z0-9]*\.[a-z0-9][-a-z0-9_-][a-z0-9]+)/i';

$str = preg_replace ($pattern, '<a href="mailto:\\1">\\1</a>', $str);
0 голосов
/ 09 июля 2011

Функция ereg_replace устарела с версии PHP 5.3.0.Полагаться на эту функцию крайне не рекомендуется. , вы должны использовать preg_replace

, это будет работать: для ссылок электронной почты

 $str = preg_replace('#(.*)\@(.*)\.(.*)#','<a href="mailto:\\1@\\2.\\3">Send email</a>',$str);  // replace a mailto (send mail)

это будет для URL без erg_replace:

     $str = preg_replace('=([^\s]*)(www.)([^\s]*)=','<a href="http://\\2\\3" target=\'_new\'>\\2\\3</a>',$str); // better version to shange URL's in links
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...