Aller au contenu

Question De Limitation De Carractères


Loriciel

Messages recommandés

Bonjour,

C'est la première fois que je poste sur ce forum mais je suis depuis pas mal de temps l'évolution du site (qui évolu très bien en passant :)) aussi je crée maintenant le mien seulement j'ai un petit soucis...

Je suis en train de réaliser un script PHP pour un annuaire de site avec des rubriques et des sous rubriques. Je souhaiterais en fait affficher en dessous de chaque rubrique qu'une partie limité (à une certain nombre de caractères) des sous rubriques.

Exemple :

Pour l'instant j'ai ça :

  • SEGA
    Megadrive, Master System, Dreamcast, Game Gear
  • NINTENDO
    Super Nintendo, Nintendo 64, GameCube, Nes

Et il me faudrait ça :

  • SEGA
    Megadrive, Master Sys...
  • NINTENDO
    Super Nintendo, Ninten...

Vous allez me dire pour quoi tu demandes ici, ben en fait j'ai vu sur le site dans le menu de droite (projet VEDA) que les noms de jeux étaient raccourcis avec des pointillés.

Voilà merci pour vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

Ben en fait, il n'existe pas de fonction PHP destinée à tronquer du texte. Tu as wordwrap() qui te permet de couper ton texte en morceaux tous les n-caractères mais à part ça, rien ne s'y rapproche.

J'ai fait une petite fonction simple à utiliser pour couper les caractères.

function coupe($texte,$maxchar,$suffixe='...')
{
 if(strlen($texte)>$maxchar)
	 {
   $texte = substr($texte,0,$maxchar-strlen($suffixe)).$suffixe;
	 }
 return $texte;
}

Et pour l'utiliser rien de plus simple

echo coupe("Mon texte super long à couper",10,".");

Premier paramètre : ton texte

Deuxième paramètre : le nombre de caractères maxi à accepter. Si la taille du mot dépasse ce nombre, le texte sera coupé à partir de là et remplacé par le 3° paramètre. La longueur du 3° paramètre est prise en compte dans le tas soit dit en passant.

Troisième paramètre : la chaine remplaçant la coupure du mot/phrase. Si tu ne renseignes pas ce paramètre dans l'appel de ta fonction, les points de suspension "..." seront automatiquement utilisés.

Merci pour ton appréciation sur le site :) on continuera sur cette voie comme vous pourrez le constater dans quelques temps.

Lien vers le commentaire
Partager sur d’autres sites

Merci de ta réponse cela fonctionne bien mais seulement au lieu de me limiter la ligne entière cela me met pour chaque mot :

- SEGA

Megadr..., Master Sys..., Dream..., Game G...

En fait voilà mon code :

$query = "SELECT * FROM sous_rubrique WHERE id_rubrique = $id2 ORDER BY nom ASC LIMIT 0,3";
$result = mysql_query($query) or die(mysql_error());
while ($row= mysql_fetch_array($result))

echo coupe("$row[nom]",10,"...");

Il faudrait donc que j'affiche la ligne entière dans une variable et ensuite que j'utilise la fonction de coupe

j'ai essayé ça :

$variable = echo "$val[nom]";
echo coupe("$variable",10,"...");

mais cela me donne une erreur :fuck:

Lien vers le commentaire
Partager sur d’autres sites

C'est dangereux ton histoire pque je suppose qu'il y a des liens sur tes noms de machine. Ca risque de couper également la balise et tout va partir en vrille.

Sinon fais ça

$ligne = '';
$result = mysql_query("select * from sous_rubrique where id_rubrique = '$id2' order by 'nom' asc limit 0,3");

while( $row = mysql_fetch_array($result) )
 {
   $ligne .= $row . ", ";
 }
$ligne = rtrim($ligne,", ");
echo coupe($ligne,10);

Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé le code mais cela me marquue array... à la place

Mais non, en fait c'est idiot ce que je veux faire... Je vais juste limiter le nombre de sous-rubrique à 3 pour chaque rubrique et ajouter '...' à la fin et ensuite faire un rand() dessus pour afficher des sous-rubrqiues différents à chaque fois, histoire de ne pas voir toujours les mêmes.

Pardon de t'avoir fait perdre du temps :wacko:

Lien vers le commentaire
Partager sur d’autres sites

Hm j'ai dû zapper un truc en le faisant vite fait.

Pour les faire apparaitre au hasard, fais cette requête à la place :

"select * from sous_rubrique where id_rubrique = '$id2' order by RAND() limit 0,3

Après avoir fait ton mysql_fetch_array(), tu n'as plus qu'à mettre tes "..." manuellement ^^

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...

Information importante

By using this site, you agree to our Conditions d’utilisation.