Services : Actualité Emploi Blog Forum Flux
Formation Trafic : Référencement Liens sponsorisés Affiliation Ecommerce Nom de domaine E-réputation Marketing Mobile Black Hat
Formation Technique : Performance Web Html Css Sql Curl Asp Dotnet Php Ajax Wordpress Twitter Google Analytics

Forum Oseox
Oseox

Renommer un répertoire en PHP : fonction rename

Forum Référencement et Trafic
Nous sommes le Ven 24 Nov 2017 21:19

Heures au format UTC [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet
Auteur Message
MessagePosté: Dim 8 Nov 2009 11:34 
Bonjour,

J'ai lu (merci Google) le très bon article de Nicolas Galle concernant le 'Traitement des fichiers et répertoire'.
En rapport direct avec mon problème, mais .... je n'y trouve pas la solution.
Serais-je donc le premier à qui il se pose ?

Donc je vous le propose:

Je souhaite "simplement" renommer un répertoire sur le serveur.
J'utilise la fonction rename(), que je peux faire fonctionner, mais qui ne fait pas "son travail" dès que le segment du dossier à renommer n'est pas le dernier.

Ainsi:

Code:
<?
$DIREC_ORG=$DOCUMENT_ROOT."/console_photos/images";
$DIREC_RENAM=$DOCUMENT_ROOT."/console_photos/imagesZZZ";

$res=rename ($DIREC_ORG,$DIREC_RENAM);
?>


fonctionne sans problème et le dossier "images" est bien renommé.

Mais ce n'est pas ce que je veux:

Code:
<?
$DIREC_ORG=$DOCUMENT_ROOT."/galeries/classes-mer-2009/7/150";
$DIREC_RENAM=$DOCUMENT_ROOT."/galeries/classes-mer-2009/7ZZZ/150";

$res=rename ($DIREC_ORG,$DIREC_RENAM);
?>


Le dossier /7/ n'est pas renommé: Warning "No such file or directory in /var/www/....."

Y a a-t-il une solution qui m'échappe ?

La seule idée qui me vient pour le cas où aucune solution simple n'est possible, consisterait à recréer la succession des 2 dossiers /7ZZZ/150, puis d'y déplacer tout le contenu du dossier d'origine, ce qui devrait faire lourd, car il contient de nombreux fichiers assez lourds.

Si quelqu'un a une toute petite idée, elle serait la bienvenue.

Merci d'avance de l'aide.
Mike


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Dim 8 Nov 2009 11:50 
Avatar de l’utilisateur
si tu regardes sur http://php.net/manual/en/function.rename.php

quelqu'un a fait comme çà, c'est moche mais çà doit passer
Code:
<?php
$cmd = 'mv "/home/user/me/dir1" "/mnt/shares/nfsmount/dir2"';
exec($cmd, $output, $return_val);

if ($return_val == 0) {
   echo "success";
} else {
   echo "failed";
}
?>


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Dim 8 Nov 2009 17:47 
Merci Mumuri pour une réponse si rapide !!

J'avais vu ce bout de code sur php.net, mais je ne m'étais pas aperçu qu'il traitait de mon problème.

C'est un type de code que j'ai encore jamais eu l'occasion de tenter et... je suis un peu méfiant ;) , mais je vais tenter..

EN attendant, j'ai encore fait quelques essais dont je livre ci-dessous les résultats, pour l'info de qui serait intéressé.
Les comportements sont parfois étranges, non ? (enfin, à mes yeux :roll: )
1.
Code:
<?
$DIREC_ORG=$DOCUMENT_ROOT."/galeries/classes-mer-2009/2/800";
$DIREC_RENAM=$DOCUMENT_ROOT."/galeries/classes-mer-2009/2/800xx";
$res=rename ($DIREC_ORG,$DIREC_RENAM);
?>

Le bout de code ci-dessus renomme très correctement le répertoire 800 en 800xx, bien que ce dernier soit plein de fichiers.

2.
Code:
<?
$DIREC_ORG=$DOCUMENT_ROOT."/galeries/classes-mer-2009/7/150/";
$DIREC_RENAM=$DOCUMENT_ROOT."/galeries/classes-mer-2009/temp/150/";
$res=rename ($DIREC_ORG,$DIREC_RENAM);
?>

Le bout de code ci-dessus ne fonctionne pas (c'est l'exemple qui m'avait servi pour exposer mon problème, MAIS:
Code:
<?
$DIREC_ORG=$DOCUMENT_ROOT."/galeries/classes-mer-2009/2/150/IMG_0724.JPG";
$DIREC_RENAM=$DOCUMENT_ROOT."/galeries/classes-mer-2009/temp/150/IMG_0724.JPG";
$res=rename ($DIREC_ORG,$DIREC_RENAM);
?>

par contre, s'il s'agit d'un fichier, le système accepte de renommer (déplacer ?) le fichier en créant le répertoire /150, pour autant que ...../temp/ préexiste.

3.Plus intéressant :
si ....../temp/préexiste, le bout de code du point 2 fonctionne !! tout le contenu du directory d'origine se retrouve dans celui de destination; mais je crains qu'il ne s'agisse d'un transfert (et que ce ne soit lourd sur le serveur), puisqu'il n'y a pas vraiment de "renommage" du répertoire.
Mais n'est-ce pas ce que fait aussi, d'une autre façon, le code que tu m'as envoyé ?

4. Je m'interroge: lorsque j'utilise mon logiciel client FTP (Dreamweaver ou WS_FTP) il m'est parfaitement possible de renommer n'importe quel répertoire, qu'il contienne des fichiers ou d'autre sous-répertoires, ou non.
Comment font-ils ? et pourquoi ne peut-on le faire à l'aide d'un commande ?

Voilà quelques points de réflexion.

Merci encore de ton aide
Mike


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 

Heures au format UTC [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Abonnez-vous au flux RSS

Blog

Forum

Offres d'emploi

Copyright : Moteur, traduction et optimisation
Merci de votre visite sur le forum Oseox