Я делаю адреса электронной почты кликабельными с помощью этого кода:
function makeemail($str) {
$str = preg_replace('/([\!~#$%&=?^*\/_\.\+0-9a-zæøå-]+)@(([0-9a-zæøå-]+\.)+[a-z]{2,12})/i', '<a href="mailto:$1@$2" title="">$1@$2</a>', $str);
return trim($str);
}
Что я могу сделать, чтобы игнорировать текст, где "http://" и" https://" является его частью? (или, может быть, просто "http", если быть проще)
Некоторые URL-адреса http-серверов могут содержать @ в адресе, а я имею дело с URL-адресами http в другой функции.
Я немного регби нуб.Я попытался добавить ?!http:\/\/
или ?!https?:\/\/
с паратезами и без них, но это не сработало, и это не в моей компетенции, где / как это точно указать.
emailaddress@example.com
- это должностать <a href="mailto:email@address.com" title="">email@address.com</a>
(что делает отлично)
http://userid:password@example.com:8080/
- это следует игнорировать и оставить как есть, поскольку оно содержит http(s)://
)