Rendre un lien cliquable dans un texte et plus
8 messages
• Page 1 sur 1
-

zemage - WRInaute discret

- Messages: 92
- Inscription: 13 Jan 2006
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
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
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.
-

zemage - WRInaute discret

- Messages: 92
- Inscription: 13 Jan 2006
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.
-

NxtGen - WRInaute impliqué

- Messages: 762
- Inscription: 24 Oct 2006
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. - WRInaute passionné

- Messages: 2415
- Inscription: 11 Fév 2005
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).
-

zemage - WRInaute discret

- Messages: 92
- Inscription: 13 Jan 2006
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
Lectures recommandées sur ce thème :
- [Blogger] Rendre le logo cliquable
- rendre une image cliquable
- Rendre une cellule cliquable
- Rendre une adresse mail non cliquable
- Rendre une image en fond d'écran cliquable
- [HTML] Rendre cliquable une ligne <TR> entière
- Rendre les textes d'introduction des articles joomla cliquable /help
- Lien Nofollow cliquable ou lien Dofollow dormant ?
- Convertir ce bout de code (texte) en lien cliquable
- Rapport type : référents d'hier avec lien cliquable
- Transformer de simples citations en liens - 21-06-2006
- Format optimal d'un lien pour le référencement - 04-08-2008
- Yahoo! Open Search : un renouveau des pages de résultats - 26-02-2008
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Opérateurs de recherche avancée sur MSN - 27-06-2005
- Google Analytics désormais ouvert à tous - 16-08-2006
- PR Weaver en test en avant-première - 12-07-2004
- TouchGraph GoogleBrowser v1.0 - 06-07-2002
- 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
