Manipulation de fichier via ftp

Eléphant du PHP | 168 Messages

05 janv. 2010, 16:11

Bonjour messieurs, voilà je souhaite créer un code qui va manipuler des fichiers sur mon ftp.
Donc je me connecte mais là je ne vois pas comment je peux faire pour manipuler mes fichiers sans télécharger le-dit fichier sur mon ordinateur.
Pour l'instant j'ai un code qui ressemble à ça

Code : Tout sélectionner

if(ftp_put($conn_id, "ludwig.zip", "ludwig.ZIP", FTP_BINARY)) echo 'youpi'; else echo 'zut'; $monZip = "Ludwig.zip"; $zip = new ZipArchive; if ($zip->open($monZip) === TRUE) { $zip->extractTo('xml/'); $zip->close(); } else { echo 'échec, impossible de lire votre archive'; }
Après ça j'ai un traitement qui fonctionne mais... je dois télécharger l'archive sur mon ordinateur.
Comment faire pour envoyer le contenu de mon archive dans un dossier de mon ftp sans passer par mon ordinateur, si cela est faisable evidemment.
Merci d'avance.

ViPHP
ViPHP | 5462 Messages

05 janv. 2010, 16:18

tu peux pas, le fichier que tu manipules est dans le cache du serveur sur lequel tu lances le script (ca serai possible si c'etait en local mais ducoup pas besion d'utilisé FTP)

pour faire ca tu vas etre obligé soit :
- de recreer ton dossier et mettre les fichiers via FTP
- de faire ca en SSH

Eléphant du PHP | 168 Messages

05 janv. 2010, 16:29

Ca tombe bien je suis en train de m'y mettre à SSH, tu veux pas me filer un coup de main Stealth stp?

ViPHP
ViPHP | 5462 Messages

05 janv. 2010, 16:33

SSH fera comme si tu etait sous commande direct sur l'ordi distant avec les fonctions qui vont avec, faut biensur que t'es SSH d'activer sur ton serveur, pour te connecter c'est simple comme en ftp

Code : Tout sélectionner

ssh login:pass@serveur

Eléphant du PHP | 168 Messages

05 janv. 2010, 16:43

D'accord donc je crée le code ci dessous et je l'appelle via SSH et mon zip se déplace dans un nouveau répertoire sur mon ftp, c'est ça?

Code : Tout sélectionner

if(ftp_get($conn_id, "ludwig.zip", "ludwig.ZIP", FTP_BINARY)) echo 'youpi'; else echo 'zut'; $monZip = "Ludwig.zip"; $zip = new ZipArchive; if ($zip->open($monZip) === TRUE) { $zip->extractTo('xml/'); $zip->close(); } else { echo 'échec, impossible de lire votre archive'; ftp_put($conn_id, chemindemonzip,cheminversmonserveur, FTP_BINARY) }

ViPHP
ViPHP | 5462 Messages

05 janv. 2010, 17:05

c'est soit FTP soit SSH (via SFTP)
http://php.net/manual/fr/book.ssh2.php

Eléphant du PHP | 168 Messages

05 janv. 2010, 17:39

D'accord, mais si je me connecte en SSH je peux utiliser des fonctions comme $zip->open($monZip) ou avoir accés à une base de données et utiliser des mysql_query et compagnie?

ViPHP
ViPHP | 5462 Messages

05 janv. 2010, 17:42

non, je t'ai dis c'est comme di tu etais sous commande sur le serveur distant