
Trouver des urls dans un texte
Information sur le code source PHP
Codes en PHP de l'auteur :
[57] sources
Voir
Enregistrement le 21 Sept 2007 - Vu 3701 fois
Information sur le 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
|
|
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Trouver des urls dans un texte */
/* */
/* URL : http://www.phpsources.org/scripts303-PHP.htm */
/* Auteur : KOOgar */
/* Date édition : 21 Sept 2007 */
/* Website auteur : http://www.phpsources.org */
/* */
/******************************************************************************/
$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
Fonctions php / mysql PHP
- preg_match_all : Expression rationnelle globale - (PHP 4, PHP 5)
- print_r : Affiche des informations lisibles pour une variable - (PHP 4, PHP 5)
Offres d'emploi
Librairie
Langages de programmation
La librairie est ouverte à tous et elle est accès principalement sur les langages PHP et MySQL.
Vous trouverez aussi d'autres langages de programmation tel que le CSS, HTML, AJAX, ASP..
Plus de 300 références facilement accessibles. Visiter