Lorsque j'écris un petit programme de nos jours, je dois utiliser des expressions régulières pour faire correspondre l'adresse URL dans le texte saisi par l'utilisateur, puis remplacer l'adresse URL par un lien cliquable. Correspondance d'adresse URL, je pense que cela devrait être quelque chose que tout le monde utilise souvent dans le traitement de vérification. Voici une expression relativement complète que j'ai intégrée :
.Cette expression peut correspondre aux adresses URL des adresses http, https, ftp, ftps et IP. Il s’agit encore d’un calcul de correspondance d’adresse URL relativement complet. En utilisant cette expression, j'ai écrit deux petites fonctions pour remplacer l'adresse URL du message de l'utilisateur par un lien cliquable. Ce n'est pas trop difficile. J'utilise simplement la fonction replace() de JavaScript pour remplacer l'URL par un lien :
Version JavaScript :
renvoyer le texte ;
};
Version PHP :
fonction replace_URLtolink($text) {
// récupère tout ce qui ressemble à une URL...
$urls = tableau();
// construit les modèles
$scheme = '(https?://|ftps?://)?';
$www = '([w] .)';
$local = 'localhost';
$ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
$nom = '([w0-9] )';
$tld = '(w{2,4})';
$port = '(:[0-9] )?';
$the_rest = '(/?([w#!:.? =&%@!-/] ))?';
$pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.'|'.$local.$port.')'.$the_rest;
$motif = '/'.$motif.'/est';
// Récupère les URL
$c = preg_match_all($pattern, $text, $m);
si ($c) {
$urls = $m[0];
>
// Remplacez toutes les URL
si (! vide ($urls)) {
foreach ($urls comme $url) {
$pos = strpos('http://', $url);
si (($pos && $pos != 0) || !$pos) {
$fullurl = 'http://'.$url;
} autre {
$fullurl = $url;
>
$lien = ''.$url.'';
$text = str_replace($url, $link, $text);
>
>
retourner $text;
>