<?php
/*------------------------------*/
/*
Titre : Trouver des liens dans un texte
Date édition : 21 Sept 2007
Date mise a jour : 24 Aout 2019
Rapport de la maj:
- fonctionnement du code vérifié
Date mise a jour : 21 Jan 2026
Rapport de la maj:
- fonctionnement du code vérifié en PHP 8
*/
/*------------------------------*/
$chaine = 'le site : http://www.mon-site.com/fr/index.php
est maintenant en ligne avec le site : http://www.monsite.com/index.php
et encore le site : http://monsite.com
ou bien encore : http://www.monsite.com/fr-en/index.php?var=414
et pour terminer : http://monsite.com/index.php?var=414s_dd2&var2=f14
';
// Masque
$masque = '#';
$masque .= '([http|ftp|https]+://';
$masque .= '[www\.]?';
$masque .= '[\.\-a-zA-Z0-9]*';
$masque .= '[a-zA-Z]{2,4}?';
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+?';
// si vous avez + de répertoires a analyser, ajouter + de lignes
// comme la ligne modèle ci dessous :
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+?';
// fin ligne modèle
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+)';
$masque .= '#i';
// FIN MASQUE
?>
MaxThieu
04 Déc 2019 à 19:16Enorme !! J'en avait essayé plein et aucun ne prenait toutes les urls, ton regex est tout simplement magique <3
Invité
10 Oct 2011 à 11:05Merci beaucoup, exactement ce qu'il me fallait.