PHP: URL algılama (sıradanifade) satır sonları içerir

2 Cevap php

Ben girdi olarak bir metin alır ve çıkış olarak HTML bağlantıları yapılmış URL'ler ile metin geri veren bir işlevi olmasını istiyorum.

Şöyle Benim taslak:

function autoLink($text) {
    return preg_replace('/https?:\/\/[\S]+/i', '<a href="\0">\0</a>', $text);
}

Ama bu düzgün çalışmıyor.

Içeren giriş metin için ...

http://www.google.de/

... Ben şu çıktıyı alıyorum:

<a href="http://www.google.de/<br">http://www.google.de/<br</a> />

Neden satır sonları dahil? Onu nasıl gerçek URL'ye sınırı olabilir?

Şimdiden teşekkürler!

2 Cevap

How about using Gruber's URL Regex

\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))