---
title: "Göra riktiga länkar i texten"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/137505-göra-riktiga-länkar-i-texten"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "lillebror"
published: "2005-11-13T10:12:03.000Z"
updated: "2005-11-13T18:42:33.000Z"
replies: 23
views: 624
page: 1
pages: 2
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/webbutveckling/137505-göra-riktiga-länkar-i-texten"
---

# Göra riktiga länkar i texten

_Sida 1 av 2._

## #1 — lillebror, 2005-11-13T10:12Z

Hej,

Jag har ett forum och nu vill jag implementera så att det går att skriva länkar i texten, ungefär som här på wF.

Formatet jag tänkt utgå ifrån är detta:

```
VÄNSTERKLAMMER-URL=http://www.flygfyren.nu]test[/URL-HÖGERKLAMMER
```

Hur kan ett pregmatch-uttryck se ut så att man i variabeln $1 får "http://www.flygfyren.nu" och "test" i variabel $2?

:)

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

## #2 — Melea, 2005-11-13T10:15Z

Jag använder mig av den här funktionen (PHP) för att få ut länkar.

```php
function urlEncode($text, $target="_blank"){

	$text = preg_replace("/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)+)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?(?=\s|$)/ie","'$1'!=''? '<a href=\"$1$3$5$6\" target=\"$target\">$1$3$5$6</a>':'<a href=\"http://$3$5$6\">$3$5$6</a>'",$text);
	$text = preg_replace("/\[url=((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\]([^\]\[]+)\[\/url\]?/ie","'$1'!=''?'<a href=\"$1$3$5$6\" target=\"$target\">$7</a>':'<a href=\"http://$3$5$6\">$7</a>'",$text);
	$text = preg_replace("/\[url]((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\[\/url\]/ie","'$1'!='' ?'<a href=\"$1$3$5$6\" target=\"$target\">$1$3$5$6</a>':'<a href=\"http://$3$5$6\">$3$5$6</a>'",$text);

	return $text;

}
```

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

## #3 — lillebror, 2005-11-13T10:42Z

Är det två olika varianter du har där?

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

## #4 — Melea, 2005-11-13T10:55Z

Tre. :)
Den översta ersätter vanliga länkar till, länkar.
Den mittersta ersätter  \[/url \] med en länk och text.
Den understa ersätter \[url \] \[/url \] med en länk.

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

## #5 — lillebror, 2005-11-13T11:13Z

Roger that! Då har jag "spelplanen" klar för mig :)

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

## #6 — lillebror, 2005-11-13T11:26Z

Vad är skillnaden mellan den översta och den understa av alternativen förutom att det är klamrar på den ena?

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

## #7 — Melea, 2005-11-13T11:28Z

Vad menar du?

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

## #8 — lillebror, 2005-11-13T11:41Z

Varför inte bara ha ett av alternativen 1 och 3. Den enda skillnaden är ju att den undre har klamrar. Kan man inte nöja sig med att bara ha den första?

Det kanske är jag som tänker galet   :e

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

## #9 — Melea, 2005-11-13T11:44Z

Jovisst funkar det att endast ha den första, men om man nödvändigtvis inte vill att besökarna ska kunna skriva länkar i klartext, utan måste använda sig av klamrar så är trean ett alternativ.
Presenterade bara tre lösningar på det hela, använd de du känner passar ditt ändamål. :)

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

## #10 — Fredde Mannen, 2005-11-13T11:49Z

> **lillebror skrev:**
>
> Vad är skillnaden mellan den översta och den understa av alternativen förutom att det är klamrar på den ena?

Skillnaden på den översta och den understa är att i den översta ersätter den en url till en klickbar url i texten utan att behöva använda sig av url-taggarna som blir specfika för ex. forumet eller i vilket endamål de nu ska användas..

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

## #11 — lillebror, 2005-11-13T11:53Z

Jag får det inte att fungera. Länktexten görs inte om till länkar i texten. Använder denna kod när jag plockar ut en tråd:

```
<?php echo nl2br(showSmiley(showForumQuotes(urlEncoder($RSobj_thread['content']))));?>
```

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

## #12 — Melea, 2005-11-13T11:56Z

Byta ut urlEncoder till urlEncode. :)

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

## #13 — lillebror, 2005-11-13T12:00Z

> **Melea skrev:**
>
> Byta ut urlEncoder till urlEncode. :)

När jag infogade funktionen med namnet "urlEncode" fick jag ett konstigt fel att den redan skulle vara delkarerad hos mig. Då satte jag dit ett "r" på slutet för att se om det blev någon skillnad och då fungerade sidan men funktionen verkade fortfarande inte fungera korrekt. Ja menar, allt verkar ju stämma för övrigt så det är lite konstigt.

Följande fel får jag:

```
Fatal error: Cannot redeclare urlencode() in /xxx/inc/include.function.php on line 468
```

Så vitt jag vet har jag inte skapat en funktion med liknande namn tidigare. Har sökt igenom mina include-filer.

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

## #14 — Matte, 2005-11-13T12:06Z

Det finns redan en funktion 'urlencode' i PHP, ändra funktionens namn till något annat.

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

## #15 — Melea, 2005-11-13T12:08Z

> **Matte skrev:**
>
> Det finns redan en funktion 'urlencode' i PHP, ändra funktionens namn till något annat.

Attans, det hade jag glömt bort. :)

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

## #16 — lillebror, 2005-11-13T12:08Z

Det var det jag gjorde tidigare men då påpekade Melea att namnet var fel :) Nu fick jag en förklaring till det hela och att den redan var fördeklarerad i PHP.

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

## #17 — lillebror, 2005-11-13T12:10Z

Nu har jag bytt namn. Länken blir fortfarande inte till en riktig länk i tråden <http://www.flygfyren.nu/forum/showthread.php?threadID=248&forumID=2>.

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

## #18 — Melea, 2005-11-13T12:11Z

Konstigt, för mig funkar det felfritt. Om du byter ordning när du skriver ut texten då?
Lägg urlEncoder efter nl2br.
Kan vara någon annan funktion som spökar till det.

**/r** Detta funkar.

```php
function urlEncoder($text, $target="_blank"){

    $text = preg_replace("/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)+)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?(?=\s|$)/e","'$1'!=''? '<a href=\"$1$3$5$6\" target=\"$target\">$1$3$5$6</a>':'<a href=\"http://$3$5$6\">$3$5$6</a>'",$text);
    $text = preg_replace("/\[url=((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\]([^\]\[]+)\[\/url\]?/e","'$1'!=''?'<a href=\"$1$3$5$6\" target=\"$target\">$7</a>':'<a href=\"http://$3$5$6\">$7</a>'",$text);
    $text = preg_replace("/\[url]((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\[\/url\]/e","'$1'!='' ?'<a href=\"$1$3$5$6\" target=\"$target\">$1$3$5$6</a>':'<a href=\"http://$3$5$6\">$3$5$6</a>'",$text);

    return $text;

}

$text = '
http://www.webforum.nu
[url]http://www.webforum.nu[/url]
[url=http://www.webforum.nu]webForum[/url]
';

echo nl2br(urlEncoder($text));
```

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

## #19 — lillebror, 2005-11-13T12:27Z

Nu funkar det! Yeeees! Jag får nog ta på mig det här :e Problemet att det inte fungerade från början berodde på att jag körde med stora bokstäver i URL istället för små som det var i funktionen. Det tänkte jag inte på överhuvudtaget men det är ju klart att det inte går så bra då. Nu ändrade jag till stora. Funktionen fungerar precis som den ska, alla tre alternativen.

Dock kunde jag inte använda mig av citat-tecken i alternativet där man kan skriva in ett länknamn istället för att bara visa länken i klartext. Går det att modda regexp-uttrycket så att det accepterar det? Försökte köra med "\\" för citat-tecknet men då syns det i länken när man skriver ut det på skärmen.

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

## #20 — Matte, 2005-11-13T12:47Z

Lägg till modifikatorn/växeln 'i' till ditt uttryck, så funkar det på både stora och små bokstäver, typ
**/--regexp--/ie**

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

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/137505-göra-riktiga-länkar-i-texten  
Nästa sida: https://www.webforum.nu/amne/webbutveckling/137505-göra-riktiga-länkar-i-texten/page2.md
