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

  FORUM HardWare.fr
  Programmation
  PHP

  Petit probleme php de traitement de chaine (string) assez basic

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit probleme php de traitement de chaine (string) assez basic

n°1274411
Foxus666
Posté le 29-12-2005 à 13:50:40  profilanswer
 

Bonjour
 
je programme depuis quelques temps, un script php, mon 1er vraiment elaboré, il fait plus de  300 lignes de code :)
 
Voila, je récupere cette expression dans une variable :
 
 
$express1 = "Forum enseignants";
 
Je voudrais deja detecté si cette expression fait bien 2 mots, si elle en fait plus on l'ignore, comment faire ?
 
 
si tel est le cas, je souhaiterais mettre dans l'espaces le mot : "des" par exemple
 
Vous avez une petite piste sous la main ?
 
merci de votre patience :)
 

mood
Publicité
Posté le 29-12-2005 à 13:50:40  profilanswer
 

n°1274413
fluminis
Posté le 29-12-2005 à 13:54:11  profilanswer
 

Hello
 
tu peux regarder du coté de la fonction explode pour decouper ta chaine :
http://fr2.php.net/manual/fr/function.explode.php
 
ensuite tu regarde la taille du tableau généré
 
++
Fluminis


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1274417
Foxus666
Posté le 29-12-2005 à 13:58:29  profilanswer
 

super merci, et pour connaitre si une phrase contient plus de 2 mots ou pas ?
 
impec je chauffe la :)

n°1274419
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-12-2005 à 14:04:10  profilanswer
 

Oui enfin t'as des fonctions toutes faites pour faire ça:

Code :
  1. if ( str_word_count ( $string, 0) == 2){
  2.   $string = str_replace ( " ", " des ", $string);
  3. }


n°1274461
Foxus666
Posté le 29-12-2005 à 15:10:59  profilanswer
 

merci :)
 
et sauriez vous comment séparrer une phrase en 2 parties
 
par exemple "maison jaune est belle"
 
récupéré dans uen variable le 1er mot de la phrase "maison" et dans une 2eme variable tous le reste de la phrase : "jaune est belle" ?
 
Ca serais vraiment "l'extase" pour moi :)
 
merci


Message édité par Foxus666 le 29-12-2005 à 15:11:32
n°1274484
nonostrada​mus
Posté le 29-12-2005 à 15:39:14  profilanswer
 

Il y a surement plus simple mais bon ...   :ange:  
 

Code :
  1. $phrase = "maison jaune est belle";
  2. $phrase = explode(" ", $phrase);
  3. $var1 = $phrase[0];
  4. $nb = count($phrase);
  5. for ($i=1 ; $i<$nb ; $i++){
  6. $var2 .= " ".$phrase[$i];
  7. }
  8. echo $var1."<br>"; // maison
  9. echo $var2; // jaune est belle

n°1274492
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-12-2005 à 15:47:38  profilanswer
 

nonostradamus a écrit :

Il y a surement plus simple mais bon ...   :ange:  


Bin avec un regex ça me parait plus simple:

Code :
  1. preg_match_all("/(\W*?)\s(.*)/", $string, $result);


 
Et tu te retrouves avec le 1er mot dans $result[0] et le reste dans $result[1]!!!
 
 

n°1274494
Foxus666
Posté le 29-12-2005 à 15:52:58  profilanswer
 

merci a vous 2 !!!
 
j'ai fait la methode de anapajari mais helas j'obtien la valeur texte "Array" que ca sois en $result[0] ou $result[1], curieux phenomene...
Vous auriez une idée du pouquoi ? :)
 
merci beaucoup


Message édité par Foxus666 le 29-12-2005 à 15:53:21
n°1274501
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-12-2005 à 16:01:19  profilanswer
 

parce que je suis un quiche :o
J'avais oublié que preg_match_all retourne un tableau de tableau
donc tes variables sont dans $result[1][0] et $result[2][0]

n°1274509
Foxus666
Posté le 29-12-2005 à 16:06:58  profilanswer
 

Ou la la anapajari non t'est loin d'etre une quiche lol : Tu m'a sauver la mise :)
 
En effet cela marche a la PERFECTION ta methode, bravo et merci de ton aide et te patience :)
entre temps j'avais tenter la methode de nonostradamus mais ca faisait une boucle sans fin et mon apache était en surcharge lol, mais en une ligne TAC simple et efficace :)
 
encore merci ^^

mood
Publicité
Posté le 29-12-2005 à 16:06:58  profilanswer
 

n°1274516
Foxus666
Posté le 29-12-2005 à 16:28:06  profilanswer
 

Oups, par contre pour une raison unconnu je n'ai rien dans la variable $result[1][0], vide... pour le $result[2][0] c impec j'ai bien la seconde parti  de la phrase.... :/
 

n°1274522
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-12-2005 à 16:40:35  profilanswer
 

bin ce que je disais suis un quiche :o
 
J'ai merdé la regex, remplace \W par \w donc ça donne:

Code :
  1. preg_match_all("/(\w*?)\s(.*)/", $string, $result);


 
ça devrait mieux marcher ;)

n°1274525
Foxus666
Posté le 29-12-2005 à 16:43:40  profilanswer
 

LOL :lol: dit donc comment ça tien a pas grand chose le php :)
 
En effet c'est impec, exactement ce que je souhaitais
 
merci beaucoup ^^


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

  Petit probleme php de traitement de chaine (string) assez basic

 

Sujets relatifs
[swing] Problème avec paintComponent sur un JPanelprobleme aidez moi !!!!!!!!!!!!!!!
VST Traitement audio[Résolu] Probleme de mise en page
Problème avec les <Vector> entre Visual Studio 6 et 8.[applet] probleme de mise à jour, modification non prise en compte
probleme flash mx videoprobleme video flash mx
Probleme avec un "imagecreatefromjpeg"probleme site perso avec firefox
Plus de sujets relatifs à : Petit probleme php de traitement de chaine (string) assez basic


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