Extraire lien d'un texte

Mammouth du PHP | 1339 Messages

30 déc. 2005, 00:39

Bonjour,

Je voudrais savoir comme isoler le lien se trouvant dans un texte.

Actuellement j'utilise un script pour le remplacer dans un texte par un lien cliquable.

Cette fois ci je voudrais juste extraire le lien pour l'attribuer à une release :)

Merci de me dire vers ou me diriger !

Elie
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 19672 Messages

30 déc. 2005, 01:04

Je saisis mal, mais à priori, il faut te tourner vers les expressions régulières et preg_match() en particulier
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1339 Messages

30 déc. 2005, 01:18

En fait je voudrais juste extraire le lien de cette chaine !

"coucou http://site.com?var=truc&machin=Kool plouf";

Je voudrais que que $link = "http://site.com?var=truc&machin=Kool";
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 déc. 2005, 01:31

il y a peut-être de l'idée par ici

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

30 déc. 2005, 01:36

Tiens, essaye sur cette base :
<?php
$chaine = "coucou http://www.site.com?var=truc&machin=Kool plouf";
$masque = "#(?:(?:(?:https?|ftp)://)?(?:www\.)?\w+(?:/\w+)*\.\w{2,4})(?:\?\w+=\w+(?:\&\w+=\w+)*)?#i";
preg_match($masque, $chaine, $sortie);
?>
<pre>
<?php
print_r($sortie);
?>
</pre>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1339 Messages

30 déc. 2005, 01:56

Merci cyrano :)

En imaginant qu'il y ai plusieurs liens, de structure differents... :)

Ca marche aussi ?

$chaine = "coucou http://www.site.com?var=truc&machin=Kool plouf f http://www.caca.fr ffff http://elie.najberg.fr fffffff";
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 19672 Messages

30 déc. 2005, 12:20

Avec une petite modification et une correction dans l'expression, oui :
<?php
$chaine = "coucou http://www.site.com?var=truc&machin=Kool plouf f http://www.caca.fr ffff http://elie.najberg.fr fffffff";
$masque = "#(?:(?:(?:https?|ftp)://)?(?:www\.)?\w+(?:(?:/|\.)\w+)*\.\w{2,4})(?:\?\w+=\w+(?:\&\w+=\w+)*)?#i";
preg_match_all($masque, $chaine, $sortie);
?>
<pre>
<?php
print_r($sortie);
?>
</pre>
Va afficher:

Code : Tout sélectionner

Array ( [0] => Array ( [0] => http://www.site.com?var=truc&machin=Kool [1] => http://www.caca.fr [2] => http://elie.najberg.fr ) )
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1339 Messages

30 déc. 2005, 14:21

Merci Mr Cyrano !

Vous restez mon modele absolu !
Bon sinon tu me fais un message privé et on se fait un TeamViewer