Position actuelle: Accueil> Derniers articles> Quelles sont les erreurs courantes lorsque vous utilisez UCWords pour implémenter le formatage des titres? Comment l'éviter?

Quelles sont les erreurs courantes lorsque vous utilisez UCWords pour implémenter le formatage des titres? Comment l'éviter?

gitbox 2025-06-08

2. Ignorer la diversité des séparateurs inter-mots

UCWords ne capitalisera que la première lettre d'un mot séparé par des espaces par défaut, mais s'il y a d'autres séparateurs dans la chaîne, tels que trait d'union (-), soulignent (_), etc., UCWords ne le reconnaîtra pas.

 <?php
$title = "my-php_script example";
$formatted = ucwords($title);
echo $formatted;  // Sortir:My-php_script Example
?>

À l'heure actuelle, "php_script" est toujours en minuscules et n'est pas formaté correctement.

Éviter la méthode : vous pouvez personnaliser le séparateur ou remplacer d'autres séparateurs par des espaces d'abord, puis restaurer après le traitement.

 <?php
function ucwords_custom($string, $delimiters = ['-', '_']) {
    foreach ($delimiters as $delimiter) {
        $string = str_replace($delimiter, ' ', $string);
    }
    $string = ucwords($string);
    foreach ($delimiters as $delimiter) {
        $string = str_replace(' ', $delimiter, $string);
    }
    return $string;
}

echo ucwords_custom("my-php_script example");  // Sortir:My-PHP_Script Example
?>

3. Formats incohérents dus à une sensibilité aux cas incohérentes

Si la chaîne d'entrée est déjà partiellement ou entièrement capitalisée, l'utilisation de UCWords peut provoquer une confusion dans les résultats.

 <?php
$title = "tHe quick bROWN foX";
$formatted = ucwords($title);
echo $formatted;  // Sortir:THe Quick BROWN FoX
?>

À l'heure actuelle, certains mots sont toujours mélangés avec une en haut et en mincer, et le format de titre n'est pas réalisé.

Évitez : unifiez d'abord la chaîne en minuscules, puis utilisez UCWords .

 <?php
$title = "tHe quick bROWN foX";
$formatted = ucwords(strtolower($title));
echo $formatted;  // Sortir:The Quick Brown Fox
?>

4. Une erreur s'est produite lors du traitement des chaînes avec des balises ou des URL HTML

UCWords fonctionne bien avec du texte brut, mais si la chaîne contient des balises ou des URL HTML, l'appel détruira directement les balises et les liens.

 <?php
$title = 'visit <a href="https://gitbox.net/path">our site</a>';
echo ucwords($title);
// Le résultat sera des étiquettes manquées par des erreurs,devenir Visit <A Href="Https://Gitbox.Net/Path">Our Site</A>
?>

Évitez : vous pouvez d'abord extraire les balises, traiter les pièces de texte, puis les épisser ou protéger l'URL. Un moyen facile consiste à ignorer les balises HTML.

 <?php
function ucwords_without_tags($text) {
    return preg_replace_callback('/([^<>]+)(?=<|$)/', function($matches) {
        return ucwords(strtolower($matches[1]));
    }, $text);
}

echo ucwords_without_tags('visit <a href="https://gitbox.net/path">our site</a>');
// Sortir:Visit <a href="https://gitbox.net/path">Our Site</a>
?>