fonction php de détection de liens ?
5 messages
• Page 1 sur 1
-

Fab le Fou - WRInaute passionné

- Messages: 1511
- Inscription: 2 Déc 2004
fonction php de détection de liens ?
Bonjour,
Je cherche une fonction php qui détecte les liens dans les textes que je lui fournis et les rend actif.
C'est-à-dire que si dans le texte il y a un -http://www.example.com ou un -moi@monfai.com, elle les détecte et les encadre des balises qu'il faut pour qu'ils soiient cliquables (en protégeant si possible les e-mails).
Bref, rien de bien méchant, mais comme ça existe déjà, inutile de réinventer la roue.
fab
Je cherche une fonction php qui détecte les liens dans les textes que je lui fournis et les rend actif.
C'est-à-dire que si dans le texte il y a un -http://www.example.com ou un -moi@monfai.com, elle les détecte et les encadre des balises qu'il faut pour qu'ils soiient cliquables (en protégeant si possible les e-mails).
Bref, rien de bien méchant, mais comme ça existe déjà, inutile de réinventer la roue.
fab
- bozoleclown
- WRInaute impliqué

- Messages: 893
- Inscription: 24 Nov 2005
J'ai pas un nom de site particulier en tete
mais si tu cherches sur google
pour preg_match+regex+php
tu trouveras surement la regex qu'il te faut pour catcher tes urls dans ton texte
http://www.google.fr/search?q=preg_matc ... ch&start=0
--
Bozo
mais si tu cherches sur google
pour preg_match+regex+php
tu trouveras surement la regex qu'il te faut pour catcher tes urls dans ton texte
http://www.google.fr/search?q=preg_matc ... ch&start=0
--
Bozo
-

spout - WRInaute accro

- Messages: 4110
- Inscription: 14 Mai 2003
- Code: Tout sélectionner
<?php
// Function converts plain-text email addresses and URLs to hyber links
function autoLink($str, $max = 1000) {
// URL - http/https/ftp - larger than $max
$pattern[0] = "/(?<!=\"|=)(http|https|ftp):\/\/([\S]{".$max."})([\S]{0,})/";
$replace[0] = '<a href="$1://$2$3" title="$1://$2$3">$1://$2 ...</a> <a href="$1://$2$3" title="'.NAV_OPEN_NEW_WINDOW.': $1://$2$3" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - http/https/ftp - smaller than $max
$pattern[1] = "/(?<!=\"|=|>)(http|https|ftp):\/\/([^\s]*)/";
$replace[1] = '<a href="$1://$2">$1://$2</a> <a href="$1://$2" title="'.NAV_OPEN_NEW_WINDOW.': $1://$2" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - www - larger than $max
$pattern[2] = "/(?<!=\"|=|http:\/\/)\b(w){3}\.([\S]{".$max."})([\S]{0,})\b/";
$replace[2] = '<a href="http://www.$2$3" title="http://www.$2$3">www.$2...</a> <a href="http://www.$2$3" title="'.NAV_OPEN_NEW_WINDOW.': http://www.$2$3" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - www - smaller than $max
$pattern[3] = "/(?<!=\"|=|http:\/\/|\">|>)\b(w){3}\.([^\s]*)\b/";
$replace[3] = '<a href="http://www.$2">www.$2</a> <a href="http://www.$2" title="'.NAV_OPEN_NEW_WINDOW.': http://www.$2" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// Email
$pattern[4] = "/([A-Za-z0-9\+\-_]+)@([A-Za-z0-9-_]+)\.([A-Za-z]{2,4})([,.]?)/";
$replace[4] = '<a href="mailto:$1@$2.$3">$1@$2.$3</a>$4';
$str = preg_replace($pattern, $replace, $str);
return $str;
}
?>
et si tu veux encoder les emails en Javascript, petite fonction en +:
- Code: Tout sélectionner
function encodeEmail($email, $name = null) {
$email = preg_replace("/\"/","\\\"",$email);
if($name == null)
$name = $email;
$old = "document.write('<a href=\"mailto:$email\">$name</a>')";
$output = "";
for ($i=0; $i < strlen($old); $i++) {
$output = $output . '%' . bin2hex(substr($old,$i,1));
}
$output = '<script type="text/javascript">eval(unescape(\''.$output.'\'))</script>';
$output .= '<noscript><div>'.TXT_NEED_JAVASCRIPT_TO_VIEW_EMAIL.'</div></noscript>';
return $output;
}
La fonction autoLink deviens donc:
- Code: Tout sélectionner
// Function converts plain-text email addresses and URLs to hyber links
function autoLink($str, $max = 1000) {
// URL - http/https/ftp - larger than $max
$pattern[0] = "/(?<!=\"|=)(http|https|ftp):\/\/([\S]{".$max."})([\S]{0,})/";
$replace[0] = '<a href="$1://$2$3" title="$1://$2$3">$1://$2 ...</a> <a href="$1://$2$3" title="'.NAV_OPEN_NEW_WINDOW.': $1://$2$3" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - http/https/ftp - smaller than $max
$pattern[1] = "/(?<!=\"|=|>)(http|https|ftp):\/\/([^\s]*)/";
$replace[1] = '<a href="$1://$2">$1://$2</a> <a href="$1://$2" title="'.NAV_OPEN_NEW_WINDOW.': $1://$2" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - www - larger than $max
$pattern[2] = "/(?<!=\"|=|http:\/\/)\b(w){3}\.([\S]{".$max."})([\S]{0,})\b/";
$replace[2] = '<a href="http://www.$2$3" title="http://www.$2$3">www.$2...</a> <a href="http://www.$2$3" title="'.NAV_OPEN_NEW_WINDOW.': http://www.$2$3" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
// URL - www - smaller than $max
$pattern[3] = "/(?<!=\"|=|http:\/\/|\">|>)\b(w){3}\.([^\s]*)\b/";
$replace[3] = '<a href="http://www.$2">www.$2</a> <a href="http://www.$2" title="'.NAV_OPEN_NEW_WINDOW.': http://www.$2" onclick="javascript:window.open(this.href);return false;"><img src="'.ABSOLUTE_URL.'images/new-window.gif" alt="Open in new window" /></a>';
$str = preg_replace($pattern, $replace, $str);
$emailPattern = "/([A-Za-z0-9\+\-_]+)@([A-Za-z0-9-_]+)\.([A-Za-z]{2,4})([,.]?)/";
return preg_replace_callback(
$emailPattern,
create_function('$matches','return encodeEmail($matches[0]);'),
$str);
}
-

Fab le Fou - WRInaute passionné

- Messages: 1511
- Inscription: 2 Déc 2004
Ok super, je vais tester la fonction de ce pas !
ça a l'air très complet, merci !
Fabrice
ça a l'air très complet, merci !
Fabrice
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Rewriting et fonction php pour modifier les liens internes
- Cherche script php de detection et redirection 404
- Fonction PHP qui faut editer dans php.ini
- Détection de site inexistant ou d'erreur 404 en PHP
- Script php détection moteurs google/yahoo/MSN
- Algorithme de détection de liens vendus/achetés
- détection des liens 303 et 404
- Détection des liens sur mes pages
- css,javascript et detection de liens par google
- fonction en PHP
- Algorithme de détection du link spam de masse - 09-11-2005
- Articles de R et D sur le PageRank, le SpamRank et le spam... - 09-12-2005
- Gérer l'entête HTTP en PHP - 04-08-2008
- Référencer un site multilingue - 24-04-2004
- Le PHP et le référencement - 28-07-2003
- MyMaps : des cartes personnalisées avec Google Maps - 05-04-2007
- Les sites les plus visibles pour le mot Google - 27-11-2002
- Google ajoute la Navigation par nom dans sa Toolbar - 15-07-2004
Consultez la description détaillée des produits ou services de Google suivants : Google Related Links
- Partenaires pour échanger des liens
Cet outil vous liste quelques sites qui font des liens vers des sites similaires au vôtre, pour vous aider à trouver des partenaires pour des échanges de liens. - Détection de pages dupliquées
Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués. - Calcul du taux de backlinks vers pages internes
Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés. - Calcul du nombre de backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

