PHP: target="_blank" zu (ausgehenden) HTML Links hinzufügen
Tipp von Stefan Trost | Letztes Update am 01.07.2021 | Erstellt am 03.02.2013
In diesen Tutorial zeige ich euch eine PHP Lösung, um zu allen (ausgehenden) Links automatisch das Attribut target="_blank" hinzuzufügen.
Dieser Code kann zum Beispiel dazu genutzt werden, um den Text, den ein Nutzer über ein Kommentar-Formular eingegeben hat, automatisch zu bearbeiten und dafür zu sorgen, dass sich alle (ausgehenden) Links in einem neuen Fenster beziehungsweise Tab öffnen und die eigene Seite auch beim Klicken auf einen dieser Links im Browser geöffnet bleibt.
Attribut target="_blank" zu allen Links hinzufügen
Wir bedienen uns dazu der PHP Funktion preg_replace, die wir mit dem folgendem regulären Ausdruck füttern:
$l = '<a href="https://www.sttmedia.de">'; $l = preg_replace('/(<a href="[^"]+")>/is', '\\1 target="_blank">', $l); echo $l; // <a href="https://www.sttmedia.de" target="_blank">
Wir suchen also nach einem Link-Konstrukt, das mit '<a href="' beginnt und mit einem '">' endet und ersetzen dieses Konstrukt durch den Treffer inklusive der Angabe "target="_blank"".
Zwischen den beiden doppelten Anführungszeichen nach 'href=' darf ein beliebiger Text - in diesem Fall unser Link - stehen. Der in den Klammern gefundene Text - also alles von '<a href...' bis hin zum abschließenden Anführungszeichen " - aber ohne das abschließende > werden mit \\1 bei der Ersetzung wieder aufgegriffen und zusammen mit ' target="_blank">' statt des Treffers eingefügt.
Attribut nur zu ausgehenden Links hinzufügen
Wenn wir davon ausgehen, dass ausgehende Links immer mit einem "http" oder "https" beginnen, während interne Links nicht den kompletten Domainnamen enthalten, sondern zum Beispiel aussehen wie "/interneseite.html", "/interneseite" oder "/interne/seite.php" können wir unseren Code so erweitern:
$l = preg_replace('/(<a href="http:[^"]+")>/is', '\\1 target="_blank">', $l); $l = preg_replace('/(<a href="https:[^"]+")>/is', '\\1 target="_blank">', $l);
Damit wird das Attribut nur zu Links hinzugefügt, die auf andere Seiten als die eigene verweisen, die anderen internen Links bleiben unberührt. Solange sich Besucher innerhalb der eigenen Domain bewegen, wird immer das gleiche Fenster des Browsers benutzt, sobald sie die eigene Seite verlassen, wird ein neues Fenster geöffnet. Dies funktioniert natürlich nur in dieser Weise, wenn interne Links auch in der genannten Form ohne "http" oder "https" angegeben werden.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
Deutsche Gesetzestexte auf Englisch
Info | 0 Kommentare
jQuery: Data-Attribut-Wert lesen und ändern
Tutorial | 0 Kommentare
CSS-Stylesheets in HTML einbinden
Tutorial | 0 Kommentare
Bild vor dem Upload im Browser verkleinern
Tutorial | 5 Kommentare
jQuery: CSS Stylesheet Switcher
Tutorial | 1 Kommentar
jQuery: DIV-Container abhängig von Checkbox anzeigen oder ausblenden
Tutorial | 2 Kommentare
HTML5: Bilder Upload mit Verkleinerung auf Client Seite
Tutorial | 6 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.