daniel53 Posted March 27, 2014 Share Posted March 27, 2014 Bonjour,Je suis en PS 1.5.6.2J'ai codé en php un logiciel de duplication de mon dossier Prestashop.çà marche => duplication en 2 minutes directement sur le serveurSeul interrogatio : les CHMODSSur l'original les dossiers sont en 770, les fichiers en 770 idemSur ma copie les dossiers sont en 755, les fichiers en 644Je ne sais pas comment attribuer les CHMOD lors de la copie ! Voici ma fonction si quelqu'un peut me compléter le code pour mettre 755 partout, ce serait top Merci d'avance function recurse_copy($src,$dst) { $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) ) { recurse_copy($src . '/' . $file,$dst . '/' . $file); } else { copy($src . '/' . $file,$dst . '/' . $file); } } } closedir($dir); } Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 erreur ! ! il faut ajouter les CHMOD en 770, j'ai tapé trop vite ! Link to comment Share on other sites More sharing options...
coeos.pro Posted March 27, 2014 Share Posted March 27, 2014 (edited) juste après la ligne copy tu rajoutes la fonction chmod sur ce fichier : http://php.net/manual/fr/function.chmod.php EDIT : petit piège, si tu veux du 770 il faut mettre 0770 Edited March 27, 2014 by coeos.pro (see edit history) Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 Comme çà ??? j'ai pas testé function recurse_copy($src,$dst) { $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) ) { recurse_copy($src . '/' . $file,$dst . '/' . $file); chmod($file,$dst . '/' . $file, 770); } else { copy($src . '/' . $file,$dst . '/' . $file); chmod($file,$dst . '/' . $file, 770); } } } closedir($dir); } Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 C'est bon çà ?? function recurse_copy($src,$dst) { $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) ) { recurse_copy($src . '/' . $file,$dst . '/' . $file); chmod($file,$dst . '/' . $file, 0770); } else { copy($src . '/' . $file,$dst . '/' . $file); chmod($file,$dst . '/' . $file, 0770); } } } closedir($dir); } Link to comment Share on other sites More sharing options...
coeos.pro Posted March 27, 2014 Share Posted March 27, 2014 oui, par contre j'ai édité mon message précédent quelques seconde avant ton message, il faut mettre 0770 et ne pas mettre "$file ," donc met chmod($dst . '/' . $file, 0770); Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 Aurais-tu la gentillesse de me donner la fonction modifiée ?Je ne suis pas un grand développeur ! ! Link to comment Share on other sites More sharing options...
coeos.pro Posted March 27, 2014 Share Posted March 27, 2014 (edited) 1- as tu testé ton premier code ? 2- c'est toi qui l'a fait ? http://php.net/manual/en/function.copy.php#91010 Edited March 27, 2014 by coeos.pro (see edit history) Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 C'est sympa merci !C'est quoi les css ???? je comprends pas Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 ok, je fais le test et je reviens donner le résultat dans 10 minutes Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 Merci encore du coup de main, çà marche au poil !Note : je sauvegarde mon Prestashop de 70Mo en moins de deux minutes !Mon logiciel vérifie la taille de l'original et la taille de la copie => identiques. Pour ceux qui liront ce post, je place mon logiciel dans un dossier à la racine du serveur et je stocke les backup à la racine au même niveau que le dossier prestashop.En cas de clash, il suffit de renommer pour repartir sur la dernière sauvegarde. Pour info je suis sur un mutualisé basique chez PHPNET, Quand j’ouvrirai au public, je louerai un serveur dédié. Bonne continuation à toutes et tous Link to comment Share on other sites More sharing options...
coeos.pro Posted March 27, 2014 Share Posted March 27, 2014 Dans la mesure ou ce bout de code peut être retrouvé sur internet et depuis des années, ne met pas "J'ai créé un logiciel de duplication" ou "mon logiciel" : http://php.net/manual/en/function.copy.php#91010Merci de modifier le titre en "dupliquer prestashop sur le même serveur" par exemple Link to comment Share on other sites More sharing options...
daniel53 Posted March 27, 2014 Author Share Posted March 27, 2014 Tu as raison à 99% ! J'ai piqué la fonction sur le net c'est vrai, j'ai fait le reste (interface, choix des path, comparaison des fichiers...) Je ne sais pas modifier le titre du post, sorry. Restons modeste ! Link to comment Share on other sites More sharing options...
coeos.pro Posted March 27, 2014 Share Posted March 27, 2014 il faut éditer ton premier message avec l'éditeur complet Link to comment Share on other sites More sharing options...
tetranet2 Posted March 29, 2014 Share Posted March 29, 2014 Bonsoir, ça à l'air super ton systeme pour dupliquer. Par contre je ne comprends pas trop comment on s'en sert. C'est un script PHP ? TEtra Link to comment Share on other sites More sharing options...
coeos.pro Posted March 29, 2014 Share Posted March 29, 2014 oui c'est un simple script qu'il a pompé sur internet, tu n'aura aucun problème à le retrouver en cherchant un peu, exemple : http://php.net/manual/en/function.copy.php#91010 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now