renommer un fichier

laure
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 17:15

bonjour
je sais pas si ca sera possible ou pas, mais bon, je perd rien si je vous le demande
j'ai un dossier sur mon ftp qui contient 1000 photos nommés de 1.jpg jusqu'a 1000.jpg
Mon problème, c'est que le nom des fichiers doit commencer par "med_" ...
C'est a dire, au lieu d'avoir :
1.jpg , il me faut med_1.jpg
2.jpg , il me faut med_2.jpg
....

Donc, je me demande s'il y'a une fonction sous php qui va me permettre de renommer tous mes fichiers automatiquement sans le faire à la main pour 1000 photos

Merci de votre réponse

ViPHP
ViPHP | 928 Messages

15 janv. 2008, 17:21

Bonjour,
oui c'est très simple : tu parcours un dossier avec les fonctions opendir() + readdir() + closedir(), et tu renommes avec rename()

Par exemple :
<?php

$dir = 'tondossier/';
$fd = opendir($dir);
while ($file = readdir($fd))
{
   if ($file != '.' && $file != '..' && preg_match('#\.jpg$#i', $file))
   {
      rename($dir . $file, $dir . 'med_' . $file);
   }
}
closedir($fd);

?>

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 18:08

bonjour
merci pour votre réponse
je vais tester ca ce soir, et je te répond après

:)

Mammouth du PHP | 505 Messages

15 janv. 2008, 18:26

Ou peut etre plus simplement
chdir("PathVersTonDossier");
foreach(glob ("*.jpg") as $file) {
    rename($file, 'med_' . $file);
}

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 18:55

oui c'est plus simple ;)
encore une question
sur ce dossier la, j'ai des photos dont la largeur depasse les 700px
je cherche une fonction pour créer un miniature des photos qui depasse les 700px et remplacer les anciennes ;)
encore plus pratique que de le faire à la main sous photoshop :d
merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2008, 11:53

Tu sais que tu peux faire des macros sous photoshop pour ce genre de traitement ;) Y a même déjà une option galerie photo qui te génère des vignettes et retaille tes images.. bon ça génère des pages html statique, mais tu peux te contenter de récupérer les photos :)

Sinon en php, tu peux utiliser getImageSize() pour connaitre les dimensions d'une image et imagecopyresized() pour la modifier :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...