Utilisatin de regex pour les liens www-http
bala
-
Dalida Messages postés 7114 Statut Contributeur -
Dalida Messages postés 7114 Statut Contributeur -
Bonjour,
j ecris un petit site internet en php et j´utilise la methode de programmation oriente objet.
et je voudrai que tous les liens www ou http et eventuellement les https sois reconnue et cliquable.
malheureusement ma methode translate() ne fonctione pas quelqun a t il une solution?
merci d avance.
public function translate($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
if (preg_match('#(www)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(www)[a-z0-9._/?&:=-]+#i', '<a href="http://$0">$0</a>', $newvalue);
}
else if (preg_match('#(http://)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(http://)[a-z0-9._/?&:=-]+#i', '<a href="$0">$0</a>', $newvalue);
}
else if (preg_match('#(https://)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(http://)[a-z0-9._/?&:=-]+#i', '<a href="$0">$0</a>', $newvalue);
}
else if (preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', $newvalue)) {
return preg_replace('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', '<a href="mailto:$0">$0</a>', $newvalue);
}
else
return $newvalue;
}
else
return "";
}
j ecris un petit site internet en php et j´utilise la methode de programmation oriente objet.
et je voudrai que tous les liens www ou http et eventuellement les https sois reconnue et cliquable.
malheureusement ma methode translate() ne fonctione pas quelqun a t il une solution?
merci d avance.
public function translate($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
if (preg_match('#(www)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(www)[a-z0-9._/?&:=-]+#i', '<a href="http://$0">$0</a>', $newvalue);
}
else if (preg_match('#(http://)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(http://)[a-z0-9._/?&:=-]+#i', '<a href="$0">$0</a>', $newvalue);
}
else if (preg_match('#(https://)[a-z0-9._/?&:=-]+#i', $newvalue)) {
return preg_replace('#(http://)[a-z0-9._/?&:=-]+#i', '<a href="$0">$0</a>', $newvalue);
}
else if (preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', $newvalue)) {
return preg_replace('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i', '<a href="mailto:$0">$0</a>', $newvalue);
}
else
return $newvalue;
}
else
return "";
}
A voir également:
- Utilisatin de regex pour les liens www-http
- Http - Guide
- Créer un lien pour partager des photos - Guide
- Http //192.168.l.l - Guide
- Vérificateur de liens - Guide
- Www zamob.com ✓ - Forum Téléchargement
5 réponses
merci d avoir reagi rapidement.
le methodes propose ds ce lien marche effectivement; mais des que j ai a faire a un text ou il n ya qu un seul lien http, celui ci ne sera presente qu a moitie comme lien.
deplus je voudrai aussi que toutes les adresse email soit cliquable.
peut ton m aider?
mon code:
public function translateBlob($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
$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,$newvalue);
}
}
le methodes propose ds ce lien marche effectivement; mais des que j ai a faire a un text ou il n ya qu un seul lien http, celui ci ne sera presente qu a moitie comme lien.
deplus je voudrai aussi que toutes les adresse email soit cliquable.
peut ton m aider?
mon code:
public function translateBlob($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
$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,$newvalue);
}
}
des que j ai a faire a un text ou il n ya qu un seul lien http, celui ci ne sera presente qu a moitie comme lien.
heu… ça veut dire quoi ?
heu… ça veut dire quoi ?
Salut
en fait j ai de nombreux textes qui sont stocke dans ma base de donnees. avec la methode translateBlob($blob)
je traite ces textes avant de les presenter.j utilise pour ce faire des regex pour dire: qu importe le texte qui sera sortie de la base de donnees, si il contient du www+chaine de charactere, du http/s ou du ftp +chaine de characteres;tout comme une ou des adresse emails se goupe de mot doit toutde suite etre cliquable. et s il ne contient aucun lien de la sorte alors je renvoie le texte tel quel.
tous les tutos ki mon ete propose me propose des methodes ou des liens ds certain textes ne sont pas reconnu quelqun aurait til une solution final? qui me permettrai de representer tous les liens dans tous les textes
public function translateBlob($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
$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,$newvalue);
}
}
en fait j ai de nombreux textes qui sont stocke dans ma base de donnees. avec la methode translateBlob($blob)
je traite ces textes avant de les presenter.j utilise pour ce faire des regex pour dire: qu importe le texte qui sera sortie de la base de donnees, si il contient du www+chaine de charactere, du http/s ou du ftp +chaine de characteres;tout comme une ou des adresse emails se goupe de mot doit toutde suite etre cliquable. et s il ne contient aucun lien de la sorte alors je renvoie le texte tel quel.
tous les tutos ki mon ete propose me propose des methodes ou des liens ds certain textes ne sont pas reconnu quelqun aurait til une solution final? qui me permettrai de representer tous les liens dans tous les textes
public function translateBlob($blob){
if ($blob !="") {
$newvalue = nl2br($blob->load());
$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,$newvalue);
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question