Les autres réponses montrent comment vous pouvez rendre le texte environ 340 caractères. Si cela vous convient, utilisez l'une des autres réponses.
Mais si vous voulez un très strict maximum de 340 caractères, les autres réponses ne fonctionneront pas. Vous devez vous rappeler que l'ajout du '...'
peut augmenter la longueur de la chaîne et vous devez en tenir compte.
$max_length = 340;
if (strlen($s) > $max_length)
{
$offset = ($max_length - 3) - strlen($s);
$s = substr($s, 0, strrpos($s, ' ', $offset)) . '...';
}
Notez également que ici j'utilise la surcharge de strrpos
qui prend un décalage pour lancer la recherche directement à partir de l'emplacement correct dans la chaîne, plutôt que d'abord raccourcir la chaîne.
voir travailler en ligne: ideone
Que voulez-vous faire? si l'utilisateur entre un seul mot de longueur 341 caractères (sans espaces du tout dans le message)? –