Vous êtes ici > code source PHP > URL > Trouver des urls dans un texte








Description du code source
Pouvoir englober tous les types d'urls existant est peut-etre un peu prétentieux. Je propose un masque qui devrait englober tous les types d'urls. Malheuresement je ne les connais pas tous, et j'espere à travers les exemples ci-dessous, avoir remonter les types d'urls les plus courants. Si de votre coté vous trouvez des urls qui ne sont pas capturés par ce regex, faite le moi savoir que j'adapte le regex.

| .01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 .20 .21 .22 .23 .24 .25 .26 .27 .28 .29 .30 .31 .32 .33 .34 .35 .36 .37 .38 .39 .40 .41 .42 .43 .44 .45 .46 .47 .48 .49 .50 .51 .52 .53 .54 .55 .56 .57 .58 .59 .60 .61 .62 .63 .64 .65 .66 |
/***************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/***************************************************************/
/* */
/* Titre:
/* Trouver des urls dans un texte
/* */
/* URL: http://www.phpsources.org/scripts303-PHP.htm
/* Auteur: KOOgar
/* Date édition: 21-09-2007
/* Website auteur: http://www.phpsources.org
/* */
/***************************************************************/
<?php
$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 repertoires a analyser, ajouter + de lignes
// comme la ligne modele ci dessous :
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+?';
// fin ligne modele
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+)';
$masque .= '#i';
// FIN MASQUE
preg_match_all($masque,$chaine,$matches,PREG_SET_ORDER);
// le resultat se trouve dans le tableau $matches
print_r($matches);
// SORTIE :
// Array ( [0] => Array ( [0] => http://www.mon-site.com/fr/index.php
// [1] => http://www.mon-site.com/fr/index.php )
// [1] => Array ( [0] => http://www.monsite.com/index.php
// [1] => http://www.monsite.com/index.php )
// [2] => Array ( [0] => http://monsite.com
// [1] => http://monsite.com )
// [3] => Array ( [0] => http://www.monsite.com/fr-en/index.php?var=414
// [1] => http://www.monsite.com/fr-en/index.php?var=414 )
// [4] => Array ( [0] => http://monsite.com/index.php?var=41_2&var2=f14
// [1] => http://monsite.com/index.php?var=41_2&var2=f14))
?>
|

array : Crée un tableau - (PHP 4, PHP 5)
preg_match_all : Expression rationnelle globale - (PHP 4, PHP 5)
print_r : Affiche des informations lisibles pour une variable - (PHP 4, PHP 5)
print : Affiche une chaîne de caractères - (PHP 4, PHP 5)

Votre participation pour les dépôts de sources est possible à partir de l'espace membre. Il faut être inscrit pour déposer une ressource sur le site.
» Inscription libre et gratuite