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

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] concatenation

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[RESOLU] concatenation

n°1400454
mule_panda
Posté le 04-07-2006 à 16:40:08  profilanswer
 

bonjour, jai une chaine de caractére P1.jpg, je voudrai gardé que les chiffres pour incrémentez de 1 (P2.jpg, P3.jpg...) jai utilisez cette maniére substr('P1;jpg', 1, 1); mais le probléme est que si jai P10.jpg sa marchera pu. Merci d'avance
 
[EDIT]=merci guitou12


Message édité par mule_panda le 06-07-2006 à 16:32:48
mood
Publicité
Posté le 04-07-2006 à 16:40:08  profilanswer
 

n°1400462
nemohp
Adepte du provisoire permanent
Posté le 04-07-2006 à 16:42:15  profilanswer
 

tu exploses ta chaine au point, tu rajoutes ton numero et tu recolles.
sinon avec une expression reguliere

n°1400463
esox_ch
Posté le 04-07-2006 à 16:42:22  profilanswer
 

for($i=0;$i<jusqu_ou_tu_veux_aller;++$i)
echo 'P'.$i.'.jpg';
 
?
 
[Edit: Oublié que c'etait du php]


Message édité par esox_ch le 04-07-2006 à 16:43:21

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400464
guitou12
Dev php à mi-temps :D
Posté le 04-07-2006 à 16:43:18  profilanswer
 

Essaie avec explode
 
PS: on crémente pas on incrémente ;)

n°1400517
mule_panda
Posté le 04-07-2006 à 17:11:14  profilanswer
 

avec ceci : strrchr(P1.jpg,'.'); on garde ce qu'il y a aprés le point comprix. Existe t il linverse?

n°1400524
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 17:15:38  profilanswer
 

Code :
  1. preg_replace('/P(\d+).jpg/e', 'P'.($1+1).'jpg');

n°1400547
nemohp
Adepte du provisoire permanent
Posté le 04-07-2006 à 17:29:21  profilanswer
 

autre solution (mais moins bien)
 
 

Code :
  1. $fileName= "photo.jpg";
  2. $i=2;
  3. $elements= explode(".", $fileName);
  4. echo $fileName." => ".elements[0].$i.elements[1];

Message cité 1 fois
Message édité par nemohp le 04-07-2006 à 17:30:26
n°1400552
esox_ch
Posté le 04-07-2006 à 17:31:17  profilanswer
 

nemohp a écrit :

autre solution (mais moins bien)
 
 

Code :
  1. $fileName= "photo.jpg";
  2. $i=2;
  3. $elements= explode(".", $fileName);
  4. echo $fileName." => ".elements[0].$i.elements[1];



 
Ouah  :ouch:  Je pensais pas qu'on pouvait trouver aussi lourd  :ouch:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400553
mule_panda
Posté le 04-07-2006 à 17:32:01  profilanswer
 

ou alor j'ai 1P.jpg, je souhaite enlevé le 5 derniére Lettre ?

n°1400555
esox_ch
Posté le 04-07-2006 à 17:32:32  profilanswer
 

=> Lire la doc


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 04-07-2006 à 17:32:32  profilanswer
 

n°1400565
nemohp
Adepte du provisoire permanent
Posté le 04-07-2006 à 17:36:28  profilanswer
 

esox_ch a écrit :

Ouah  :ouch:  Je pensais pas qu'on pouvait trouver aussi lourd  :ouch:


 
lol c'est sur mais il cherchait un truc du genre  :sweat:  
 
il découvre les manipulations de chaines avec PHP, faut lui laisser le temps  ;)  

n°1400566
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 17:36:48  profilanswer
 

elle te plait pas ma solution ???
Tiens encore plus bourrin comme ça, ça marche tout le temps:

Code :
  1. preg_replace('/(\d+)/e', $1+1);

n°1400569
esox_ch
Posté le 04-07-2006 à 17:38:17  profilanswer
 

