[Résolut] Récupérer les liens d'une chaine

WRInaute discret
Bonjour,

Ma demande serait un peu compliquée à expliquer avec des mots, alors je donne un exemple concret :

Code:
$chaine="Voici du texte qui contient des liens http://www.lien1.com et même plusieurs http://www.lien2.fr n'est-ce pas magnifique ?"

Je voudrais à partir de ça obtenir un tableau contenant tous les liens présents dans chaine...

Code:
$tableau[0]="http://www.lien1.com"
$tableau[1]="http://www.lien2.fr"
etc.

J'avais pensé à quelque chose du genre, mais après différente bidouille... je viens demander la solution ici :s

Code:
$pattern = '/http:\/\/(.+) /';
preg_match($pattern, $chaine, $tableau); // marche pas

Merci d'avance !
 
WRInaute passionné
Tiens, essaies plutôt comme ça:

Il doit certainement y avoir plus simple, mais il se fait tard lol

Code:
function urls($string){
	$pattern = '/(http:\/\/{1}[0-9a-zA-Z_\-]*\.{0,1}[0-9a-zA-Z_\-]+\..{2,3})/';
	while(preg_match($pattern, $string, $tableau)){
		$string=str_replace($tableau[1],"",$string);
		$les_urls[]=$tableau[1];
	}
	return $les_urls;
}

la fonction retourne un tableau avec toutes les urls de la chaine ;-)
ça fonctionne avec les extensions "normales"...
Pas les .yu.co ou autre, il faut l'adapter selon tes besoins...
 
Discussions similaires
Haut