Script php [Fermé]

Signaler
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
Messages postés
32081
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
-
Bonjour à tous

je viens vers pour demander l'assistance afin de trouver par ou commencer

en faite j'ai un système qui me renvoie un ficher .cdr tous les heures, une des colonnes de ce fichier contient des valeurs entier , je souhaite faire un script qui regarde cette colonne et si il ya une valeur qui est supérieur à 10, si c'est le cas une alerte s'affiche ( "attention valeur>10") et un mail sera envoyé si ce n'est pas le cas rien ne se passe .

je vous remercie d'avance

2 réponses

Messages postés
32081
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
3 401
Bonjour,

Déjà ... tout dépend de la forme du contenu de ton fichier "cdr"
mais si comme je le pense c'est un fichier de type csv ... il suffit de le lire ligne par ligne,
de faire un split pour trouver la colonne voulue ... puis de comparer la valeur obtenu avec celle que tu veux.

Tu peux utiliser https://www.php.net/manual/fr/function.fgetcsv.php peut etre.
Ou sinon, https://www.php.net/manual/fr/function.fread.php

Ensuite, générer l'envoie d'un mail. (pour ça, de nombreux exemples existent sur le net )

Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016

merci jordane pour votre réponse rapide
oui effectivement c'est un fichier de type csv
une fois le script est fini, comment faire pour qu'il fonctionne sachant qu'il va être placé au serveur. Normalement le script doit faire le travail et affiché l'alerte , comment ca va se faire?, dois-je faire un bouton pour démarrer le script ???
c'est flou pour moi ce genre de tache
Messages postés
32081
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
3 401

Normalement le script doit faire le travail et affiché l'alerte , comment ca va se faire?, dois-je faire un bouton pour démarrer le script ???

Si tu veux déclencher cette vérification "mnauellement", Oui, un bouton pourra faire l'affaire.

Sinon, si tu veux le faire en automatique, tu pourrais aussi regarder du côté des tâches planifiées ( tout dépend si ton serveur les autorise ou non... ça ... seul l'admin peut te le dire....)
Si oui... tu créés une tâche planifiée qui tourne toutes les x minutes ( 1 fois par heure par exemple...) et qui va :
- Vérifier si ton fichier est présent sur le serveur
- Si oui ... lancer le script de vérification
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016

Merci jordaane, oui la vérification doit être automatique, j'ai demandé a l'admin il m'a dit oui le serveur accepte les taches planifiées
je vais m'orienté vers cette solution
je vous remercie
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016

j'ai commencé mon script, la comparaison entre la valeur du champ de ma colonne et ma valeur seuil 10 ne se fait pas, je comprend pas pour quoi!!
en plus quand je force l'affichage il affiche l'alerte plusieurs fois or que je vois qu’il affiche juste le champ ou le contenu est supérieur a 10
help!!
$filename = "monfichier.cdr";

$ligne= file($filename); //lit le fichier entier et le place dans un tableau

$nbTotalLignes=count($ligne);

for($i=1;$i<$nbTotalLignes;$i++){
    // On place chaque élément séparé par un ; dans un tableau
    $ligneTab = explode(";",$ligne[$i]); 
 $seuil= 10;
 if (!$ligneTab[8] <= $seuil){
  echo 'alerte' ;
 }
   
 
}


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Messages postés
32081
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
3 401
Ajoutes donc un peu de debug puis testes ton code dans ton navigateur pour voir ce qu'il t'affiche
Par exemple :


$filename = "monfichier.cdr";
$ligne= file($filename); //lit le fichier entier et le place dans un tableau
$nbTotalLignes=count($ligne);

$seuil= 10;
$result = array(); // pour stocker le resultat dans un array

for($i=1;$i<$nbTotalLignes;$i++){
   // On place chaque élément séparé par un ; dans un tableau
   $ligneTab = explode(";",$ligne[$i]); 
  
  //-----------------------------------------------------------// 
 //le temps des tests :
  //-----------------------------------------------------------//  
  echo "<br><b><u> Ligne N° ".$i."</u></b>";
  echo "<pre> Contenu de la ligne :<br>";
  print_r($ligneTab);
  echo "</pre>";
 //-----------------------------------------------------------// 
  
   // on retire les espaces superflus et on force en nombre
  $valeurCell = (float)trim($ligneTab[8]);
  if ($valeurCell <= $seuil){
   $result[] =array("ligne"=>$i , "valeur"=>$valeurCell);
  }
 
}

//On affiche les erreurs :
foreach($result as $err){
 echo "<br>Ligne : ".$ligne['ligne']."  - Alerte : ".$err['valeur'] ." <= " .$seuil;
}