Limite de meta en php

WRInaute impliqué
Bonjour,

Veuillez SVP m'aider , j'aimerai limiter la meta description en php a 100 caractère. Le problème j'ai essayer mais ça marche pas.

Voici la meta avec le code php :

Code:
<meta name="Description" content="V<?php echo html_entity_decode($prod['description']);?>" />

comment doit être le code pour qu'il aura un limite de 100 caractère et pas plus. Merci beaucoup d'avance.
 
WRInaute accro
Code:
function truncate($string, $max, $rep = '...') {
   $stringlength = strlen($string);
   $string = $string." ";
   $string = substr($string,0,$max);
   $string = substr($string,0,strrpos($string,' '));
   if($stringlength > $max)
      $string = $string.$rep;
   return $string;
}

Code:
<meta name="Description" content="<?php echo html_entity_decode(truncate($prod['description'], 100));?>" />
 
WRInaute accro
Rod la Kox a dit:
Que tu te complique toi...


Bein non, à la différence d'un substr, au moins la chaîne sera proprement coupée à un espace.

Mais perso j'ajouterais un strip_tags pour virer le code HTML qui n'a rien à faire dans une meta (selon la provenance de la variable).
 
WRInaute accro
Ce que je veux dire c'est que vous en faites bien plus que la demande.
On peut en faire des tonnes. En attendant, faut en avoir l'utilité en fonction du contenu de la variable. (comme tu le précise d'ailleurs)
 
WRInaute impliqué
Bonjour,

Merci pour vos réponse.
J'ai essayer le code :

<meta name="Description" content="<?php echo html_entity_decode(truncate($prod['description'], 100));?>" />

mais ça marche pas ça me donne cette erreur:

Fatal error: Call to undefined function truncate()...

merci de m'aider SVP
 
WRInaute accro
Il faut que la fonction truncate, que te proposait spout, soit également disponible dans ton code, sinon ça ne marche pas en effet.
 
WRInaute accro
:lol:

Oui et je pense qu'il faut plutôt faire:
Code:
<meta name="Description" content="<?php echo truncate(html_entity_decode($prod['description']), 100);?>" />
Sinon ça risque de couper dans les entités html.
 
WRInaute accro
Je dirais même plus (pour nettoyer le balisage html si il est présent) :

Code:
<meta name="Description" content="<?php echo truncate(html_entity_decode(strip_tags($prod['description'])), 100);?>" />
 
WRInaute impliqué
Bonjour,

merci beaucoup, j'ai essayer et ça marche pas le même erreur. Je pense que je vous ai donner le mauvais code ( désoler ).
Pour plus de précision le code qui marche c'est celui la :

Code:
<meta name="Description" content="<?php echo nl2br(html_entity_decode($prod['description']));?>" />

Mais par contre il me donne le descriptif complet de produit et moi j'aimerai limiter a 100.

Mille merci pour vos effort et votre aide
 
WRInaute accro
Tu dois utiliser la fonction de spout si tu veux tronquer (truncate), et si tu veux qu'elle marche, tu dois la copier soit dans ton fichier, soit dans un include fais avant l'appel que tu en fais, ce qui la rendra accessible.

Par ailleurs, le nl2br dans une meta description n'a aucun intérêt. C'est même déconseillé, car tu vas te retrouver avec des balise HTML dans ton attribut content, qui est censé contenir du texte brut.
 
WRInaute accro
Relis la première réponse de spout, il y a deux choses dedans :

1. La fonction truncate à intégrer dans le code php de ta page

2. La manière de modifier ton code pour appeler cette fonction

Tu as besoin des 2
 
WRInaute accro
Je pense qu'il manque de sacré base...
Avant d'apprendre à écrire ou à lire, on apprend l'alphabet. :wink:
Pour le codage, c'est pareil
 
WRInaute impliqué
oui mais comment intégrer ce code est ou ?
Code:
    function truncate($string, $max, $rep = '...') {
       $stringlength = strlen($string);
       $string = $string." ";
       $string = substr($string,0,$max);
       $string = substr($string,0,strrpos($string,' '));
       if($stringlength > $max)
          $string = $string.$rep;
       return $string;
    }
 
WRInaute accro
Au-dessus de ta balsie meta, entre <?php et ?>, tel quel.

Sérieusement, si même ça tu as du mal, je te conseille de suivre une formation, ou tout du moins d'apprendre via des sites de tutos comme phpdebutant, parce là c'est quand même du B-A-BA.
 
WRInaute accro
pense aussi à acheter un bouquin de php ou truc du genre, parcequ'il va y avoir du boulot. comprends- tu au moins le code qu'on te fais copier ? sinon ça sert à rien de copier sans rien comprendre
 
WRInaute impliqué
Bonjour,

Oui je vais faire un cours. Au plus vite. par contre je doit lancer mon site et je peux pas attendre longtemps.
SVP merci de me donner le code complet ça sera sympa et promis le cours je vais le commencer ( après ça sera moi qui donne des solution :p ).

J'ai fait comme suite mais ça marche pas surement faux Merci de m'aider SVP:
Code:
<?php et function truncate($string, $max, $rep = '...') {
       $stringlength = strlen($string);
       $string = $string." ";
       $string = substr($string,0,$max);
       $string = substr($string,0,strrpos($string,' '));
       if($stringlength > $max)
          $string = $string.$rep;
       return $string;
    }
?>
<meta name="Description" content="<?php echo html_entity_decode(truncate($prod['description'], 100));?>" />
 
WRInaute accro
<?php
function truncate($string, $max, $rep = '...') {
$stringlength = strlen($string);
$string = $string." ";
$string = substr($string,0,$max);
$string = substr($string,0,strrpos($string,' '));
if($stringlength > $max)
$string = $string.$rep;
return $string;
}
?>
<meta name="Description" content="<?php echo truncate(html_entity_decode(strip_tags($prod['description'])), 100);?>" />

je vois pas pourquoi il y avait un et au milieu du code (après le <?php )
 
Discussions similaires
Haut