Version complète: sur le forum Webmaster Hub : Comment tronquer les descriptions d'un annuaire
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Césario
Bonsoir à tous,

Je suis en train de créer un petit annuaire basé sur MyDir et j'aimerais tronquer à un moment le texte des descriptions des sites inscrits.

Je suis tombé sur ce script ici qui a l'air de faire ce que je souhaite mais après de nombreux essais et ne comprenant rien au php, je n'y arrive pas.

Est-ce que quelqu'un peut m'aider ?

Voici le code utilisé pour afficher ces sites :

CODE
// Affichier les liens
function affichage_liens($liste, $url_r=1, $fil=0) {
global $tab_pr;

while ($i=mysql_fetch_array($liste))
{
$tab_pr[$i["url"]] = $i["pr"];

echo "\n".'<div class="lien">'."\n".'<a onclick="window.open(this.href,\'_blank\');return false;" href="'.$i["url"].'" title="'.$i["name"].'">'.$i["name"].'</a>';
if ($i["pr"] != 0)
echo ' <img src="images/pr'.$i["pr"].'.gif" alt="Page Rank : '.$i["pr"].'" />';
echo "<br />\n";
echo $i["description"].'<br />';
if ($fil == 0)
echo "\n<span>".$i["url"]."</span>\n</div>\n\n";
else {
echo "\n".'<span>'.$i["url"].'</span><br />';
$title_chemin = show_me_the_way_clic($i['category'], $url_r);
echo "\n<div class=\"ariane\">Catégorie :$title_chemin"."</div>\n</div>\n\n";
}
}
}


Merci.
azerty31700
Bonjour,

Je ne suis pas sur de ce que je vais dire et je n'ai aucun moyen de vérifier mais je sais que cela fonctonne en python, alors pourquoi pas en php ?

Partant du fait que les chaines de caractères sont des taleaux tu peu essayer
CODE
$var = $chaineTropLongue[:500]

Ca devrais, mais encore une fois, je n'en suis pas sur, couper ta chaine trop longue et placer les 500 premiers caractères dans la variable $var.

Bonne chance pour ton annuaire wink.gif
Césario
Bonsoir,

Merci, je vais voir ça même si je ne sais pas trop comment l'utiliser... smile.gif
captain_torche
Personnellement, j'utilise cette fonction, pour ne pas couper en plein milieu d'un mot :
CODE
<?php
    function extrait($txt, $taille = 150) {
        $txt= substr($txt, 0, $taille);
        $last_space = strrpos($txt, ' ');
        $extrait = substr($txt, 0, $last_space);
        return $extrait.' [...]';
    }
?>

Dans le principe, il coupe le texte à X caractères (150 par défaut), puis cherche après ça le dernier espace du texte coupé. Il supprime tout ce qu'il trouve derrière, et ajoute [...]
Césario
Bonjour,

Cela me semble pas mal du tout mais comment l'adapter à mon code ?

Désolé mais moi et le php, c'est pas le top !

Merci.
captain_torche
Il te suffit de faire :
CODE
echo extrait($ta_variable);

Pour couper le texte après plus de caractères, il te suffit de faire :
CODE
echo extrait($ta_variable, 300);
Césario
Bonsoir,

Et merci pour ton aide. C'est parfait !

smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.