---
title: "skapa länkar från:"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/60226-skapa-länkar-från"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Picklezz"
published: "2002-11-25T17:08:04.000Z"
updated: "2002-12-02T23:23:45.000Z"
replies: 9
views: 417
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/60226-skapa-länkar-från"
---

# skapa länkar från:

## #1 — Picklezz, 2002-11-25T17:08Z

\[rel-links\]
PHP\|<http://www.php.net/>
Apache webserver\|<http://httpd.apache.org/>
Smarty Template Engine\|<http://smarty.php.net/>
\[/rel-links\]

Jag vill kunna göra alla rader till länkar där det innan \| skall vara text och det efter vara själva länken...någon som vet?

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

## #2 — Picklezz, 2002-11-26T12:03Z

och ifall det bara står en adress och ingen text med ett \| efter så skall den göra det till text och adress....

hoppas någon vet hur man gör =)

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

## #3 — Mungo, 2002-11-26T12:36Z

Tja, om du har alla dessa poster i en variabel med radbrytningar mellan varje rad skulle jag göra såhär:

```php
# $infil är namnet på variabeln som innehåller länkarna som de blivit inlästa från fil eller databas, du får själv fixa in dem hit.
$radAr = explode("\n", $infil); # Bryt upp i rader
foreach ($radAr AS $rad) {
  $current = explode("|", $rad);
  $link = "<a href=\"" . $current[1] . "\">" . $current[0] . "</a><br>\n";
  $linkAr[] = $link
  # ELLER: echo $link;
  }
```

Som du ser får du ut allting formaterat som HTML-länkar i en array som heter linkAr, sen är det upp till dig vad du vill göra med den.

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

## #4 — Picklezz, 2002-11-26T19:27Z

har försökt o försökt men får det inte att funka...

alltså jag har typ en massa text i en variabel:

afsakdasdkjas
asdaskdja
\[rel-links\]
PHP\|<http://www.php.net>
apache <http://www.apache.org>
\[/rel-links\]

allt är på egna rader...men jag lyckas inte sortara ut det ändå :(

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

## #5 — Matte, 2002-11-26T21:07Z

Finns säkert smidigare varianter, men här är en sak att testa:

```
<?php

$text = "Rad före
[rel-links]
PHP|[url]http://www.php.net/[/url]
   
[url]http://httpd.apache.org/[/url]
Smarty Template Engine|[url]http://smarty.php.net/[/url]
[/rel-links]
rad efter";

// Hämta delen mellan taggarna
preg_match("/\[rel-links](.*)\[\/rel-links]/is", $text, $match);

// Om taggar hittades
if (isset($match[1])){

	$temp = $match[1];
	
	// Rensa tomrader
	$temp = preg_replace("/(\r\n|\r|\n)\s*(\r\n|\r|\n)/", "$1", $temp);

	// För rader utan text med bara url
	$temp = preg_replace("/(\r\n|\r|\n)([^\|]+)(\r\n|\r|\n)/", "$1$2|$2$3", $temp);

	// Gör om till länkar
	$temp = preg_replace("/(\r\n|\r|\n)([^\|]+)\|([^\s]+)/i", "$1<a href=\"$3\">$2</a>", $temp);

	// Lägg in i ursprungliga texten
	$text = preg_replace("/\[rel-links](.*)\[\/rel-links]/is", $temp, $text);

}

echo $text;

?>
```

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

## #6 — Picklezz, 2002-12-02T00:06Z

blir inte riktigt rätt...den skapar bara  en länk till första raden men allt som kommer efter kommer med i samma länk...

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

## #7 — Matte, 2002-12-02T22:08Z

Gör det här någon skillnad?

```
<?php

$text = "Rad före
[rel-links] 
PHP|[url]http://www.php.net/[/url]
[url]http://httpd.apache.org/[/url] 
Smarty Template Engine|[url]http://smarty.php.net/[/url] 
[/rel-links] 
rad efter";

// Hämta delen mellan taggarna
preg_match("/\[rel-links](.*)\[\/rel-links]/is", $text, $match);

// Om taggar hittades
if (isset($match[1])){

	$temp = $match[1];
	
	// Rensa tomrader samt tomma tecken före radslut
	$temp = preg_replace("/\s*(\r\n|\r|\n)/", "$1", $temp);

	// För rader utan text med bara url
	$temp = preg_replace("/(\r\n|\r|\n)([^|]+)(\r\n|\r|\n)/", "$1$2|$2$1", $temp);

	// Gör om till länkar
	$temp = preg_replace("/(\r\n|\r|\n)([^\|]+)\|([^\s]+)/i", "$1<a href=\"$3\">$2</a>", $temp);

	// Lägg in i ursprungliga texten
	$text = preg_replace("/\[rel-links](.*)\[\/rel-links]/is", $temp, $text);

}

echo $text;

?>
```

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

## #8 — Picklezz, 2002-12-02T22:51Z

nja nu funkar det med länkar utan text innan \|
alltså 
php.net\|<http://www.php.net>
funkar...
men nu lägger din in texten som är innan två gånger...

btw...vet någon någon bra sida för regulgära utryck?!?!?

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

## #9 — Picklezz, 2002-12-02T22:52Z

oj...jag som gjorde fel =) nu funkar det.,..tack! men är det någon som vet nån sida så vore det bra...

MVH Gabriel Medina

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

## #10 — Matte, 2002-12-02T23:23Z

Här är några:
<http://www.zend.com/zend/tut/tutorial-delin2.php>
<http://codewalkers.com/tutorials.php?show=30>

Och så har du ju alltid manualen:
<http://www.php.net/manual/en/ref.pcre.php>

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

---

Tråden på webben: https://www.webforum.nu/amne/php/60226-skapa-länkar-från
