Page 1 sur 1

impossible de renommer des fichiers çà marche pas.

Posté : 12 sept. 2017, 10:51
par michael10fr
Bonjour les amies,

je fait un script pour renommer une centaines de fichiers qui ont un nom de fichier qui commence par photo_ pour le remplacer par rien voici un exemple:
photo_xxxxxxx.jpg en xxxxxxx.jpg

mais le problemes c'est que je ne sais pas comment enlever le nom photo_ de mes fichiers??

voici mon script:

Code : Tout sélectionner

<?php @ini_set("display_errors", "on"); @error_reporting(E_ALL); $dir = "/home/jrencont/www/wall/media/profile/"; $dir2 = "/home/jrencont/www/wall/media/profile/newimg/"; $photo = "photo_"; $photo2 = ''; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { //echo " $file .<br/> " . filetype($dir . $file) . "\n"; rename("$dir.$file", "$dir2.$photo2.$file"); } closedir($dh); } } var_dump($file); echo $file; ?>
ce script copie le fichier renomer dans un repertoire different.

mais le en plus il m'ajoute le mot photo sur mes fichiers??

mais la actuellement , j'ai ce message d'erreur:

Warning: rename(/home/jrencont/www/wall/media/profile/.photo_0soam88rsaprry3adsyojhg2u1j.jpeg,/home/jrencont/www/wall/media/profile/newimg/..photo_0soam88rsaprry3adsyojhg2u1j.jpeg): No such file or directory in /home/jrencont/www/script/ren2.php on line 19

merci de votre aide

Re: impossible de renommer des fichiers çà marche pas.

Posté : 12 sept. 2017, 11:09
par michael10fr
jessaye d'enlever les point . .. mais çà marche pas

Code : Tout sélectionner

<?php @ini_set("display_errors", "on"); @error_reporting(E_ALL); $dir = "/home/jrencont/www/wall/media/profile/"; $dir2 = "/home/jrencont/www/wall/media/profile/newimg/"; $photo = "photo_"; $photo2 = ''; $file2 = "$file\n"; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") { //echo " $file .<br/> " . filetype($dir . $file) . "\n"; rename("$dir.$file2", "$dir2.$photo2.$file2"); } } closedir($dh); } } //var_dump($file); // echo $file; ?>

Re: impossible de renommer des fichiers çà marche pas.

Posté : 13 sept. 2017, 09:47
par @rthur
Bonjour,

Mon conseil pour parcourir un répertoire où il y a des fichiers c'est de ne pas utiliser opendir/readdir/closedir mais plutôt la fonction glob() qui permet une fois mise dans un foreach de parcourir l'ensemble des fichiers en 1 seule ligne de code facilement lisible.
foreach(glob("/home/jrencont/www/wall/media/profile/*.jpg") as $fichier) {
    // Là tu fais ton traitement
    echo $fichier."<br />";
}
Ensuite si tu veux juste supprimer "photo_" du nom des fichiers tu peux simplement faire un rename() avec un str_replace() pour remplacer "photo_" par du vide "", si tu veux le mettre dans un nouveau sous-répertoire, tu remplaces "photo_" par ton sous-répertoire suivi d'un slash : "newimg/"

:arrow: A toi de jouer et de faire des tests pour que ça fonctionne comme tu veux ! :-)

Re: impossible de renommer des fichiers çà marche pas.

Posté : 15 sept. 2017, 09:51
par michael10fr
bonjour @arthur,

dsl du retard mais j'ai essayer de le faire avec ce code mais çà ne marche toujours pas ?
peux etre que tu peut me dire pourquoi?
je suis pas dev mais j'essaye de l'être, j'ai beaucoup de mal à lire le code et a le comprendre.
je rêve de le devenir dsl si pour toi çà parait vraiment super facile mais pour un mec comme moi
qui n'a pas l'esprit dev , c'est hyper dur d'imaginer ce qu'il ce passe dans les variables... :oops:

Code : Tout sélectionner

<?php ini_set("display_errors", "on"); @error_reporting(E_ALL); $directory = '/home/jrencont/www/wall/media/profile/'; foreach (glob($directory."*.jpg") as $filename) { $file = realpath($filename); rename($file, str_replace("photo_","",$file)); } ?>

Re: impossible de renommer des fichiers çà marche pas.

Posté : 15 sept. 2017, 10:00
par michael10fr
merde çà a marcher

ce code !! mais le probleme il ma enlever tout les extensions .jpg !!!

comment les remettres!!

Code : Tout sélectionner

<?php ini_set("display_errors", "on"); @error_reporting(E_ALL); foreach (glob("/home/jrencont/www/wall/media/profile/*.jpg") as $filename) { $file = realpath($filename); rename($file, str_replace("photo_","",$file)); } ?>

Re: impossible de renommer des fichiers çà marche pas.

Posté : 15 sept. 2017, 10:23
par michael10fr
Bon je vais me repondre puisse que j'ai réussi à renommer tout les fichiers en .jpg ouaaou je suis content de moi , car je suis que débutant en php

Code : Tout sélectionner

<?php ini_set("display_errors", "on"); @error_reporting(E_ALL); $sufixe = '.jpg'; foreach (glob("/home/jrencont/www/wall/media/profile/*") as $filename) { $file = realpath($filename); rename($file, str_replace($file,$file.$sufixe,$file)); //echo $filename."<br />"; } ?>

Re: impossible de renommer des fichiers çà marche pas.

Posté : 15 sept. 2017, 14:11
par @rthur
Je pense que ta ligne avec le realpath() ne sert à rien, mais bravo en tout cas, l'essentiel c'est que ça fonctionne désormais !

Re: impossible de renommer des fichiers çà marche pas.

Posté : 16 sept. 2017, 20:32
par michael10fr
Merci beaucoup @rtur pour ton aide ou tu ma guider dans le bon sens .. :D bravo encore