Hyperlink mit URL ersetzen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Hyperlink mit URL ersetzen

Beitrag 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
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Hyperlink mit URL ersetzen

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Re: Hyperlink mit URL ersetzen

Beitrag 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
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Re: Hyperlink mit URL ersetzen

Beitrag 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
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Antworten

Zurück zu „Coding & Technik“