fonction php de détection de liens ?
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
-

Fab le Fou - WRInaute accro

- Messages: 1511
- Inscription: Jeu Déc 02, 2004 15:20
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 passionné

- Messages: 893
- Inscription: Jeu Nov 24, 2005 19:08
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
- 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 accro

- Messages: 1511
- Inscription: Jeu Déc 02, 2004 15:20
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Sortie officielle de GoogleStats v2.0 !
- Sortie de GoogleStats v2.01
- Algorithme de détection du link spam de masse
- Brevet de Google sur le contenu dupliqué
- Le système de crawl de Google en 2008
- Gérer l'entête HTTP en PHP
- Articles de R et D sur le PageRank, le SpamRank et le spam...
- Froogle, l'annuaire du shopping selon Google
- La détection des blog rolls dans Google Blog Search
- Référencer un site multilingue
- Rewriting et fonction php pour modifier les liens internes
- Détection de site inexistant ou d'erreur 404 en PHP
- Script php détection moteurs google/yahoo/MSN
- détection des liens 303 et 404
- Fonction PHP qui faut editer dans php.ini
- Détection des liens sur mes pages
- css,javascript et detection de liens par google
- fonction en PHP
- fonction php
- fonction php : syntaxe
- Fonction substr PHP
- Fonction SUM PHP
- Fonction PHP : checkdnsrr
- [php] Fonction plus rapide ?
- Fonction PHP random
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. - 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. - Transformer des citations en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: stephenz et 0 invités



le forum