Page 1 sur 1

émuler ucfirst

Posté : 19 mai 2020, 18:38
par thrymartin
Hello,

bonjour,

je cherche à émuler la fonction ucfirst, pour une programmation domotique qui a une liste de fonctions php autorisées et où ne figure pas ucfirst (ben c'est comme ça...)
c'est juste, évidemment, pour remettre une majuscule en début de texte.

je me demandais s'il était possible de le faire sans se casser la tête à extraire la première lettre, amputer le reste du texte de son premier caractère , la passer en majuscule et recoller le tout (bref à faire une fonction de plusieurs lignes)

j'ai regardé en bref un Regex avec juste ^. pour la première lettre et je me demandais si dans la partie $replacement (avec un preg_replace) on pouvait y caser un strtoupper et apparemment non
(avec $n, on peut pointer le résultat, pour y mettre quelque chose avant par exemple un tiret, mais pas y appliquer un changement de casse... enfin c'est ce que j'ai compris et un peu testé

sinon tant pis :-)

mais comme parfois on se casse la tête alors qu'il y a des solutions simples (comme je viens de découvrir la déclaration de variable nowdoc alors que je me cassais la tête à convertir en unicode bref... ), donc à tout hasard...

merci :-)

Re: émuler ucfirst

Posté : 20 mai 2020, 00:12
par @rthur
s'il était possible de le faire sans se casser la tête à extraire la première lettre, amputer le reste du texte de son premier caractère , la passer en majuscule et recoller le tout (bref à faire une fonction de plusieurs lignes)
Ecrit déjà ta fonction telle que tu la verrai et ensuite on l'optimisera, car à priori y a pas vraiment besoin de plusieurs lignes pour faire ça

Re: émuler ucfirst

Posté : 20 mai 2020, 10:14
par thrymartin
Hello,

j'ai bien trouvé ça, mais je trouve ça lourd...

$content = preg_replace('/^./',strtoupper(substr($content, 0, 1)),$content);

Re: émuler ucfirst

Posté : 20 mai 2020, 12:21
par @rthur
En + simple, moi j'aurais fais qqch comme ça :
$content = strtoupper($content[0]).substr($content, 1);

Re: émuler ucfirst

Posté : 20 mai 2020, 13:43
par thrymartin
OK, j'adopte,

merci