La fonction UCWords est utilisée pour convertir la première lettre de chaque mot dans une chaîne en majuscule, et d'autres lettres restent minuscules. Cette fonction convient particulièrement à la mise en forme du titre ou à la capitalisation de la première lettre de chaque mot.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world"</span></span><span>;
</span><span><span class="hljs-variable">$formatted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ucwords</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted</span></span><span>; </span><span><span class="hljs-comment">// Sortir "Hello World"</span></span><span>
</span></span>
La fonction Strtolower convertit toutes les lettres d'une chaîne en minuscules. Ceci est très utile pour les formats de cas de texte unifiés, en particulier lors du traitement de l'entrée des utilisateurs, ce qui nécessite généralement une conversion en minuscules pour le traitement unifié.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"HELLO WORLD"</span></span><span>;
</span><span><span class="hljs-variable">$formatted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted</span></span><span>; </span><span><span class="hljs-comment">// Sortir "hello world"</span></span><span>
</span></span>
Bien que UCWords et Strtolower aient chacun des utilisations différentes, dans certains scénarios, la combinaison de ces deux fonctions peut nous aider à gérer les formats de chaîne de manière plus flexible.
Supposons que nous traitons le titre entré par l'utilisateur, et le titre entré par l'utilisateur peut être en majuscules, en minuscules ou en cas mixte. Pour maintenir la cohérence, nous devons généralement convertir la chaîne entière en lettres minuscules, puis convertir la première lettre de chaque mot en majuscule. À l'heure actuelle, la combinaison des fonctions Strtolower et UCWords devient très pratique.
<span><span><span class="hljs-variable">$title</span></span><span> = </span><span><span class="hljs-string">"tHis is a mIXED case TITle"</span></span><span>;
</span><span><span class="hljs-variable">$formatted_title</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ucwords</span></span><span>(</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$title</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted_title</span></span><span>; </span><span><span class="hljs-comment">// Sortir "This Is A Mixed Case Title"</span></span><span>
</span></span>
Cette approche garantit que nous pouvons formater le titre dans un format de titre standardisé quelle que soit l'entrée de l'utilisateur.
Dans certaines applications, en particulier lorsque nous traitons des données d'actualités ou d'articles, nous devrons peut-être formater le nom de l'auteur sous forme standard. Par exemple, vous pouvez rencontrer des noms d'auteur dans toutes les majuscules, toutes les minuscules ou les majuscules aléatoires. Dans ce cas, il est très courant de convertir d'abord le nom entier en lettres minuscules, puis de capitaliser la première lettre de chaque mot.
<span><span><span class="hljs-variable">$author</span></span><span> = </span><span><span class="hljs-string">"jOhN doE"</span></span><span>;
</span><span><span class="hljs-variable">$formatted_author</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ucwords</span></span><span>(</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$author</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted_author</span></span><span>; </span><span><span class="hljs-comment">// Sortir "John Doe"</span></span><span>
</span></span>
De cette façon, peu importe comment l'utilisateur entre le nom de l'auteur, le nom de sortie final sera conforme au format standard.
Lorsque nous avons affaire à des chaînes contenant des caractères non alphabétiques (tels que des nombres, des symboles, etc.), UCWords et Strtolower peuvent se comporter différemment que prévu. Par exemple, UCWords ne capitalisera que les lettres qui l'ont saisie, et pour les chiffres ou les symboles, il ne changera rien. Par conséquent, nous devons être particulièrement prudents lorsque nous traitons avec ces personnages.
Si la chaîne d'entrée contient des nombres ou des symboles et que nous voulons assurer la cohérence dans le formatage des chaînes, un traitement supplémentaire peut être nécessaire pour garantir que les caractères non alphabétiques n'interfèrent pas avec l'effet de mise en forme.
Dans les environnements multilingues, la conversion de cas de caractère peut être affectée par différentes règles linguistiques. Par exemple, dans certaines langues, la conversion de cas n'est pas aussi simple et directe que l'anglais. Par conséquent, lorsque le traitement Strtolower ou UCWords , si des caractères de différentes langues sont impliqués, des fonctions spécialisées telles que MB_Strtolower ou MB_Convert_Case peuvent être nécessaires pour traiter les caractères multi-gytets pour assurer une conversion correcte.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"türkeY"</span></span><span>;
</span><span><span class="hljs-variable">$formatted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ucwords</span></span><span>(</span><span><span class="hljs-title function_ invoke__">mb_strtolower</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted</span></span><span>; </span><span><span class="hljs-comment">// Sortir "Türkey"</span></span><span>
</span></span>
En utilisant MB_STRTOLOWER, nous pouvons nous assurer qu'aucune erreur ne se produit lors du traitement des caractères multi -yte.
Parfois, nous devons avoir besoin de faire un traitement plus complexe des chaînes, comme la conversion de certains mots dans les cas en majuscules ou en minuscules dans des cas spécifiques. Afin de contrôler le formatage plus finement, des expressions régulières peuvent être traitées.
Par exemple, dans un titre, nous pouvons vouloir garder les minuscules de certaines conjonctions (telles que "et", "ou", etc.) sans conversion de capital. Dans ce cas, ces conjonctions peuvent être remplacées par des minuscules via des expressions régulières avant d'appliquer UCWords et Strtolower .
UCWords et Strtolower sont deux fonctions de traitement de chaîne très puissantes. En les combinant, nous pouvons facilement mettre en œuvre diverses exigences de formatage des chaînes. Qu'il s'agisse de formater le titre, de normaliser le nom de l'auteur ou de traiter la saisie de l'utilisateur, l'utilisation de ces deux fonctions peut raisonnablement rendre notre code plus concis et cohérent. Afin d'obtenir les meilleurs résultats, nous pouvons également combiner des expressions régulières ou un traitement de caractères multi-octets en fonction des besoins réels pour améliorer encore la précision et la flexibilité du traitement.