Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/05/2006, 22h38   #1
Membre habitué
 
Inscription : juillet 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 237
Points : 107
Points : 107
Par défaut Mettre en majuscules les premières lettres accentuées

Salut tout le monde.
Alors, voila mon problème.
Je veux mettre la première lettre de chaque mot en majuscule, par exemple, science-fiction devient Science-Fiction. Mais je voudrais aussi que si cette première lettre est accentuée, on enlève l'accent!
J'ai donc mélangé deux codes (un trouvé sur le manuel Php et l'autre trouvé ici, mais je retrouve plus le topic ), et ça me donne ça au final :
Code :
1
2
3
4
5
$txt = "éscarpée";
        $accent="áàâäåãéèêëíìîïóòôöõúùûüýçñžæœazertyuiopqsdfghjklmwxcvbn";
        $maj="AAAAAAEEEEIIIIOOOOOUUUUYCNZÆŒAZERTYUIOPQSDFGHJKLMWXCVBN";
        $txt = preg_replace('/\\b(<a href="file://\\w)/e&#39;" target="_blank">\\w)/e'</a>, 'strtr("$1",$accent,$maj)', strtolower(trim($txt)));
        echo $txt;
Et donc, chez moi, en local, ça me donne Escarpée... normal. Sauf que quand je le teste chez ifrance, ça me donne éScarpéE !!! La lettre après l'accent (ou la cédille...) se met en majuscule, et l'accent reste en première position!!!!
Et je comprends pas pourquoi...
Si vous pouvez m'éclairer (soit dit en passant, je ne comprends pas les caractères de mon expression régulière, veuillez m'en excuser )
__________________
La vie n'est qu'une succession d'éternels recommencements
Bibicmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2006, 00h31   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 500
Points : 2 500
Salut, tu peux jeter un oeil à la fonction ucwords() : http://fr.php.net/manual/fr/function.ucwords.php

Ca peut peut-être t'aider
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2006, 11h12   #3
Membre habitué
 
Inscription : juillet 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 237
Points : 107
Points : 107
Euh... Es tu allé sur le lien que j'ai mis dans mon message? Elle ramène justement à la fonction ucwords...
Et si tu essayes cette fonction, tu verras que la première lettre est certes en majuscule, mais qu'elle a gardé l'accent, ce que je ne veux pas. Et en plus, si tu mets un mot composé, ben le deuxième mot n'aura pas de majuscule.
Donc ça ne suffit pas, et c'est pour ça que j'ai été obligé de faire ce bout de code.
__________________
La vie n'est qu'une succession d'éternels recommencements
Bibicmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 15h21   #4
Membre habitué
 
Inscription : juillet 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 237
Points : 107
Points : 107
J'ai effectué quelques tests depuis, et je tiens à préciser que sur ifrance, la fonction ucwords ne renvoie même pas la première lettre en majuscule si celle-ci est accentuée.
__________________
La vie n'est qu'une succession d'éternels recommencements
Bibicmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 05h29   #5
Membre du Club
 
Inscription : février 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 89
Points : 57
Points : 57
et phpinfo() de ton server sur ifrance sa te sors quoi?

si jamais tu arrive pas a faire functionner c'est functin PHP .. tu peu toujours te coder la meme function avec des strpos et des preg_replace dans une boucle
grimsk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 09h46   #6
Membre habitué
 
Inscription : juillet 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 237
Points : 107
Points : 107
Alors, oui, j'ai bien fait un phpinfo()... Mais je dois regarder quoi?
Quant à faire une boucle... euh... si y a moyen d'éviter...
__________________
La vie n'est qu'une succession d'éternels recommencements
Bibicmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 23h12   #7
Membre Expert
 
Avatar de Gruik
 
Développeur Web
Inscription : juillet 2003
Messages : 1 551
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 1 551
Points : 1 473
Points : 1 473
C'est parce qu'il n'yavait pas la meme locale sur ifrance que là où tu as testé
Code :
setlocale (LC_ALL, 'fr_FR');
Cela influera sur strtolower() et preg_replace()
Gruik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2006, 23h15   #8
Membre habitué
 
Homme Sébastien
Développeur informatique
Inscription : août 2003
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : août 2003
Messages : 252
Points : 120
Points : 120
Tu as aussi la fonction string strtr ( string str, string from, string to ) au lieu d'utiliser un preg_replace
smarties est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h02   #9
Membre habitué
 
Inscription : juillet 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 237
Points : 107
Points : 107
Merci beaucoup Gruik!!!
Ca marche nickel maintenant!
Ca fait plaisir! Merci!!!
__________________
La vie n'est qu'une succession d'éternels recommencements
Bibicmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h51.


 
 
 
 
Partenaires

Hébergement Web