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

Comment puis-je tronquer des chaînes en PHP au mot le plus proche ?

Linda Hamilton
Libérer: 2024-12-23 14:44:13
original
511 Les gens l'ont consulté

How Can I Truncate Strings in PHP to the Nearest Word?

Tronquer les chaînes en PHP au mot le plus proche

Pour recadrer une chaîne à la fin du dernier mot avant un nombre de caractères spécifié, PHP propose plusieurs méthodes.

Utilisation de la fonction wordwrap :

Le La fonction wordwrap divise le texte en plusieurs lignes avec une largeur maximale, rompant automatiquement les limites des mots. En prenant uniquement la première ligne, vous pouvez tronquer le texte au mot le plus proche :

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

Edge Case Handling :

Cette méthode ne gère pas les textes plus courts que la largeur désirée. Pour cela, utilisez ce qui suit :

if (strlen($string) > $desired_width) {
    $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
}
Copier après la connexion

Troncation des jetons :

Pour résoudre les problèmes potentiels liés aux sauts de ligne dans le texte, cette méthode divise le texte en jetons (mots , espaces et nouvelles lignes) et accumule leurs longueurs :

function tokenTruncate($string, $desired_width) {
    $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
    $length = 0;
    $last_part = 0;
    for (; $last_part < count($parts); ++$last_part) {
        $length += strlen($parts[$last_part]);
        if ($length > $desired_width) { break; }
    }
    return implode(array_slice($parts, 0, $last_part));
}
Copier après la connexion

Cette méthode gère également UTF8 caractères.

Tests unitaires :

class TokenTruncateTest extends PHPUnit_Framework_TestCase {
    // ... test cases ...
}
Copier après la connexion

Remarques supplémentaires :

  • Cette méthode repose sur les limites des mots .
  • La gestion des caractères spéciaux comme les emojis ou différentes langues peut nécessiter des considérations.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal