Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php



 1) URL cliquable fonction V2  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 36)

Fonction permettant de rendre cliquable une ou plusieurs url placées dans un texte.
Accepte dans du texte, des urls du type :
http://www.unsite.com
https://www.monsite.com
ftp://www.monsite.org
et aussi www.monsite.org
ainsi que toutes les extensions à 2 ou 4 lettres.
Accepte également une chaine contenant une url seule
Utilise la fonction preg_replace et un tableau.

<?php

function clicklien($url){ 
$in=array(
'`(((https?|ftp)://(www\.)?[^www][[:alnum:]_.-]+)\.([a-z]{2,4}))`',
'`\s?(?<!//)(www\.)([[:alnum:]_.-]+)\.([a-z]{2,4})\s?\W?`');
$out=array(
'<a href="$1" target="_blank">$1</a>',
'<a href="http://$1" target="_blank">$1</a>');
return 
preg_replace($in,$out,$url); 

echo 
clicklien($texte); 

?>



 2)  URL cliquable fonction V3  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 37)

Identique à la V2, mais celle-çi prend en compte n'importe quel type d'url
www.unsite.com
http://unsite.com
http://www.unsite.com
http://www.expreg.com/liresource.php?type=URL
bref, toutes URL se trouvant dans un texte.

<?php
function clicklien($url){ 
$in=array( 
'`(((?:https?|ftp)://\S+)(\s|\z)`'
'`((?<!//)(www\.)\S+)(\s|\z)`');
$out=array( 
'<a href="$1" target="_blank">$1</a>&nbsp;'
'&nbsp;<a href="http://$1" target="_blank">$1</a>&nbsp;');
return 
preg_replace($in,$out,$url); 

echo 
clicklien($texte); 

?>



 3) URL cliquable simple  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 43)

Rendre simplement les urls placées entre < et > cliquables dans vos textes.

<?php

$motif
='`<([^>].*)>`'
$sortie='<a href="$1" target="_blank">$1</a>'
$texte=preg_replace($motif,$sortie,$texte); 

?>



 4) Supprimer les liens d'un texte  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 48)

Petite regex qui permet de supprimer l'action des liens dans des pages chargées sur le net.

<?php
$motif
='`<a[^>]+?>(.*?)</a>`';
$sortie='$1';
$texte=preg_replace($motif,$sortie,$texte); 
?>



 5) Url et balises perso.  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 49)

Petite regex permettant de créer des liens au départ de balises perso.

<?php
$chaine
="Test d'une url placée entre des balises perso style [ url ] et [ /url ] 
[url]https://www.site1.com[/url] suivie de [url]http://www.site2.com[/url]
et autres balises [url]http://www.site3.com[/url]."
;

$motif='`\[url](.*?)\[/url]`si';
$sortie='<a href="$1" target="_blank">$1</a>';
echo 
preg_replace($motif,$sortie,$chaine);
?>



 6) Césure d'url dans un texte  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 62)

Une petite fonction pour appliquer la césure sur des url à rallonge placée dans un texte.
Peut être facilement modifiée pour être utilisée avec ce satané bbcode.
Peut également être améliorée en fonction de vos besoins spécifiques.

<?php
$texte 
'Et voici un lien dans une page
<http://www.expreg.com/index.php?argument1=un>
auquel on va appliquer une césure'
;

function 
cesure_lien($match) {
return 
'<a href="'.$match[1].'" target="_blank">'.substr($match[1],0,15).'...</a>';    
}
$motif='`<((https?|ftp)://\S+)>`';

echo 
preg_replace_callback($motif,'cesure_lien',$texte);

// affichera :  http://www.expr...
?>

Pour être utilisée avec un bbcode par exemple, le motif pourrait être :
$motif='`\[url]([^[]+)\[/url]`';



 7)  URL cliquable fonction V4 (10/2005)  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 63)

Cette dernière version tient compte de tous les types d'url placées au travers d'un texte, comme un forum ou livre d'or.
- Urls avec leurs protocoles respectifs
- Urls sans protocoles avec le www.
- Urls dynamiques avec ou sans protocole

Les regex tiennent compte des éventuels caractères de ponctuation qui pourraient être placés directement à la suite de l'url afin de ne pas les matcher.

<?php
$texte 
'Bonjour ou bonsoir à toutes et tous,
Vous souhaitez rendre cliquable une ou des urls placées au
 travers de vos textes comme celle-ci www.monsite.com.
Vous pourrez également matcher des urls avec leurs 
protocoles respectifs à savoir http://www.monsite.com/mondossier/mapage.html ou 
ftp://monsite.com, par exemple, ainsi que les url dynamique telle que 
http://site.com/regex/page.php?truc=montruc&machin=lemachin et aussi 
www.site.com/clicurl.php?truc=montruc&machin=lemachin et www.google.fr'
;

function 
clicklien($url){ 
$in=array( 
    
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si'
    
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si'
    
); 
$out=array( 
    
'<a href="$1">$1</a>'
    
'<a href="http://$1">$1</a>'
    
); 
return 
preg_replace($in,$out,$url); 
}
 
echo 
clicklien($texte); 
?>



 8) Url et balises perso. V2  
les regex php d'expreg.com
posté par SlimShady (ID : 56)

Cette regex est une version améliorée de la regex de Yves Maistriaux ce qu'il y a de nouveau c'est que vous pouvez mettre un nom à votre lien au lieu que ce soit par exemple : www.expreg.com
C'est à dire que vous mettrez : [url=www.url.com]le nom de l'url[/url]

<?php
$chaine
="[url=http://www.expreg.com]Le site pour apprendre les expressions 
réguliéres ![/url]"
;

$motif='`\[url=(.*?)](.*?)\[/url]`si';
$sortie='<a href="$1" target="_blank">$2</a>';
echo 
preg_replace($motif,$sortie,$chaine);
?> 



 9) Parser une URL  
les regex php d'expreg.com
posté par Scullder (ID : 57)

Avant de découvrir la fonction php parse_url, j'ai fait cette fonction qui lui ressemble tout en étant moins complète, et en me basant sur une expression régulière déjà existante dans la classe HTTP ( http://pear.php.net/package/HTTP ) de pear distribué sous la version 3 de la PHP license : '`^(([a-z0-9]+)://[^/:]+)(:[\d]+)?`i'

La fonction cut_url a donc un argument, une chaine de caractère (une url) et retourne un tableau de ce type :
Array
(
[0] => url
[1] => protocole
[2] => nom de domaine
[3] => port
[4] => chemin
)

<?php

$url 
"http://www.jeuxvideo.com:80/test/forums.htm";

function 
cut_url($url)
{
    
preg_match('`^([a-z0-9]+://)?([^/:]+)(:[\d]+)?(/.*$)?`i'$url$out);
    return 
$out;
}

print_r(cut_url($url));

/* affichera
Array
(
    [0] => http://www.jeuxvideo.com:80/test/forums.htm
    [1] => http://
    [2] => www.jeuxvideo.com
    [3] => :80
    [4] => /test/forums.htm
)
*/ 

?>



 10) URL + Email cliquables  
les regex php d'expreg.com
posté par Fabrice Lezoray (ID : 7)

Cette portion vous permettra de rendre les URLs et les adresses mails cliquables dans vos textes, en utilisant preg_replace() et les tableaux.

<?php

// le texte ou l on va rendre les email et les urls cliquables
$texte 'debut du texte http://expreg.com suite info@expreg.com encore 
du texte https://europeancards.com fin'
;

$in = array(
'`((?:https?|ftp)://\\S+)(\\s|\\z)`',
'`([[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4}))`'
);

$out = array(
'<a href="$1">$1</a>$2'
'<a href="mailto:$1">$1</a>'
);

echo 
preg_replace($in$out$texte);
?> 




European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::