---
title: "Länka mailadresser i sträng"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/95850-länka-mailadresser-i-sträng"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Peeer"
published: "2004-01-27T17:51:55.000Z"
updated: "2004-01-29T10:01:48.000Z"
replies: 2
views: 249
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/95850-länka-mailadresser-i-sträng"
---

# Länka mailadresser i sträng

## #1 — Peeer, 2004-01-27T17:51Z

Hej!
Hittade den [här](http://www.webforum.nu/showthread.php?s=&threadid=63579) funktionen som fungerar nästan som jag vill. Jag vill inte att mailadresser som redan är länkade ska bli länkade en gång till. Luddigt förklarat kanske, men om en sträng innehåller 
\<a href="mailto:doh@doman.com"\>Redan länkad\</a\> så kommer den strängen efter att ha passerat funktionen ovan att se ut såhär: 
\<a href="\<a href="mailto:mailto:doh@doman.com\>mailto:doh@doman.com\</a\>"\>Redan länkad\</a\>. Vilket inte är specillt bra! Hur gör jag om funktionen så att den inte länkar mailadresserna dubbelt?

```php
$text = preg_replace("/([w.-_]+)(@)([w.-_]+)(\\.)([w.-_]+)/i", "<a href=\"mailto:$0\">$0</a>",$text);
```

Permalänk: https://www.webforum.nu/p/95850

## #2 — lunne82, 2004-01-28T23:20Z

Tyckte det bara skulle vara att lägga till en negation. Nu är jag oerhört trött så det blev såhär:

```php
$str = 'En [email]annan@pgo.nu[/email] gär nu.'."\n".
  '<a href="mailto:doh@doman.com">Redan länkad</a>'."\n".
  'men inte denna [email]ema@mail.com[/email]';

// Tar bort redan länkad
$do = preg_replace("'(<a href=.mailto.)([a-zA-Z0-9.-\_]+)(@)([a-zA-Z0-9.-\_]+)(\.)([a-zA-Z0-9]{2,5})(.>.*</a>)'",
                  '$2$3$4$5$6', $str);
// Länkar om alla
echo preg_replace("'([a-zA-Z0-9.-\_]+)(@)([a-zA-Z0-9.-\_]+)\.([a-zA-Z0-9]{2,5})'",
                  '<a href="mailto:$1$2$3$4$5">$1$2$3$4$5</a>', $do);
```

Detta ska bara gå att göra bättre... men det är en lösning iaf... akta dig dock för e-mailadresser till underdomäner (mail@sub.dom.tld), du får fixa så det funkar på sånna själv.

Permalänk: https://www.webforum.nu/p/1262463

## #3 — Peeer, 2004-01-29T10:01Z

Tack! Men jag lyckades lösa det på ett annat sätt. Om man använder mitt mönster ovan och lägger in \\s först i mönstret så krävs det ett blanksteg/radmatning eller liknande innan själva mailadressen. På så vis får jag även behålla texten som står i länken ("redan länkad").

Permalänk: https://www.webforum.nu/p/1262540

---

Tråden på webben: https://www.webforum.nu/amne/php/95850-länka-mailadresser-i-sträng
