Accès au manager - réservé aux membres

Bouts de Codes PHP

Trouver des urls dans un texte

Informations sur le code source PHP


Ecrit par :  KOOgar

Site de l'auteur » Voir

Autres codes en PHP de l'auteur : [48] sources » Voir

Date d'enregistrement du code le 21-09-2007 - Vu 1670 fois

Code source zippé: » Télécharger le fichier ZIP

Impression: » Imprimer le code

Ajouter la page à vos favoris »



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.




Code Source


.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))

?>

Fonctions du code source


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)

Dépôt de ressources


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