Bloc-note d'un développeur web
Dans : Snippets
28 fév 2010Une fonction PHP utilitaire pour convertir une chaîne en notation CamelCase en mots réunis par un séparateur (par défaut, le caractère underscore _).
La fonction uncamel() supporte indifféremment, en entrée, les notations lowerCamelCase et UpperCamelCase.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php /** * Reverse a CamelCase string. * * Examples: * uncamel('lowerCamelCase') === 'lower_camel_case' * uncamel('UpperCamelCase') === 'upper_camel_case' * uncamel('ThisIsAString') === 'this_is_a_string' * uncamel('notcamelcase') === 'notcamelcase' * uncamel('lowerCamelCase', ' | ') === 'lower | camel | case' * * @author Mehdi Kabab <http://pioupioum.fr/> * @copyright 2010 Mehdi Kabab * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://pioupioum.fr/snippets/php-uncamel-fonction-convertir-camel-case.html * * @param string $content The CamelCase string. * @param string $separator The glue for the compound words. Defaults to '_'. * @return string */ function uncamel($content, $separator = '_') { $content = preg_replace('#(?<=[a-zA-Z])([A-Z])(?=[a-zA-Z])#e', "'$separator' . strtolower('$1')", $content); $content{0} = strtolower($content{0}); return $content; } ?> |
Le forker (gist).
uncamel(“ÇaDevraitPasserÇa”); <- EPIC FAIL.
D’un autre côté si tu utilises des
Çdans tes noms de fonctions la porte est grande ouverte pour que tu ailles prendre l’air o/Faut penser unicode mon ami, U-Ni-Code.
D’autant que preg_replace doit pouvoir manger un range de code ASCII/Hex/…
Excellent!
@patpro: cette fonction a clairement été créée pour convertir des noms de méthodes. En tous cas je ne vois pas dans quel autre contexte l’utiliser. Du coup t’es passé pour un con là.
Benoa : le trou de ta lorgnette est vraiment étroit si tu penses que la notation CamelCase se limite à des noms de fonctions, ou même au seul domaine de la programmation.
Je suis curieux de savoir ou trouver du camel case avec accents?
En restant dans le domaine de la programmation, on peut en trouver dans des sources codées avec les pieds ou encore, pour l’unicode, dans des sources rédigées en russe ou encore en japonais. On peut aussi considérer des pages de Wiki qui vont construire les permaliens en appliquant une transformation de case sur le premier caractère des mots (sans substitution des caractères accentués).
Dans mon cas, je me suis borné à un contexte maîtrisé, où la convention de nommage impose l’utilisation des caractères
[a-zA-Z], donc tout va bienNota : le liens PHPDoc @link dans ton code source pointe sur une page 404
Merci, c’est corrigé