PHP e FTP

Nicola Caldognetto

Nuovo Utente
29 Gen 2013
7
0
0
Caio a tutti. volevo chiedere se qualcuno sa utilizzar questo codice.
Teoricamente permette il tarsferimento dei file da due server FTP.
Ma come posso utilizzarla sul mio server?

PHP:
$connection = ftp_connect($server);

$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);

if (!$connection || !$login) { die('Connection attempt failed!'); }

$upload = ftp_put($connection, $dest, $source, $mode);

if (!$upload) { echo 'FTP upload failed!'; }

ftp_close($connection);

http://davidwalsh.name/send-files-ftp-php
 
Non sono pratico di PHP! Che vorrebbe dire compilando le variabili? Potresti famri un esempio

PHP:
$server = 'server ftp';
$ftp_user_name = 'username';
$ftp_user_pass = 'password';

$dest = 'file_remoto.txt';
$source = 'file_in_locale.txt';

$connection = ftp_connect($server); 

$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass); 

if (!$connection || !$login) { die('Connection attempt failed!'); } 

$upload = ftp_put($connection, $dest, $source, FTP_ASCII); 

if (!$upload) { echo 'FTP upload failed!'; } 

ftp_close($connection);
 
grazie :)
E se al posto di un file dovessi trasferire un gruppo di file che hanno una caratteristica comune.
[iniziano per C seguito da tre nuemri e finiscono con .pdf
 
grazie :)
E se al posto di un file dovessi trasferire un gruppo di file che hanno una caratteristica comune.
[iniziano per C seguito da tre nuemri e finiscono con .pdf

Se vuoi trasferire gruppi di file, mettili in un array o usa ad esempio scandir() o glob() per selezionare quella cartella

es.
PHP:
$array_files = array(
'source' => array('file_locale1.txt','file_locale2.txt','file_locale3.txt'), 
'dest' => array('file_remoto1.txt','file_remoto2.txt','file_remoto3.txt')
);

foreach($array_files['source'] as $key => $file) ftp_put($connection, $array_files['dest'][$key], $file, FTP_ASCII);
 
Se vuoi trasferire gruppi di file, mettili in un array o usa ad esempio scandir() o glob() per selezionare quella cartella

es.
PHP:
$array_files = array(
'source' => array('file_locale1.txt','file_locale2.txt','file_locale3.txt'), 
'dest' => array('file_remoto1.txt','file_remoto2.txt','file_remoto3.txt')
);

foreach($array_files['source'] as $key => $file) ftp_put($connection, $array_files['dest'][$key], $file, FTP_ASCII);

Purtroppo però la cartella che devo suare io contiene diversi file ed alcuni non mi ineterssa trasferirli.
Mi servirebbe che trasferisse i file che inizino con C e finiscano con .pdf e che questo trasferimento avvenga una volta al giorno o ogni 12ore.
E' fattibile?
E grazie ancora per il gandissimo aiuto che mi stai dando! :)
 
Per lo script che si attiva ogni 12 ore ti serve programmare un evento con crontab dal server, per il resto si che è fattibile

es.
PHP:
$source = glob('dir/{C}*.pdf',GLOB_BRACE);

foreach($source as $file) ftp_put($connection, 'nuova_dir/'.basename($file), $file, FTP_ASCII);

In questo caso i file avranno lo stesso nome sia da locale che sul server dove fai l'upload
 
ciao
per estrarre come detto tutti i file pdf che iniziano per c puoi usare
PHP:
<?php
$che_iniziano_per="c";
$lista = glob("$che_iniziano_per*.pdf");//attenzione non per C, se anche C devi fare un array merge
   foreach ($lista as $l) {
		 echo "$l<br>";//qui ci sarà lo spostamento
   }
?>
poi per farlo funzionare a tempi determinati o manina cioè lanci lo script ogni tot ore o devi usare un cronjob
 
Allora io ho solo l'accesso FTP al server e non so cosa sia un cronjob.
Quindi è fattibile sono tramite FTP o bisogna andare a configurare il server?
 

Discussioni simili