---
title: "vad är fel? (regexp)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/90371-vad-är-fel-regexp"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "soocks"
published: "2003-11-13T21:56:51.000Z"
updated: "2003-11-15T14:46:16.000Z"
replies: 8
views: 578
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/90371-vad-är-fel-regexp"
---

# vad är fel? (regexp)

## #1 — soocks, 2003-11-13T21:56Z

Har tragglat en hel del med ett regexp-problem jag har, men fattar inte vad som är fel :) Har kollat på liknande kod av andra, men ack.. 

Som ni ser är (den inte speciellt originella) tanken att en url någonstans i en sträng ska bli en länk automatiskt och den ska kortas av (till 20 tecken) så att inte min layout blir fel..

```php
$content = preg_replace("/((http|news|ftp):\\/\\/\\S+)/", "<a href=\"\\1\" target=\"_blank\">" . substr("\\1", 0, 20) . "</a>", $content);
```

 

Okej? ;)

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

## #2 — soocks, 2003-11-14T19:35Z

jag blir fundersam, eftersom att det inte funkar.. kan det ju inte vara rätt?

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

## #3 — dectgap, 2003-11-14T21:25Z

Testa med detta istället:

```php
$content = preg_replace("/(http|news|ftp):\/\/\S+/e", '"<a href=\"$0\" target=\"_blank\">" . substr("$0", 0, 20) . "</a>"', $content);
```

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

## #4 — soocks, 2003-11-14T23:32Z

> **dectgap skrev:**
>
> Testa med detta istället:
>
>
> ```php
> $content = preg_replace("/(http|news|ftp):\/\/\S+/e", '"<a href=\"$0\" target=\"_blank\">" . substr("$0", 0, 20) . "</a>"', $content);
> ```

Hmm.. fick ett felmeddelande:

> Warning: Unknown modifier '/' in x.php on line 666

Med min kod tar den ju ut länken rätt, men av någon anledning kortar den inte ner länken utan visar den bara i dess riktiga längd. Ändrar man så att bara ett tecken ska visas, visas ett "\\" (från "\\\\1" skulle jag tro). Ökar man sedan längden till 2, visas allt.. i vanlig ordning.

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

## #5 — Nexus86, 2003-11-14T23:41Z

```php
$content = preg_replace("/(http|news|ftp):\\/\\/S+/e", '"<a href=\"$0\" target=\"_blank\">" . substr("$0", 0, 20) . "</a>"', $content);
```

Bättre? ;)

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

## #6 — soocks, 2003-11-15T09:50Z

jippie! ;)

slängde på ett par "\\" före S+ bara, sen funkade det :)

tackar och bockar för hjälpen.. nu ska jag bara försöka förstå  vad det var som jag hade gjort fel ;)

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

## #7 — dectgap, 2003-11-15T11:47Z

Dessa förbanna backslashes som alltid ska trilskas i forum ;)

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

## #8 — Nexus86, 2003-11-15T13:43Z

Felet du hade gjort var att du glömde lägga hela nedanstående kod inom apostrofer. Det måste nämligen stå i en sträng. :)

Fel: "\<a href=\\"\\1\\" target=\\"\_blank\\"\>" . substr("\\1", 0, 20) . "\</a\>"
Rätt: '"\<a href=\\"\\1\\" target=\\"\_blank\\"\>" . substr("\\1", 0, 20) . "\</a\>"'

R// Och så glömde du slänga på ett e i slutet av pattern. :)

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

## #9 — soocks, 2003-11-15T14:46Z

se där, då var det löst ;)

tack återigen!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/90371-vad-är-fel-regexp
