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:
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 $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()); } }
Merci d'apporter votre lumière!
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);![]()
Partager