Limite de meta en php

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.
 
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));?>" />
 
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).
 
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)
 
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
 
Il faut que la fonction truncate, que te proposait spout, soit également disponible dans ton code, sinon ça ne marche pas en effet.
 
: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.
 
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);?>" />
 
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
 
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.
 
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
 
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
 
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;
    }
 
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.
 
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
 
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));?>" />
 
<?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 )
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut