Tronquer des chaînes multi-octets en PHP
En PHP, tronquer des chaînes multi-octets peut être une tâche complexe. Cet article aborde le défi de tronquer de telles chaînes à un nombre spécifié de caractères, en tenant compte à la fois du codage des caractères multi-octets et des limites des mots.
Pour y parvenir, une approche consiste à utiliser la fonction mb_strimwidth() intégrée de PHP, qui permet pour la troncature de chaînes avec des largeurs spécifiées. Cependant, cette fonction ne prend pas en compte les limites des mots.
Implémentation personnalisée pour la troncature
Une implémentation personnalisée peut être créée pour gérer à la fois le codage des caractères multi-octets et les limites des mots :
Exemple d'utilisation :
function truncate($string, $chars = 50, $terminator = ' …') { // Calculate truncation length $trunc_len = $chars - strlen($terminator); // Validate string length if (strlen($string) <= $trunc_len) { return $string; } // Find word boundary $space_pos = mb_strrpos($string, ' ', -$trunc_len); // Cut string if ($space_pos !== false) { $truncated_string = mb_substr($string, 0, $space_pos); } else { $truncated_string = mb_strimwidth($string, 0, $trunc_len); } // Append terminator return $truncated_string . $terminator; }
Cette fonction peut être utilisée pour tronquer des chaînes multi-octets, en tenant compte à la fois du codage des caractères et des limites des mots. Il fournit une solution simple et robuste pour cette tâche PHP courante.
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!