Seite 1 von 1

Hyperlink mit URL ersetzen

Verfasst: 03.08.2010 23:55
von Martin Truckenbrodt
Hallo,
ein String enthällt u.a. auch HTML Hyperlinks:
<a href="http://www.pipidae.org">www.pipidae.org</a>
.
Ich möchte nun diese Teile durch die URL ersetzen, so dass herauskommt:
.
Es soll also immer der Inhalt von href den kompletten Hyperlink ersetzen.
Leider wollen die meisten Leute die Konvertierung immer genau in die andere Richtung. So bin ich mit Google trotz intensiver Suche noch nicht fündig geworden.

Danke und Gruß Martin

Re: Hyperlink mit URL ersetzen

Verfasst: 04.08.2010 08:37
von gn#36
Regulärer Ausdruck der in etwa passen dürfte:

Code: Alles auswählen

<a href="((https?://|mailto:)[^"]+)">(.*?)</a>
Ersetzen durch Passt nicht auf alles (z.b. URLs die mit einfachen Anführungszeichen abgetrennt sind werden nicht abgefangen und bei fehlerhafter Formatierung geht es auch schief), sollte aber den größten Teil abdecken. Kannst du z.B. per [php:preg_replace] machen.

Re: Hyperlink mit URL ersetzen

Verfasst: 06.08.2010 17:40
von Martin Truckenbrodt
Hallo,
ich habe jetzt:

Code: Alles auswählen

	$text = preg_replace('<a href="((https?://|mailto:)[^"]+)">(.*?)</a>', '\\1', $text);
und bekomme
[phpBB Debug] PHP Notice: in file /includes/newsletter/functions.php on line 465: preg_replace(): Unknown modifier '('
.
Kennst Du eine gute Informationsquelle, an der $pattern ausgiebig erklärt wird? Ich werde wohl nicht darum kommen, mich ausgiebiger bdamit zu beschäftigen.
Gruß Martin

Re: Hyperlink mit URL ersetzen

Verfasst: 06.08.2010 18:10
von Martin Truckenbrodt
Hallo,
ich hab'S mittlerweile gefunden.

Code: Alles auswählen

	$text = preg_replace('#<a href="((https?://|mailto:)[^"]+)">(.*?)</a>#', ' \\1', $text);
funktioniert.

Danke und Gruß Martin