Vous consultez les articles taggés majuscule
Août
12

Première lettre en majuscule (MySQL)

La fonction suivante (fonction MySQL) permet de passer en majuscule la première lettre de chaque mot de la chaîne passée en paramètre, tandis que les autres lettres sont passées en minuscules.

DELIMITER $$
 
DROP FUNCTION IF EXISTS `ucfirst` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `ucfirst`(x text) RETURNS text CHARSET utf8
BEGIN
 
#Déclarations
DECLARE positionEspace, positionProchainEspace INT DEFAULT 1;
DECLARE chaineRetour TEXT DEFAULT '';
DECLARE leMot TEXT DEFAULT '';
 
#Si ON trouve un espace dans la chaîne
IF x REGEXP ' ' THEN
 
  #Pour chaque espace trouvé, ON met en majuscule l'initiale du premier mot
  WHILE LOCATE(' ', x, positionEspace) DO
    #Position du prochain espace (pour déterminer la fin du mot courant)
    SET positionProchainEspace = LOCATE(' ', x, positionEspace) + 1;
 
    #On récupère le mot séparé par les espaces
    SET leMot = SUBSTRING(x,positionEspace,positionProchainEspace - positionEspace);
    #On Passe l'initiale du mot en majuscule et le reste en minuscule
    SET leMot = CONCAT(UPPER(SUBSTRING(leMot,1,1)),LOWER(SUBSTRING(leMot,2)));
 
    #On concatène le mot dont l'initiale est en majuscule avec le reste de la chaine de retour déjà constituée
    SET chaineRetour = CONCAT(chaineRetour,leMot);
 
    #On met à jour la position de l'espace pour passer au mot suivant
    SET positionEspace = positionProchainEspace;
  END WHILE;
 
  #Il faut ajouter le dernier mot, qu'on n'a pas pu délimiter car il ne contenait pas d'espace à la fin
  SET leMot = SUBSTRING_INDEX(x, ' ',-1);
  SET leMot = CONCAT(UPPER(substring(leMot,1,1)),LOWER(substring(leMot,2)));
  SET chaineRetour = CONCAT(chaineRetour, leMot);
 
  return chaineRetour;
 
else  #Si pas d'espace dans la chaîne, ON renvoie la version simple de ucfirst
  RETURN concat( UPPER(SUBSTRING(x,1,1)),LOWER(SUBSTRING(x,2)));
END IF;
 
END $$
 
DELIMITER ;
Juil
6

Changement de casse pour caractères accentués

Les fonctions strtolower() et strtoupper() de PHP ne gèrent pas les caractères accentués.

Par exemple, strtolower(« Â ») renvoie « Â », et pas « â ». Idem pour strtoupper(« â »), qui renvoie « â » au lieu de « Â ».

La raison : les lettres accentuées sont codées sur plusieurs octets, contrairement aux autres lettres, et ces fonctions ne traitent

La solution : utiliser les fonctions mb_strtolower() et mb_strtoupper() qui traitent les caractères encodés sur plusieurs octets.

Pour la doc officielle : http://fr2.php.net/manual/fr/function.mb-strtolower.php

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes