Tronquage de chaînes avec des caractères UTF-8
Problème :
Tronquage de chaînes multi-octets à une limite de caractères spécifiée tout en préservant les limites des mots peut être un défi en PHP. Ce problème implique d'obtenir cette fonctionnalité avec une méthode personnalisée nommée truncate() qui doit se comporter de manière cohérente avec les caractères multi-octets.
Étapes à résoudre :
Solution utilisant mb_strimwidth() :
PHP fournit la fonction mb_strimwidth(), qui peut gérer la troncature de chaîne multi-octets. Cette fonction n'obéit cependant pas aux limites des mots. L'extrait de code suivant démontre son utilisation :
public function truncate($string, $chars = 50, $terminator = ' …') { $maxChars = $chars - strlen($terminator); if (mb_strlen($string) <= $maxChars) { return $string; } $lastWhitespace = mb_strrpos(mb_substr($string, 0, $maxChars), ' '); if ($lastWhitespace !== false) { return mb_substr($string, 0, $lastWhitespace) . $terminator; } else { return mb_substr($string, 0, $maxChars) . $terminator; } }
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!