Comment Tronquer une chaîne de caractères en PHP pour le terme le plus proche pour un certain nombre de caractères?

J'ai un extrait de code écrit en PHP qui tire un bloc de texte à partir d'une base de données et les envoie à un widget sur une page web. L'original de bloc de texte peut être un long article ou une courte phrase ou deux, mais pour ce widget je ne peux pas afficher plus de, disons, 200 caractères. Je pourrais utiliser substr() pour couper le texte à 200 caractères, mais le résultat serait de couper dans le milieu des mots, ce que je veux est de hacher le texte à la fin de la dernière mot avant de 200 caractères.

  • La question à l'intention de dire que le texte tronqué, sera adapté en un nombre fixe de pixels sur une page web. Dans ce cas, en fonction de police, l'espace requis par char n'est pas constante. Et donc nous ne pouvons pas supposer que 200 caractères vont s'intégrer au mieux dans pixels disponibles. Jusqu'à présent (jusqu'02-Mar-2011), tous ci-dessous les réponses sont manquantes ce point et donc aucun d'entre eux offrent une solution fiable. -:(
  • Non, pas vraiment. Vous pouvez définir la police dans un moyen fiable, et ensuite mesurer le scénario du pire cas aka combien de large personnages serait de les intégrer. Et si vous avez besoin d'être à 100% sûr de savoir comment navigateur rendu, ce n'est pas un problème PHP plus de toute façon.
  • Essayez Ce Lien, Peut Vous aider stackoverflow.com/a/26098951/3944217
  • Vous pouvez trouver s($str)->truncateSafely(200) utile, que l'on trouve dans cette bibliothèque autonome.
InformationsquelleAutor Brian | 2008-09-17