JoP Posté 12 Septembre 2006 Posté 12 Septembre 2006 Bonjour... Mise en contexte: un utilisateur entre "allo" dans un champs texte et soumet le formulaire... je voudrais savoir s'il est possible de mettre chaque lette du mot allo dans une "case" différente d'une variable array... merci d'avance
Chark Posté 12 Septembre 2006 Posté 12 Septembre 2006 $montexte=$_POST['xxx'];for ($boucle=0; $boucle < strlen($montexte); $boucle++){$unparun[]=substr($montexte,$boucle,1);} Où "xxx" est le nom de ton champs a remplir dans le formulaire. Remplace le $_POST['xxx'] par un $_GET['xxx'] si ton formulaire est passé par methode Get.
JoP Posté 12 Septembre 2006 Auteur Posté 12 Septembre 2006 Merci, mais juste une petite chose: pourrais-tu m'expliquer un peu le code pour que je puisse comprendre un peu le principe.. merci encore
Chark Posté 12 Septembre 2006 Posté 12 Septembre 2006 Bien entendu. C'est si rare de voir des gens qui veulent comprendre un code et non pas juste le copier/coller $montexte=$_POST['xxx']; ici, tu implémente une variable avec la valeur de ton champs texte ( ça je pense que tu l'avais compris ) for ($boucle=0; $boucle < strlen($montexte); $boucle++) L'instruction for ( argument1, argument2, argument3 ) "argument1" est la valeur que tu va donner à ta variable au départ "argument2" c'est la condition: tant que la condition est remplie, la boucle continue ( on va voir le cas présent ensuite ) "argument3" te sert a ajouter, incrémenter la variable. ici $boucle++ equivaut a $boucle=$boucle+1 strlen($montexte) est une fonction php qui te donne le nombre de caractère de la variable ( par exemple, pour 'allo' il va te renvoyer 4 ) Donc ici $boucle < strlen($montexte) en argument2 veux dire que la boucle continue tant que la variable $boucle est inférieure a la longueur de ta variable de formulaire {$unparun[]=substr($montexte,$boucle,1);} Ca c'est la boucle qui va etre éffectuée $unparun[] c'est ta variable en array.. ne pas spécifier de valeur entre les crochets veux dire que la variable va automatiquement s'incrémenter de 1 a chaque nouvelle entrée substr($montexte,$boucle,1) : substr ( variable, x, y ) te renvoie y lettres APRES la x eme lettre de la variable... par exemple : substr('abcdef',2,1) va te donner 'c ' substr('abcdef',0,3) va te donner 'abc' Voila... Tu peut tester le résultat avec un print_r($unparun); J'espère que tu aura tout compris.. quant à moi, je vais me coucher, il est tard
JoP Posté 12 Septembre 2006 Auteur Posté 12 Septembre 2006 Moi je fais parti des gens qui déteste faire du copier/coller quand il s'agit de quelque chose d'aussi important que mon site web... En plus, quand on copi/colle et que plus tard on veut réutiliser le code pour une autre page et qu'il y a nécéssité de le modifier, il va falloir revenir sur le Hub pour demander qqch qui a deja ete demandé cia
Chark Posté 12 Septembre 2006 Posté 12 Septembre 2006 En effet, moi je préfere passer plusieurs heures a comprendre un code ou a le créer plutot que d'en avoir un fonctionnel en 2 minutes mais que je ne comprends pas... C'est comme ca que tu progresse à une vitesse folle ! Mais parfois ca te joue des tours : Une fois j'ai passé 3 jours à sécuriser un champs "email" d'un de mes formulaires en testant sa validité.. j'ai programmé une fonction d'une bonne 30aine de lignes qui venait vérifier caractere par caractere le nombre de "points", d'arobase et autre...... pour ensuite découvrir que la fonction ereg et ereg_replace donnait la meme chose en une ligne !!! mais en attendant, pendant ces 3 jours, j'ai appris plein de choses qui m'ont reservi plus tard. Bon, cette fois ci je vais au lit pour de bon, bye bye
Anonymus Posté 12 Septembre 2006 Posté 12 Septembre 2006 En fait, php est assez permissif. Lorsque tu déclares une chaine de caractères, il le stocke dans une variable, qui peut te servir de tableau. $test = "coucou";for($x=0;$x<strlen($test);$x++) echo "<br>".$test[$x]; Tu as bien une chaine de caractères $test, que tu appelles à partir d'une boucle 'for'. Ca te renvoie chaque élément dans un tableau. Seul piège, penser à utiliser strlen (qui sert à compter le nombre de caractères d'une chaine) au lieu de 'count', qui sert à compter le nombre d'éléments d'un tableau.
Arkh Posté 12 Septembre 2006 Posté 12 Septembre 2006 Pourquoi ne pas utiliser plutôt un simple: $unparun=str_split($montexte); http://www.php.net/manual/en/function.str-split.php Quand une fonction native fait déjà le travail demandé, elle le fera plus vite que n'importe quel algo en php. Vive la doc php.
JoP Posté 12 Septembre 2006 Auteur Posté 12 Septembre 2006 Merci Anonymus et Arkh, mais Chark a parfaitement résolu mon problème... merci encore
e.MiLoU Posté 13 Septembre 2006 Posté 13 Septembre 2006 As-tu regardé la fonction proposée par Arkh??
Soho Posté 13 Septembre 2006 Posté 13 Septembre 2006 (modifié) Ouiiii ! Merci Arkh ! J'avais le meme style de problème, résolu par 5 à 6 lignes de codes et hop ! grace à toi mes pages s'allègent ! str_split Merci Modifié 13 Septembre 2006 par Soho
JoP Posté 13 Septembre 2006 Auteur Posté 13 Septembre 2006 As-tu regardé la fonction proposée par Arkh?? Oui je lavais regardé, mais alors que ca fonctionnait a merveille je ne lai pas utilisé... et de toute facon, je n'en meme plus besoin car j'ai changé tout le code et j'ai trouver un racourci qui n'utilise plus cette fonction... merci tout de meme...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant