2010-06-24 11 views
0

On m'a dit que c'est possible avec PHP. J'ai mon site Web et il y a une boîte de sélection. Je voudrais que les options soient remplies à partir du contenu d'un dossier sur un serveur sftp. Ensuite, cliquez sur Je voudrais obtenir les fichiers associés et les déplacer vers ma machine locale. Y a-t-il de bons tutoriels sur la façon de faire cela? J'ai du mal à en trouver un.Utiliser PHP pour appeler un script pour manipuler des fichiers ou ssh?

Merci

Répondre

1

C'est ainsi que:

SFTP from within PHP

CURL de PHP pour interroger le serveur SFTP de supprimer, pour les récupérer inscripteur et fichier. Le manuel pour php est here. Vous n'avez pas besoin de scripts SSH (ce qui d'ailleurs est généralement interdit sur la plupart des environnements d'hébergement partagés), si votre serveur sFTP est disponible publiquement. Curl fera tout pour vous.

+0

sftp n'est pas supporté. curl sftp: // utilisateur @ hôte: 22 curl: (1) Protocole non pris en charge: sftp – msandbot

+0

J'essaie d'obtenir le gars IT pour mettre à jour curl, ssh2 semble également utile. J'aurais aimé avoir un accès root. J'ai essayé exec ('ssh bla bla') et ça n'a pas marché. aussi essayé exec ('perl sample.pl') où sample.pl a juste 'ssh blah blah blah' Je ne pense pas qu'il a même couru. – msandbot

+0

toutes les fonctions comme exec(), system(), etc. sont toujours restreintes, et c'est vraiment une tâche difficile de les faire activer par les services informatiques, car elles ouvrent la voie à des vulnérabilités potentiellement mortelles. Si vous pouvez obtenir votre boucle à travailler ce sera la meilleure solution! – Palantir

0

dans la zone de sélection, vous pouvez lister les fichiers avec:

if (is_dir($dir)) { 
     if ($fh = opendir($dir)) { 
      while (($file = readdir($fh)) !== false) { 
       if($file != "." && $file != "..") 
        $files[] = $file;    
      } 
      closedir($fh); 
     } 
    } 

pour transférer les fichiers de l'un à l'autre hôte que vous pouvez utiliser php exec et scp:

exec('scp host1:/path/to/oldfile host2:/path/to/newfile'); 
+0

il essaie d'obtenir la liste d'un serveur distant, alors que ces fonctions ne fonctionnent que sur le serveur local – Palantir

+0

oh, vous avez raison le premier ne fonctionne que local. il pourrait mais ce code php sur le serveur sftp si;) le deuxième code devrait être applicable – Oliver