Script php

Amelie0528 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 )

0
Amelie0528 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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
0
Amelie0528 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Amelie0528 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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;
}

0