Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2011, 14h55   #1
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 2
Points : 2
Par défaut FTP PHP versioning synchronizer

Bonjour à tous,

J'ai développé un petit système de synchronisation entre répertoire local de travail et ftp distant.
Il permet de faire un get : récupération des fichier du serveur et un submit : envoi des fichiers modifiés sur le serveur.
On peut aussi filtrer avec des expressions régulière les fichiers qui doivent échapper à la synchronisation.

Pouvez-vous me dire ce que vous en pensez ?
http://my.opera.com/metrallik/blog/2...sioning-system

Cordialement, bullx
bullx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 16h29   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
c'est vraiment fouillis, de plus si on a pas l'extension ftp on la dans l'os (alors que le wrapper ftp est toujours la)
t'utilises pas les les iterators pour parcourir tes dossiers,

c'est quoi ca : $tmpArr1=explode("\n",file_get_contents($tmpFile)); a part file mais en moins bien ?
surtout que c'est vraiment pas la meilleurs solution pour savoir si le fichier est identique un hash aurai plus judicieux et beaucoup plus rapide

et y'a des commentaires en français et en anglais
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 17h11   #3
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 2
Points : 2
Le ton est un peu rude mais merci quand même pour ces précieux conseils.

J'ai honte de mon explode ...

Je connaissais pas les itérateurs (encore la honte ?)

Pour le wrapper, c'est peut-être bête mais j'avais l'impression que c'était susceptible de générer du trafic inutile (identification à chaque manipulation).

Pour les commentaires, c'est quoi le mieux ?

Je vais utiliser un hash pour les comparaison.
bullx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 18h18   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
oui en effet en relisant ça fait pas très sympa, rajoute des ( ) un peu partout

sinon pour les commentaire c'est mieux de tout mettre en anglais, pour la syntaxe n’hésite pas a passer les lignes c'est plus clair

Code :
if(!is_dir(dirname("$cHistDir/$f"))) mkdir(dirname("$cHistDir/$f"),0777,true);
Code :
1
2
3
4
5
6
$dir = dirname("$cHistDir/$f");
 
if(!is_dir($dir))
{
    mkdir($dir, 0777, true);
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 12h14   #5
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 2
Points : 2
Bon alors je ne suis pas trop satisfait.

J'ai tout changé en utilisant les itérateurs et le wrapper ftp (ce qui m'a pris plusieurs heures) mais ça ne marche pas (encore).

J'ai un problème, le serveur passe en mode ASCII ... Donc j'ai essayé avec type=i; à la fin mais ça plante.

Si je peux pas utiliser de wrapper alors je ne peux pas non plus utiliser d'itérateur et tout ce que j'ai fait est inutile.

Par ailleurs, quand bien même j'arrive à ajouter type=X au bout des adresses, il faudra que je transforme chacune d'entre elle ou que j'ajoute (encore) une variable de configuration pour définir un type ...
bullx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 12h29   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
montre ce que t'as fait
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h04   #7
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 2
Points : 2
J'ai mis à jour sur http://my.opera.com/metrallik/blog/2...sioning-system ; la dernière version y est disponible.
bullx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h20   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
aère ton code
c'est pas très lisible ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if($argv[1]=='diff'){
  if(empty($argv[2])) exit("Sorry, diff on whole project not supported yet\n");
  if(!is_file($argv[2])) exit("Error : file does not exist locally\n");
  if(!is_file("$cRemDir/$argv[2]")) exit("Error : remote file does not exist\n");
  $tmpFile="$cHistDir/${argv[2]}.ftp.".time();
  if(!is_dir(dirname($tmpFile))) mkdir(dirname($tmpFile),0777,true);
  copy("$cRemDir/$argv[2]",$tmpFile);
  if(md5_file($tmpFile)==md5_file($argv[2])) echo "Files are identical (same hash)\n";
  # À faire : Eventuellement mettre à jour le repository (si les fichiers y sont et sont identiques)
  else{
    echo "On server and not in wa : \n";
    print_r(array_diff(file($tmpFile,FILE_IGNORE_NEW_LINES),file($argv[2],FILE_IGNORE_NEW_LINES)));
    echo "In wa and not on server : \n";
    print_r(array_diff(file($argv[2],FILE_IGNORE_NEW_LINES),file($tmpFile,FILE_IGNORE_NEW_LINES)));
  }
}
contrairement a :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
if($argv[1] == 'diff')
{
    if(empty($argv[2]))
    {
        exit "Sorry, diff on whole project not supported yet\n";
    }
 
    if(!is_file($argv[2]))
    {
        exit "Error : file does not exist locally\n";
    }
 
    if(!is_file("$cRemDir/$argv[2]"))
    {
        exit "Error : remote file does not exist\n";
    }
 
    $tmpFile = "$cHistDir/${argv[2]}.ftp.".time();
 
    if(!is_dir(dirname($tmpFile)))
    {
        mkdir(dirname($tmpFile), 0777, true);
    }
 
    copy("$cRemDir/$argv[2]", $tmpFile);
 
    if(md5_file($tmpFile) == md5_file($argv[2]))
    {
        echo "Files are identical (same hash)\n";
    }
}
else
{
    echo "On server and not in wa : \n";
    print_r(array_diff(file($tmpFile,FILE_IGNORE_NEW_LINES), file($argv[2],FILE_IGNORE_NEW_LINES)));
 
    echo "In wa and not on server : \n";
    print_r(array_diff(file($argv[2],FILE_IGNORE_NEW_LINES), file($tmpFile,FILE_IGNORE_NEW_LINES)));
}
c'est inutile d’économiser des lignes de code
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h49   #9
Invité de passage
 
Inscription : avril 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 12
Points : 2
Points : 2
Moi, ça me va. Et puis, cela ne m'aide pas pour mon problème d'ASCII avec le wrapper ftp...

J'ai cherché vite fait des histoires de contexte de wrapper mais sans succès.
bullx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 16h54   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par bullx Voir le message
Moi, ça me va. Et puis, cela ne m'aide pas pour mon problème d'ASCII avec le wrapper ftp...

J'ai cherché vite fait des histoires de contexte de wrapper mais sans succès.
il faut rajouter le type pour le wrapper ftp
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h22.


 
 
 
 
Partenaires

Hébergement Web