Oula :D Les fanatique de perl debarquent :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400571
nemohp
Adepte du provisoire permanent
Posté le 04-07-2006 à 17:39:24  profilanswer
 

du shell plutot

n°1400573
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 17:42:41  profilanswer
 

Nan nan preg c'est pour "perl regular ..." donc c'est plutot esox_ch qu'a raison ... mais prout quand même :o
 
Mais honnêtement, autant les expressions régulières sont plus que souvent mal utilisées, autant là ça correspond parfaitement à son besoin.

n°1400614
esox_ch
Posté le 04-07-2006 à 18:42:10  profilanswer
 

Et ma boucle hein? Elle est bien ma boucle!
*Ok je sors ...*
 
P.S: Repet pour l'ereg :D Faudra que j'apprenne cet été .. parceque la mon niveau est celui des tuto php (lim -> 0)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400616
Hermes le ​Messager
Breton Quiétiste
Posté le 04-07-2006 à 18:46:36  profilanswer
 

Ouai enfin, ya quand même quelques questions à se poser.
 
1) Est-ce que les noms des fichiers sont vérifiés comme étant forcément lettres+numero.jpg (en clair, faut pas qu'il y ait un autre mélange chiffre lettres avant le chiffre avant le '.')
 
2) Pourquoi ne pas définir un chiffre maximal, genre 9999 et donc on aurait : truc0001.jpg pour le premier.
Sacrément plus simple ensuite avec un substr($chaine, -8, 4) qui sera facile à traiter et bcp plus rapide qu'une expreg.

n°1400618
esox_ch
Posté le 04-07-2006 à 18:51:55  profilanswer
 

Nous on propose des solutions avec ce qui nous est donné Monsieur :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400858
mule_panda
Posté le 05-07-2006 à 09:36:19  profilanswer
 

Hermes le Messager a écrit :

Ouai enfin, ya quand même quelques questions à se poser.
 
1) Est-ce que les noms des fichiers sont vérifiés comme étant forcément lettres+numero.jpg (en clair, faut pas qu'il y ait un autre mélange chiffre lettres avant le chiffre avant le '.')
 
2) Pourquoi ne pas définir un chiffre maximal, genre 9999 et donc on aurait : truc0001.jpg pour le premier.
Sacrément plus simple ensuite avec un substr($chaine, -8, 4) qui sera facile à traiter et bcp plus rapide qu'une expreg.


 
Bonne idée j'y avait passé mais lorsque que lon incremente 0001+1 il va marqué truc2.jpg, je vai testé les différente solution se matin Merci pour votre aide, je vous tindedrez informez.  :sarcastic:

n°1400862
Hermes le ​Messager
Breton Quiétiste
Posté le 05-07-2006 à 09:40:11  profilanswer
 

mule_panda a écrit :

Bonne idée j'y avait passé mais lorsque que lon incremente 0001+1 il va marqué truc2.jpg, je vai testé les différente solution se matin Merci pour votre aide, je vous tindedrez informez.  :sarcastic:


 
 
printf dans la doc.  :o

Code :
  1. printf("%04d", $ta_variable);


Message édité par Hermes le Messager le 05-07-2006 à 09:42:05
n°1400967
mule_panda
Posté le 05-07-2006 à 11:44:19  profilanswer
 

anapajari a écrit :

elle te plait pas ma solution ???
Tiens encore plus bourrin comme ça, ça marche tout le temps:

Code :
  1. preg_replace('/(\d+)/e', $1+1);



 
EUh la je décroche, la solution à esox_ch est plus à mon niveau, car pour anapajari le truc c'est que je récupére un nom de fichier stocké dans une base de donnée sous la forme de P1.jpg et je veu incrementais le 1 pour navoir en sortie simplement P2 sans lextention que je remeterais plutar (soi jpg; pdf gif...).
te pour Hermes le Messager mettre une limite n'ennuie un peu car il y aurai un grand nombre de photo mais je ne connai se nombre( +5000 c'est sur)

Message cité 1 fois
Message édité par mule_panda le 05-07-2006 à 11:45:54
n°1400974
nemohp
Adepte du provisoire permanent
Posté le 05-07-2006 à 11:50:49  profilanswer
 

ça l'air tordu ton histoire... explique nous à quoi ça sert

n°1400979
esox_ch
Posté le 05-07-2006 à 11:55:39  profilanswer
 

Mouais ... La solution d'anapajari est quand même mieux (et plus class ) que la mienne ... M'enfin bon c toi :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1400981
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 11:56:34  profilanswer
 

Code :
  1. preg_replace('/(\d+)\.*$/e', $1+1);


:o

n°1400987
mule_panda
Posté le 05-07-2006 à 11:59:58  profilanswer
 

bon je vai tanté de tout expliqué (euh faite pas attention au fautes d'orthographe  :(  ) Donc je suis en train de creer une phototek pour un intranet. Les type de fichier suporté seront le gif, le jpeg et le pdf(y arrive pas encore). Une page servira a ajoutez une photo a la phototek, lor de leur telechargement un script php creer une miniature au format jpeg. Et stok le nom de la photo original, son dossier ou elle est rangée, son auteur... dans une base de donnée. Et en faite pour chaque nouveau ajout  d'image je vai cherchait dans la base de donner le nom de fichier le dernier enregistrer (ex: P56.jpg) et je le modifie pour creer le nouveau nom de limage en cour dupload ( ex: P57.jpg) et je lenregistre dans la base de donner.  J'espére que c'est clair  :??:  :p


Message édité par mule_panda le 05-07-2006 à 12:01:24
n°1400989
Hermes le ​Messager
Breton Quiétiste
Posté le 05-07-2006 à 12:00:28  profilanswer
 

mule_panda a écrit :

pour Hermes le Messager mettre une limite n'ennuie un peu car il y aurai un grand nombre de photo mais je ne connai se nombre( +5000 c'est sur)


 
Eh bien, tu mets 000001, il n'y aura pas plus de 999999 photos nan ?  :o  
 
Ma solution est de loin la plus optimisée. :o

n°1400990
mule_panda
Posté le 05-07-2006 à 12:02:36  profilanswer
 

Hermes le Messager a écrit :

Eh bien, tu mets 000001, il n'y aura pas plus de 999999 photos nan ?  :o  
 
Ma solution est de loin la plus optimisée. :o


 
En faite tu vien de me donner la solution pour un autre probléme avec ceci printf("%04d", $ta_variable);  merci :jap:

n°1401171
mule_panda
Posté le 05-07-2006 à 15:46:12  profilanswer
 

bon j'ai trouvé une solution
 
 

Code :
  1. $elements= explode("-", $maxnom);
  2. $nom=$elements[1];
  3. $elements2= explode(".", $nom);
  4. $nnom=$elements2[0];
  5. $nnom=$nnom+1;
  6. $nnom=$elements[0]."-".$nnom;


 
 
je sai c'est "sale", mais sa marche  :sweat:  
 
Merci a tous pour votre aide, trés bon forum  :hello:


Message édité par mule_panda le 05-07-2006 à 15:47:07
n°1401176
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 15:49:27  profilanswer
 

moi je continue a dire qu'avec une regex et preg c'était plus simple :o :o :o

n°1401180
esox_ch
Posté le 05-07-2006 à 15:53:09  profilanswer
 

Anapajari, laisse le :D Probablement pour ce qu'il fait c'est plus adapté


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1401195
mule_panda
Posté le 05-07-2006 à 16:05:17  profilanswer
 

anapajari a écrit :

moi je continue a dire qu'avec une regex et preg c'était plus simple :o :o :o


 
Je te demande juste de m'expliquer comment cela marche ou plutot fonctionne? :ange:

n°1401252
esox_ch
Posté le 05-07-2006 à 16:50:19  profilanswer
 

Lire la doc :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1401256
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 17:00:50  profilanswer
 

allez en gros preg_replace execute une expression régulière ( tu peux jeter un oeil là si tu connais pas: http://www.regular-expressions.com/) et remplace les occurences qui sont vérifiées par ta pattern ( le 1er paramètre de la fonction) par le 2eme paramètre.
 
Après la syntaxe des regex est un peu particulière mais celle ci est assez simple


/                       #debut du délimiteur de la pattern
 (                      #on definit un motif ( c'est pour pouvoir le récuperer ensuite)
   \d                 #ce motif est composé d'un chiffres (\d c'est tous les chiffres de 0 a 9)
   +                  #présent au moins un fois
 )                     #fin du motif
 \.                    # suivi d'un point
 .                     # suivi de n'importe quel caractère ( c'est à ça que correspond le point ( les plus attentifs auront noté que je l'avais zappé dans ma regex au dessus ))
 *                     # présent au moins une fois ( dans ton cas vu que tu cherches uniquement les extensions jpg, gif, pdf on aurait pu remplacer .* par (jpg|gif|pdf)
 $                     # fin de la chaine
/                      # fin de la pattern
e                      # pour le préciser d'évaluer le contenu de replacement


Le e à la fin est obligatoire par sinon sur par exemple "P1.jpg" tu aurais obtenu "P$1+1", ce qui n'est pas ce que tu cherchais.
 
Dans la partie remplacement $1 correspond au motif trouvé ( dans notre cas les \d+), avec le e il evalue donc le bouzin est te donne P2.
 

n°1401258
esox_ch
Posté le 05-07-2006 à 17:02:56  profilanswer
 

Maintenant reste plus qu'a voir s'il a compris :D
(Question a 2 balles, pourquoi utiliser \d au lieu de [0-9] ? A part le fait que c'est plus rapide à ecrire )


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1401263
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 17:06:59  profilanswer
 

esox_ch a écrit :

Maintenant reste plus qu'a voir s'il a compris :D
(Question a 2 balles, pourquoi utiliser \d au lieu de [0-9] ? A part le fait que c'est plus rapide à ecrire )


s'plus rapide à ecrire :o

n°1401273
esox_ch
Posté le 05-07-2006 à 17:15:59  profilanswer
 

A part ça, t'as vu sur le site de 99 bottles le truc en perl? T'y captes qqch toi ? :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1401495
mule_panda
Posté le 05-07-2006 à 21:59:44  profilanswer
 

désolé si je passe pour le boulé du coin mais avec ce code :"preg_replace('/(\d+)\.*$/e', $1+1); " comment je lui dit quel variable il doit traité? :??:

n°1401685
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-07-2006 à 09:22:01  profilanswer
 

euh tu lis la doc [:spamafote]:

Citation :

Description
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] )


n°1401704
mule_panda
Posté le 06-07-2006 à 09:45:15  profilanswer
 

dsl je n'ai pas encore l'habitude d'aller lire la doc  :(

n°1401715
nemohp
Adepte du provisoire permanent
Posté le 06-07-2006 à 09:56:51  profilanswer
 

si tu veux faire de l'informatique ton métier, tu va devoir lire des tonnes de docs et de site etc...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  [RESOLU] concatenation

 

Sujets relatifs
[résolu]modification d'une colonne[résolu]Loadvars Rapide
Warning suite a utilisation d'une référence dans une méthode [RESOLU]résolu Problème de concaténation de variable
[MySQL] Concaténation de champs [Résolu]Problème concaténation variables [RESOLU]
[Résolu] Concaténation spécifique[Python] TypeError sur une concaténation de chaines [Résolu]
concaténation objet+entier [resolu][SGBD résolu] Concaténation de 2 champs numériques dans une requête
Plus de sujets relatifs à : [RESOLU] concatenation


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