Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1463 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [php] convertir "maPage" en "ma page"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] convertir "maPage" en "ma page"

n°1094554
ohan
Posté le 24-05-2005 à 10:41:55  profilanswer
 

Salut,  
je cherche à convertir une chaine de caractère afin de la rendre plus présentable...
 
comment faire pour obtenir une phrase lisible à partir de ce type de mot "maPageDeGarde" en "ma page de garde"
 
 
Merci bien
++

mood
Publicité
Posté le 24-05-2005 à 10:41:55  profilanswer
 

n°1094703
rufo
Pas me confondre avec Lycos!
Posté le 24-05-2005 à 11:54:32  profilanswer
 

strToLower() devrait faire l'affaire...

n°1094705
benamoubea​ch
tivuplai
Posté le 24-05-2005 à 11:56:24  profilanswer
 

sinon avec preg_split()

n°1094709
plainsofpa​in
Pingouino's lover
Posté le 24-05-2005 à 11:56:46  profilanswer
 

Tu mets la chaine dans un tableau, que tu parcours, en recréant un tableau pour la chaine modifiée.  
 
En scannant le tableau d'origine, tu détectes les maj, et a chaque maj, t'insère un espace dans le tableau final, puis un strtolower pour mettre la majuscule en minuscule dans le tableau final.
 
Pis après, tu recrées la chaine à partir du tableau final.
 
Edit : d'autres ont pensé à mieux ... désolé j'aime bien coder mes propres fonctions, et j'ai pas pensé au xreg_split()


Message édité par plainsofpain le 24-05-2005 à 11:57:38

---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1094714
rufo
Pas me confondre avec Lycos!
Posté le 24-05-2005 à 11:59:18  profilanswer
 

pardon, j'avais pas vu le coup des espaces. Sinon, tu peux te faire une dictionnaire de mots puis tu utilises les expressions régulières et à chaque mot trouvé, tu insère un espace...

n°1094725
benamoubea​ch
tivuplai
Posté le 24-05-2005 à 12:06:23  profilanswer
 

j'ai codé ca a l'arrache , ca marche mais c po tres bo :p
 

Code :
  1. <?php
  2. function convert($chaine)
  3. {
  4. $tab = preg_split('/([A-Z])/',$chaine,-1,PREG_SPLIT_DELIM_CAPTURE);
  5. if(!empty($tab))
  6. {
  7.  $finale = '';
  8.  for($i=0;$i<count($tab);$i++)
  9.  {
  10.   if(ereg('[A-Z]',$tab[$i]))
  11.   {
  12.    $finale .= ' '.strtolower($tab[$i]);
  13.   }
  14.   else
  15.   {
  16.    $finale .= $tab[$i];
  17.   }
  18.  }
  19.  $finale = trim($finale);
  20.  return $finale;
  21. }
  22. }
  23. ?>

n°1094784
denzz
huhuuuuu ! (désolé )
Posté le 24-05-2005 à 12:28:29  profilanswer
 

on s'en fout que ce soie beau si c commenté et que y'a que toi qui le lis ....  

n°1094793
afbilou
pouet your life
Posté le 24-05-2005 à 12:35:34  profilanswer
 

Plus compacte :
 

Code :
  1. $string = 'superLesExpressionsRegulieres !';
  2. $string = preg_replace('#([A-Z])#e' , '\' \'.strtolower(\'\1\')' , $string);
  3. echo $string;


Message édité par afbilou le 24-05-2005 à 12:36:02
n°1094836
ohan
Posté le 24-05-2005 à 13:12:57  profilanswer
 

merci beaucoup, surtout pour la regex :)
 
++

n°1094920
cerel
Posté le 24-05-2005 à 14:02:05  profilanswer
 

Attention a ne pas commencer ta phrase par une majuscule, sinon tu auras un espace devant.
Bon on pourrait modifier la regexp pour que cette denrniere ne remplace que les characteres en majuscules qui sont precedes d'un charactere en minuscule.
En tentant une rapide de la regexp sans verification, je pense a un truc du genre :

Code :
  1. $string = 'superLesExpressionsRegulieres !';
  2. $string = preg_replace('#[a-z]([A-Z])#e' , '\' \'.strtolower(\'\1\')' , $string);
  3. echo $string;


(a verifier)


Message édité par cerel le 24-05-2005 à 14:19:18
mood
Publicité
Posté le 24-05-2005 à 14:02:05  profilanswer
 

n°1094937
afbilou
pouet your life
Posté le 24-05-2005 à 14:10:46  profilanswer
 

Arf c'est pas pas comme ca qu'il faut faire alors ...
 

Code :
  1. <?
  2. $string = 'SuperLesExpressionsRegulieresVersion2 !';
  3. $string = preg_replace('#(?<=[a-z])([A-Z])#e' , '\' \'.strtolower(\'\1\')' , $string);
  4. echo $string;
  5. ?>


 
Qui donne -> Super les expressions regulieres version2 !


Message édité par afbilou le 24-05-2005 à 14:10:59
n°1094956
cerel
Posté le 24-05-2005 à 14:20:42  profilanswer
 

Hmmm, faut pas que tu metes \2 a la place de \1 ? Car sinon il va remplacer la premiere recurence entre ( ), non ?
 
Je suis encore inexperimente en regexp, mwa :p

n°1094960
afbilou
pouet your life
Posté le 24-05-2005 à 14:21:19  profilanswer
 

non

n°1095075
benamoubea​ch
tivuplai
Posté le 24-05-2005 à 15:07:49  profilanswer
 

denzz a écrit :

on s'en fout que ce soie beau si c commenté et que y'a que toi qui le lis ....


 
 
ce que j'entendais par beau c'est que c'est tout sauf optimisé


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [php] convertir "maPage" en "ma page"

 

Sujets relatifs
mise en page dans liste déroulanterequete mysql qui me donne une page blache...
supprimer l'ascenceur dans page html[ASP] page "patientez svp" pendant requete
Largeur minimum d'une page[RESOLU][CSS] 2 types de liens sur une page...
HELP: Partager ma page phprestreindre acces à certaines page de mon site
Comment detecter une case cochée en dans une page JSPcomment ouvrir une page internet avec MS DOS
Plus de sujets relatifs à : [php] convertir "maPage" en "ma page"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR