concatenation [RESOLU] - PHP - Programmation
Marsh Posté le 04-07-2006 à 16:42:15
tu exploses ta chaine au point, tu rajoutes ton numero et tu recolles.
sinon avec une expression reguliere
Marsh Posté le 04-07-2006 à 16:42:22
for($i=0;$i<jusqu_ou_tu_veux_aller;++$i)
echo 'P'.$i.'.jpg';
?
[Edit: Oublié que c'etait du php]
Marsh Posté le 04-07-2006 à 17:11:14
avec ceci : strrchr(P1.jpg,'.'); on garde ce qu'il y a aprés le point comprix. Existe t il linverse?
Marsh Posté le 04-07-2006 à 17:29:21
autre solution (mais moins bien)
Code :
|
Marsh Posté le 04-07-2006 à 17:31:17
nemohp a écrit : autre solution (mais moins bien)
|
Ouah Je pensais pas qu'on pouvait trouver aussi lourd
Marsh Posté le 04-07-2006 à 17:32:01
ou alor j'ai 1P.jpg, je souhaite enlevé le 5 derniére Lettre ?
Marsh Posté le 04-07-2006 à 17:32:32
=> Lire la doc
Marsh Posté le 04-07-2006 à 17:36:28
esox_ch a écrit : Ouah Je pensais pas qu'on pouvait trouver aussi lourd |
lol c'est sur mais il cherchait un truc du genre
il découvre les manipulations de chaines avec PHP, faut lui laisser le temps
Marsh Posté le 04-07-2006 à 17:36:48
elle te plait pas ma solution ???
Tiens encore plus bourrin comme ça, ça marche tout le temps:
Code :
|
Marsh Posté le 04-07-2006 à 17:38:17
Oula Les fanatique de perl debarquent
Marsh Posté le 04-07-2006 à 17:42:41
Nan nan preg c'est pour "perl regular ..." donc c'est plutot esox_ch qu'a raison ... mais prout quand même
Mais honnêtement, autant les expressions régulières sont plus que souvent mal utilisées, autant là ça correspond parfaitement à son besoin.
Marsh Posté le 04-07-2006 à 18:42:10
Et ma boucle hein? Elle est bien ma boucle!
*Ok je sors ...*
P.S: Repet pour l'ereg Faudra que j'apprenne cet été .. parceque la mon niveau est celui des tuto php (lim -> 0)
Marsh Posté le 04-07-2006 à 18:46:36
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.
Marsh Posté le 04-07-2006 à 18:51:55
Nous on propose des solutions avec ce qui nous est donné Monsieur
Marsh Posté le 05-07-2006 à 09:36:19
Hermes le Messager a écrit : Ouai enfin, ya quand même quelques questions à se poser. |
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.
Marsh Posté le 05-07-2006 à 09:40:11
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. |
printf dans la doc.
Code :
|
Marsh Posté le 05-07-2006 à 11:44:19
anapajari a écrit : elle te plait pas ma solution ???
|
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)
Marsh Posté le 05-07-2006 à 11:50:49
ça l'air tordu ton histoire... explique nous à quoi ça sert
Marsh Posté le 05-07-2006 à 11:55:39
Mouais ... La solution d'anapajari est quand même mieux (et plus class ) que la mienne ... M'enfin bon c toi
Marsh Posté le 05-07-2006 à 11:59:58
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
Marsh Posté le 05-07-2006 à 12:00:28
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 ?
Ma solution est de loin la plus optimisée.
Marsh Posté le 05-07-2006 à 12:02:36
Hermes le Messager a écrit : Eh bien, tu mets 000001, il n'y aura pas plus de 999999 photos nan ? |
En faite tu vien de me donner la solution pour un autre probléme avec ceci printf("%04d", $ta_variable); merci
Marsh Posté le 05-07-2006 à 15:46:12
bon j'ai trouvé une solution
Code :
|
je sai c'est "sale", mais sa marche
Merci a tous pour votre aide, trés bon forum
Marsh Posté le 05-07-2006 à 15:49:27
ReplyMarsh Posté le 05-07-2006 à 15:53:09
Anapajari, laisse le Probablement pour ce qu'il fait c'est plus adapté
Marsh Posté le 05-07-2006 à 16:05:17
anapajari a écrit : moi je continue a dire qu'avec une regex et preg c'était plus simple |
Je te demande juste de m'expliquer comment cela marche ou plutot fonctionne?
Marsh Posté le 05-07-2006 à 16:50:19
Lire la doc
Marsh Posté le 05-07-2006 à 17:00:50
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
|
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.
Marsh Posté le 05-07-2006 à 17:02:56
Maintenant reste plus qu'a voir s'il a compris
(Question a 2 balles, pourquoi utiliser \d au lieu de [0-9] ? A part le fait que c'est plus rapide à ecrire )
Marsh Posté le 05-07-2006 à 17:06:59
esox_ch a écrit : Maintenant reste plus qu'a voir s'il a compris |
s'plus rapide à ecrire
Marsh Posté le 05-07-2006 à 17:15:59
A part ça, t'as vu sur le site de 99 bottles le truc en perl? T'y captes qqch toi ?
Marsh Posté le 05-07-2006 à 21:59:44
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é?
Marsh Posté le 06-07-2006 à 09:56:51
si tu veux faire de l'informatique ton métier, tu va devoir lire des tonnes de docs et de site etc...
Marsh Posté le 04-07-2006 à 16:40:08
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