Rendre un lien cliquable dans un texte et plus
8 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Rendre un lien cliquable dans un texte et plus
Bonjour, après des heures de recherches sur les expressions régulières
je ne trouve pas de solution.
Mon but : rendre dans un texte un liencliquable mais le rétrécir un peu en mettant 3 points pour le réduire s'il est supérieur à 30 caractères par ex.
ex : http://unsuperlientroplong...
$texte= ereg_replace("(http://)(([[:punct:]]|[[:alnum:]])*)","<a href=\"\\0\" target=\"_blank\">http://\\2</a>",$texte);
je voudrais faire un substring sur la partie \\2 pour afficher debutlien... si le l'url est trop long, hors je n'y arrive pas...
J'ai entenu parler de preg et preg callback mais impossible à modéliser, si quelqu'un sait ?
Merci
je ne trouve pas de solution.
Mon but : rendre dans un texte un liencliquable mais le rétrécir un peu en mettant 3 points pour le réduire s'il est supérieur à 30 caractères par ex.
ex : http://unsuperlientroplong...
$texte= ereg_replace("(http://)(([[:punct:]]|[[:alnum:]])*)","<a href=\"\\0\" target=\"_blank\">http://\\2</a>",$texte);
je voudrais faire un substring sur la partie \\2 pour afficher debutlien... si le l'url est trop long, hors je n'y arrive pas...
J'ai entenu parler de preg et preg callback mais impossible à modéliser, si quelqu'un sait ?
Merci
Tiens je te donne cela brut de décoffrage :
C'est une partie d'un de mes codes qui n'affiche que 80 caractères maxi dans un lien, mais j'ai la flemme de l'adapter pour toi.
Tu n'as plus qu'a bosser un peu.
- Code: Tout sélectionner
if ($nbCaractère > 80) {
$chaine = explode(' ', substr($titreLien, 0, 80) );
echo '<a href="'.$_SERVER['REQUEST_URI'].'#som'.$numAncreSom.'" tabindex="'.$numTabIndex.'" title="'.$item['title'].'">';
for ($a = 0; $a < count($chaine) - 1 ; $a ++) {
echo ' '.$chaine[$a];
}
echo '</a> '.$chaine[$a].substr($titreLien, 80);
}
else {
echo '<a href="'.$_SERVER['REQUEST_URI'].'#som'.$numAncreSom.'" tabindex="'.$numTabIndex.'">'.$titreLien.'</a>';
}
C'est une partie d'un de mes codes qui n'affiche que 80 caractères maxi dans un lien, mais j'ai la flemme de l'adapter pour toi.
Tu n'as plus qu'a bosser un peu.
Merci medium pour ta réponse, seulement cela est réalisable sur une chaine définit comme lien, là c'est un ensemble de texte plus des liens donc le nombre de caractères n'est pas un critère.
Ex: j'ai un texte avec des mots....et des liens....et des mots...et des liens...
Ta fonction n'est pas adaptable à ce cas, car on ne sait pas ou le lien est dans le texte d'ou le ereg..
J'avais trouvé hier un début de piste sur http://www.webrankinfo.com/forums/viewtopic_19326.htm
mais pas plus avancé dessus en fait, je ne trouve pas de syntaxe.
Ex: j'ai un texte avec des mots....et des liens....et des mots...et des liens...
Ta fonction n'est pas adaptable à ce cas, car on ne sait pas ou le lien est dans le texte d'ou le ereg..
J'avais trouvé hier un début de piste sur http://www.webrankinfo.com/forums/viewtopic_19326.htm
mais pas plus avancé dessus en fait, je ne trouve pas de syntaxe.
Peut etre avec ca :
Je suis pas sur de l'expression réguliere que j'ai utilisé, je l'ai pris dans les fonctions de PHPBB
- Code: Tout sélectionner
<?
$texte = "tout ton texte avec des http://www.example.net, des mots, des liens";
$match_count = preg_match_all("# ([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+)*?) #si", $texte, $matches);
for ( $i=0; $i<$match_count; $i++) {
$after = $matches[1][$i];
$link = ( strlen($after)>30 ) ? substr($after, 0, 30)."..." : $after;
$before = "<a href=\"$after\">$link</a>";
$texte = str_replace($after, $before, $texte);
}
echo $texte;
?>
Je suis pas sur de l'expression réguliere que j'ai utilisé, je l'ai pris dans les fonctions de PHPBB
-

Patrice A. - Modérateur

- Messages: 2413
- Inscription: Ven Fév 11, 2005 19:36
Il me semble qu'ereg_replace (ou preg_replace ?) permet dès PHP4 d'utiliser une fonction PHP comme chaine de remplacement (donc la première fonction proposée, pourrait faire l'affaire).
NxtGen a écrit:Peut etre avec ca :
- Code: Tout sélectionner
<?
$texte = "tout ton texte avec des http://www.example.net, des mots, des liens";
$match_count = preg_match_all("# ([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+)*?) #si", $texte, $matches);
for ( $i=0; $i<$match_count; $i++) {
$after = $matches[1][$i];
$link = ( strlen($after)>30 ) ? substr($after, 0, 30)."..." : $after;
$before = "<a href="$after">$link</a>";
$texte = str_replace($after, $before, $texte);
}
echo $texte;
?>
Je suis pas sur de l'expression réguliere que j'ai utilisé, je l'ai pris dans les fonctions de PHPBB
J'ai testé mais sans résultat...Merci a vous pour ces bouts de codes.
8 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 :
- Transformer de simples citations en liens
- Format optimal d'un lien pour le référencement
- Yahoo! Open Search : un renouveau des pages de résultats
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Google Analytics désormais ouvert à tous
- Opérateurs de recherche avancée sur MSN
- TouchGraph GoogleBrowser v1.0
- PR Weaver en test en avant-première
- Pourquoi il ne faut pas utiliser d'underscore dans les URL
- Trouver des backlinks avec Google et Yahoo (commandes link et linkdomain)
- Recherche de citations d'un site en texte brut
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). - Test de lien (type de redirection)
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs). - Calcul du taux de liens vers des 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. - Touch Graph Google Browser
Description du TouchGraph Google Browser (outil externe) : il s'agit d'un outil graphique permettant de visualiser des sites similaires (selon Google). On peut sauter de site en site, et se rendre compte facilement des communautés de sites, ou des nébuleuses de sites traitant du même sujet.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum