[]
Ciao a tutti (esperti e meno esperti),
la questione � la seguente: su un ftp (accessibile con secure ftp) vengono depositati dei file ogni giorno verso le 17.00. Visto che son dei semplici xml/pdf mi piacerebbbe creare una funzione che, invocata da una CRONJOB, li "scarichi" automaticamente sul server dove eseguo php.
ho usato questo codice, ma non funziona in quanto non sembra trovare il file sull' ftp.
Eppure accedo e leggo la lista tranquillamente.
perch� poi non li trova ?
[/ ]
Codice PHP:
$destinazione = $_SERVER['DOCUMENT_ROOT'].'/from_ftp_sorgente/';
$ftp_user_name = 'user';
$ftp_user_pass = 'password';
$host = 'host';
$port = 'numero porta';
$timeout= '395'; //valore messo abbastanza a caso...
$root_ftp = 'ftp://'.$ftp_user_name.'@'.$host.':'.$port;
$conn_id = ftp_ssl_connect($host,$port,$timeout);
// login with username and password
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'Server non disponibile per la connessione.';
elseif(isset($login_result)){
$contents = ftp_nlist($conn_id, ".");
function ftp_is_dir($dir) {
global $ftp_connect;
if (@ftp_chdir($ftp_connect, $dir)) {
ftp_chdir($ftp_connect, '..');
return true;
} else {
return false;
}
}
$ftp_nlist = ftp_nlist($conn_id, "/");
echo '<br/><br/>';
//alphabetical sorting
sort($ftp_nlist);
foreach ($ftp_nlist as $v) {
//1. ftp_is_dir() is true => directory
if (ftp_is_dir($v)) {
//output as [ directory ]
echo "[ " . $v . " ]<br />\n";
}
}
foreach ($ftp_nlist as $v) {
$quanti++;
//2. ftp_is_dir() is false => file
if (!ftp_is_dir($v)) {
//output as file
echo "<hr/><br /><br /><br /><strong>" . $v . "</strong><br />\n";
$v_2 = substr($v,1,100);
// definisce alcune variabili
$local_file = $destinazione.$v_2;
$server_file = $root_ftp.$v;
echo 'Cerco File: '.$server_file.' sull FTP <br/>Copio in:'.$local_file.' (su server)<br/>';
if(file_exists($server_file)){
// prova a scaricare $server_file e a salvarlo su $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Scrittura su $local_file terminata con successo<br/><br/>";
} else {
echo "Problemi nello scaricamento di ".$v_2.'<br/>';
}
}else echo '<br><span style="color:red;">ERRORE: il file '.$server_file.' non esiste sull FTP !!<br/></span>';
}
if($quanti > 5) break;
}
// close the ssl connection
ftp_close($conn_id);
}