Bonjour,

J'ai créé un script PHP permettant de placer dans un serveur FTP extérieur un fichier CSV.
J'ai besoin de le mettre à jour 1 fois par jour.
Je ne dispose pas d'accès au serveur pour faire du cronjob.

J'ai donc fais un 2 ième script PHP permettant d'exécuter le script toute les 24H.
Cela marche, sauf qu'à la place de mettre à jour le fichier, il ajoute à la suite du contenu existant.

A savoir que quand j'exécute le script directement sur le navigateur plusieurs fois d'affilé, le fichier est bien mis à jour.

Donc c'est quoi le problème ?

Ci-dessous le script d'execution automatique en page d'accueil:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$lastRunLog = 'lastrun.log';
if (file_exists($lastRunLog)) {
    $lastRun = file_get_contents($lastRunLog);
    if (time() - $lastRun >= 86400) {
//        Superieur a un jour on execute les scripts
        $cron = file_get_contents('http://www.xxx.com/update-csv.php'); // Mets à jour le fichier
//        mise a jour de la date lastrun.log
        file_put_contents($lastRunLog, time());
    }
}
Le code ci-dessous place le fichier dans le FTP distant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$server = "ftp.site.com";
$ftp_user_name = "toto";
$ftp_user_pass = "toto";
$dest = "/dossier/stock.csv";
$source = "http://www.site.com/genere-csv.php";
 
 
$connection = ftp_connect($server);
 
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);
 
if (!$connection || !$login) {
    echo('<!-- Connection attempt failed! -->');
}
 
$delete = ftp_delete($connection, $dest);
$upload = ftp_put($connection, $dest, $source, FTP_BINARY);
 
$chmodFile = ftp_chmod($connection, 0777, $dest);
 
if (!$upload) {
    echo '<!-- FTP upload failed! -->';
}
 
ftp_close($connection);
Merci d'apporter votre lumière!