Compilation des fichiers automatisé

ranich Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
ranich Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ça dépend sur quoi est hébergé ton script
0
ranich Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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