22 Voix

PHP: Ajouter target="_blank" aux liens HTML (sortants)

Conseil de Stefan Trost | 10/10/2026 à 19:17

Dans ce tutoriel, je vous montre une solution PHP pour ajouter automatiquement l'attribut target="_blank" à tous liens ou seulement à tous les liens sortants.

Ce code peut être utilisé, par exemple, pour modifier automatiquement un texte qu'un utilisateur a saisi dans un formulaire de commentaire et pour garantir que tous les liens (sortants) s'ouvriront dans une nouvelle fenêtre ou un nouvel onglet et que votre propre page restera ouverte dans le navigateur même lorsqu'un utilisateur clique sur l'un de ces liens.

Ajouter l'attribut target="_blank" à tous les liens

Nous utilisons la fonction PHP preg_replace(), que nous alimentons avec l'expression régulière suivante:

$l = '<a href="https://www.sttmedia.com">';

$l = preg_replace('/(<a href="[^"]+")>/is', '\\1 target="_blank">', $l);

echo $l;  // <a href="https://www.sttmedia.com" target="_blank">

Ainsi, nous recherchons une construction de lien commençant par <a href=" et se terminant par "> et nous remplaçons cette construction par la chaîne correspondante incluant target="_blank".

Entre les deux guillemets doubles après "href=" un texte arbitraire peut apparaître - dans ce cas notre lien. Le texte trouvé entre parenthèses - c'est-à-dire tout depuis '<a href...' jusqu'au guillemet fermant " - mais sans le > fermant, est récupéré à nouveau avec \\1 dans le remplacement et inséré avec ' target="_blank">' à la place du hit.

Ajouter l'attribut target="_blank" uniquement aux liens sortants

En supposant que tous les liens sortants commencent par "http" ou "https" alors que les liens internes ne contiennent pas le nom de domaine complet et ressemblent à "/page-interne.html", "/page-interne" ou "/interne/page.php", nous pouvons développer notre code de la manière suivante:

$l = preg_replace('/(<a href="http:[^"]+")>/is',  '\\1 target="_blank">', $l);
$l = preg_replace('/(<a href="https:[^"]+")>/is', '\\1 target="_blank">', $l);

Avec cela, l'attribut ne sera ajouté qu'aux liens renvoyant à un autre site Web que le propre, les autres liens internes restant inchangé. Tant que les visiteurs naviguent dans leur propre domaine, il est toujours utilisé la fenêtre actuelle du navigateur. Dès qu'ils vont quitter leur propre domaine, une nouvelle fenêtre de navigateur s'ouvre. Bien entendu, cela ne fonctionne de cette manière que si les liens internes sont spécifiés sous la forme mentionnée sans "http" ou "https".

RépondrePositifNégatif

Sur l’Auteur

AvatarVous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil

 

Sujets Connexes

MySQL: Sauts de Ligne dans MySQL

Conseil | 0 Commentaires

CSS: Comment inclure CSS dans HTML

Tutoriel | 0 Commentaires

VirtualBox: Changer la Date et l'Heure

Tutoriel | 10 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.