Compilation des fichiers automatisé

Fermé
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018 - Modifié le 19 mars 2018 à 15:00
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018 - 26 mars 2018 à 13:09
bonjour tout le monde
:)
je suis débutante en php et j'ai une tache à faire
il faut faire un script php qui renvois des fichiers csv dans un seul dosier
"- le script sera automatisé le 1er jour de chaque mois. il faut donc qu'à l'exécution du script, le mois à sélectionner doit être le mois précédent. Attention à calculer aussi l'année correctement (ex: si généré le 1er janvier 2019, le mois précédent est décembre 2018)
-envoyer le fichier généré par email à une liste de diffusion à définir"
en fait j'ai fait un script pour faire cette tache manuellement

$year = '2018';
$month = '02';

$concatFilename = $year . '-' . $month . '_Import.csv';
$concatFile = fopen('./' . $concatFilename, 'w');

$nFichier = 0;
foreach (scandir($repertoire) as $filename) 
{
 if (substr($filename, 0, 7) == ($year . '-' . $month)) 
 {
  $currentFile = fopen($repertoire . $filename, 'r');
  $nLine = 0;
  while (($data = fgets($currentFile)) !== false) 
  {
   if($nLine === 0 && $nFichier !== 0)
   {
    $nLine++;
   }
   else
   {
    $data .
    $nLine = 1;
    fputs($concatFile, $data);
       $nLine++;
   }
  }
  fclose($currentFile);
  $nFichier++;
 }
}
fclose($concatFile);


EDIT : Ajout des balises de code

et voila je sais pas comment le faire automatiquement
vos aides SVP
et merci d'avance
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 mars 2018 à 15:01
Bonjour,

Si tu as un script .. ce n'est donc pas "manuellement".
Sur quoi bloques tu exactement ? l'écriture du script ? le déclenchement programmé automatique ? (connais tu les tâches planifiées ?? )
Autre chose ?

0
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018
Modifié le 19 mars 2018 à 17:26
j'aime que l'enregistrement des fichiers soit automatique c'est a dire le 1er de chaque mois il envoie les fichiers du mois precedent
je connais pas la fonction php qui traite tout ca
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 mars 2018 à 17:37
Par ce que php ne gère pas ça .....
Il faut que :
1 - Tu créés un script qui gère la compilation + envoie des fichiers ( ce que tu as déjà fait visiblement)
2 - Que tu passes par une Tâche planifiée pour lancer ton script ( on appel aussi ça les CRON )
0
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018
19 mars 2018 à 17:48
oui j'ai compris ;) il faut chercher donc comment fonctionner les taches cron ? j'ai aucune idee sur ça
merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 mars 2018 à 20:30
Ça dépend sur quoi est hébergé ton script
0
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018
19 mars 2018 à 21:35
comment ça ?? j'ai pas bien compris ...en fait j'ai un deadline et j'ai pas une idée sur les taches cron svp pouvez vous m'aider et merci
:)
0
ranich Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 26 mars 2018
26 mars 2018 à 13:09
bonjour
revenons à mon pb
je voudrais que la date soit automatique dans le sens ou le script sera automatisé le 1er jour de chaque mois. il faut donc qu'à l'exécution du script, le mois à sélectionner doit être le mois précédent. Attention à calculer aussi l'année correctement (ex: si généré le 1er janvier 2019, le mois précédent est décembre 2018)
lorsque je mets

$year = date('Y');
$month = date('m')-1;
$repertoire='path';
$concatFilename = $year . '-' . $month . '_Import.csv';
$concatFile = fopen('./' . $concatFilename, 'w');

$nFichier = 0;
foreach (scandir($repertoire) as $filename)
{
if (substr($filename, 0, 7) == ($year . '-' . $month))
{
$year = date('Y');
$month = date('m')-1; $currentFile = fopen($repertoire . $filename, 'r');
$nLine = 0;
while (($data = fgets($currentFile)) !== false)
{
if($nLine === 0 && $nFichier !== 0)
{
$nLine++;
}
else
{
$data .
$nLine = 1;
fputs($concatFile, $data);
$nLine++;
}
}
fclose($currentFile);
$nFichier++;
}
}
fclose($concatFile);

ce script me rend un fichier vide et je sais pas pourquoi
aidez moi SVP
0