Maison > développement back-end > tutoriel php > Comment puis-je tronquer les chaînes PHP au mot le plus proche sans coupures au milieu des mots ?

Comment puis-je tronquer les chaînes PHP au mot le plus proche sans coupures au milieu des mots ?

DDD
Libérer: 2024-12-10 16:54:16
original
709 Les gens l'ont consulté

How Can I Truncate PHP Strings to the Nearest Word Without Mid-Word Cuts?

Tronquer les chaînes PHP au mot le plus proche

Tronquer une chaîne à une limite de caractères spécifique peut entraîner une coupure inesthétique au milieu du mot. Pour répondre à ce besoin, nous explorons un extrait de code PHP qui tronque avec précision le texte à la fin du mot le plus proche.

Solution 1 : Utiliser Wordwrap

La fonction wordwrap peut diviser le texte en lignes en fonction de la largeur maximale spécifiée, en dépassant les limites des mots. Pour obtenir la troncature souhaitée, nous pouvons simplement utiliser la première ligne du texte fractionné :

$truncated = substr($string, 0, strpos(wordwrap($string, $limit), "\n"));
Copier après la connexion

Solution 2 : Troncation basée sur des jetons

Cependant, la solution 1 a une limitation : il coupe prématurément le texte si un caractère de nouvelle ligne apparaît avant le point de coupure. Pour atténuer cela, nous pouvons implémenter une troncature basée sur des jetons :

function tokenTruncate($string, $limit) {
  $tokens = preg_split('/([\s\n\r]+)/u', $string, null, PREG_SPLIT_DELIM_CAPTURE);

  $length = 0;
  $lastToken = 0;
  while ($length <= $limit && $lastToken < count($tokens)) {
    $length += strlen($tokens[$lastToken]);
    $lastToken++;
  }

  return implode(array_slice($tokens, 0, $lastToken));
}
Copier après la connexion

Conclusion

En implémentant ces solutions, vous pouvez efficacement tronquer les chaînes PHP au mot le plus proche, assurant un affichage propre et significatif.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal