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
DDDoriginal
2024-12-10 16:54:16704parcourir

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"));

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));
}

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!

Déclaration:
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