J'ai créé un script d'export de fichier vers un FTP qui fonctionne bien, mais j'aimerai qu'il m'affiche le déroulement au fur et à mesure de l'avancement, car pour le moment il m'affiche ce qui suit à la fin de l'éxécution du script :
Voila mon script :2010-05-12T11:27:38+02:00 - Connexion au serveur XXX ...
2010-05-12T11:27:38+02:00 - Serveur XXX connecté
2010-05-12T11:27:38+02:00 - Entre dans le dossier "XXX"
2010-05-12T11:27:40+02:00 - Création du fichier "XXX.csv" ...
2010-05-12T11:27:40+02:00 - Fichier "XXX.csv" créé avec succès
2010-05-12T11:27:40+02:00 - Transfert du fichier "XXX.csv" ...
2010-05-12T11:27:40+02:00 - Fichier "XXX.csv" envoyé avec succès
2010-05-12T11:27:40+02:00 - Déconnexion
Code : Tout sélectionner
<?php
$serveur = 'XXX';
$FTP = ftp_connect($serveur);
if (!$FTP) {
msg('Connexion impossible');
exit();
}
else {
msg('Connexion au serveur '.$serveur.' ...');
}
$login = 'XXX';
$mdp = 'XXX';
$conFTP = ftp_login($FTP, $login, $mdp);
if (!$conFTP) {
msg('Connexion impossible');
exit();
}
else {
msg('Serveur '.$serveur.' connecté');
}
$dir = @ftp_chdir($FTP, 'XXX');
if (!$dir) {
$dir = @ftp_mkdir($FTP, 'XXX');
if (!$dir) {
ftp_quit($FTP);
msg('Création du dossier "XXX" impossible');
exit();
}
else {
msg('Création du dossier "XXX"');
}
$dir = ftp_chdir($FTP, 'XXX');
if (!$dir) {
ftp_quit($FTP);
msg('Impossible d\'accéder au dossier "XXX" ');
exit();
}
}
msg('Entre dans le dossier "XXX"');
$fichier = 'XXX_'.date('d-m-Y').'.csv';
$chemin = './export/'.$fichier;
// Connexion à la base de données
include("XXX.php");
// On redige la requete
$query = 'SELECT * FROM VW_STOCK_METAUX';
// On verifie la validité de la requete
$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
echo htmlentities($e['message']);
exit();
}
// On execute la requete
$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit();
}
msg('Création du fichier "'.$fichier.'" ...');
ob_start(); // Démarage du buffer
echo 'ARTICLE;LIBELLE;FAM;DATE;STOCK;LIEU;EMPLACEMENT
';
while ($row = oci_fetch_row($stid)) {
echo $row[0].';';
echo $row[1].';';
echo $row[2].';';
echo $row[3].';';
echo $row[4].';';
echo $row[5].';';
echo $row[6].'
';
}
$monfichier = @fopen($chemin, 'w+'); // Ouverture du fichier (ou création si inexistant)
if (!monfichier) {
ob_end_clean();
msg('La création du fichier "'.$fichier.'" à échouée');
msg('Déconnexion');
ftp_quit($FTP);
exit();
}
$ok = @fwrite($monfichier, ob_get_contents()); // Ecriture du buffer dans le fichier
if (!ok) {
ob_end_clean();
msg('L\'écriture dans le fichier "'.$fichier.'" à échouée');
msg('Déconnexion');
ftp_quit($FTP);
exit();
}
fclose($monfichier); // Fermeture du fichier
ob_end_clean(); // Vide le buffer
msg('Fichier "'.$fichier.'" créé avec succès');
msg('Transfert du fichier "'.$fichier.'" ...');
$env = ftp_put($FTP, $fichier, $chemin, FTP_BINARY);
if ($env) {
if (filesize($chemin) == ftp_size($FTP, $fichier)) {
msg('Fichier "'.$fichier.'" envoyé avec succès');
}
else {
msg('Le fichier "'.$fichier.'" semble avoir été corrompu lors de l\'envoi au serveur FTP');
}
}
else {
ftp_quit($FTP);
msg('Echec de l\'envoi du fichier "'.$fichier.'"');
exit();;
}
msg('Déconnexion');
ftp_quit($FTP);
function msg ($msg) {
echo date('c').' - '.$msg.'<br>';
}
?>