---
title: "Skriva om hemsideadress som länk."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/131450-skriva-om-hemsideadress-som-länk"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "dude"
published: "2005-07-15T09:30:53.000Z"
updated: "2005-07-22T08:55:12.000Z"
replies: 9
views: 580
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/131450-skriva-om-hemsideadress-som-länk"
---

# Skriva om hemsideadress som länk.

## #1 — dude, 2005-07-15T09:30Z

hello!
Fixar en gästbok med php och mysql, när någon skriver in en hemsideadress eller mailadress vill jag att det automatiskt blir en länk av det.

Alltså, någon skriver sin mail <hej@hej.com>, då känner programmet av det och skriver ut \<a href="mailto: <hej@hej.com>"\>hej@hej.com\</a\>

Ja... ni fattar nog... tacksam för hjälp!!!!

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

## #2 — pettsson, 2005-07-15T09:35Z

Detta åstadkommer du mha av regular expressions, dvs preg\_\* funktionerna. 
Du kan detektera en mailadress såhär:

```
$pattern = "[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+(\.[a-zA-Z]{2,4})+";
```

Sedan får du ersätta i text med preg_replace.
Jag har för mig att jag skrev en pattern för urler för nån vecka sedan, sök på preg\_ här i forumet.

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

## #3 — Pedda, 2005-07-15T15:26Z

Detta hittar url'er som börjar med http eller www

```
$text = preg_replace( '/(?<!"|href=|href\s=\s|href=\s|href\s=)(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/i', "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $text );
$text = preg_replace('/(?<!"|href=|href\s=\s|href=\s|href\s=)(?<!:\/\/)www(.[\w]+)([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/i', "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $text );
```

r/ och även https och ftp

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

## #4 — dude, 2005-07-18T07:05Z

Hej hej!
Det funkar kalas!

Men det blev inte så bra ändå eftersom det blir ganska så fult med adressen mitt i texten...

Istället skulle jag nog vilja ha en funktion som den som finns här i forumet. Alltså en knapp där man skriver in i ett javascript promt länknamnet och länkadressen och sen så visas det som nedan.

[Länk](https://www.webforum.nu) 

Hur går detta till???

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

## #5 — pettsson, 2005-07-18T07:24Z

Om du vill skriva ut en länk med det som användaren skriver in i en prompt kan du göra så här:

```
<script type="text/javascript">
 function writeLink() {
  var href = prompt('Skriv in adressen', ' ');
  var text = prompt('Skriv in länktexten', ' ');
  var textruta = document.getElementById('textruta');
  textruta.value += '<a href=' + href + '>' + text + '</a>';
 }
</script>
...
<textarea id="textruta"> </textarea><br />
<input type=button value="Lägg till länk" onClick="writeLink();">
...
```

Nu lägger den till hela länktaggar i html i en textarea, men det går lätt att ändra om du ska ha det någon annan variant, exvis som wFs \[ url\] taggar.

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

## #6 — dude, 2005-07-18T12:19Z

Hej hej!
Det blev ju jättebra... tills jag kom på en till grej som jag inte sagt tidigare... Så nu blir det allt lite klurigt!!!

Det som skrivs in visas på en nyhetssida men även på förstasidan. Fast på förstasidan visas bara de första 150 tecknena och sen står det '.... Läs mer här'

Det har jag gjort med följande kod:

```
// Kolla om texten är över 150 tecken
if (strlen($text) > 150) {
    // Skriv ut första 150 tecknen, sen ... 
    $short_text = substr($text, 0, 150) . '...';
    $str = $short_text . ' <a href=\"nyheter.php\">Läs mer här!</a>';
} else {
    $str = ($text);
}
```

Nu blir ju problemet när den bryter en länk mitt av, då blir det ju helt fel. Alltså att det 150 tecknet finns någonstanns i länken...

Går detta att lösa på något sätt, eller är vi besegrade??? ;)

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

## #7 — UlfT, 2005-07-18T12:27Z

Det är väl bara att låta bli att bryta av länken. :)

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

## #8 — dude, 2005-07-19T07:40Z

Njaaa... så enklet är det inte. eftersom det är många olika användare som kommer kunna skriva in en nyhet och de kommer antagligen inte klara av att inte bryta av länken...

Men går det inte att göra något script som säger att hela länken \<a href="http://www.aftonbladet.se"\>Aftonbladet\</a\>
räknas som ett tecken?

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

## #9 — pettsson, 2005-07-19T15:06Z

Kan ju göra så att om texten är längre än (150 - strlen($länken)) så bryter du. Dvs

```php
// Kolla om texten är över 150 tecken
$link = "<a href=\"www.webforum.nu\">Bli medlem nu!</a>";
if (strlen($text) > (150 - strlen($link))) {
    // Skriv ut första 150 tecknen, sen ... 
    $short_text = substr($text, 0, (150 - strlen($link))) . '...';
    $str = $short_text . $link;
} else {
    $str = ($text);
}
```

Enklare än att använda en regexp :)

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

## #10 — dude, 2005-07-22T08:55Z

Men betyder inte det att jag måste ha länken sist i texten?

Och betyder inte det att jag måste göra något så att länken läggs i variablen $lank. 

...och hur 17 gubbar gör jag detta? 

Tacksam för all hjälp jag kan få :)

Går det inte att göra något script som säger att hela länken 
\<a href="http://www.aftonbladet.se"\>Aftonbladet\</a\>
räknas som ett tecken?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/131450-skriva-om-hemsideadress-som-länk
