mon script donne des faux résultats
Posté : 04 févr. 2016, 15:42
Bonjour tout le monde,
j'ai besoin de vos conseils j'ai perdu assez de temps sans avancer
on faite je suis stagiaire et il ma était confié la mission suivant:
écrire un script php qui affiche une alerte si un consommateur a consommé plus de 10 euro par appel téléphonique
Sur le serveur je reçois des fichiers csv tout les 60min, les fichiers csv contiennent les détails de consommation, ce qui m’intéresse dans les détails de consommation est le champs du prix .
je dois écrire le script qui lit chaque nouveau fichier qui arrive , regardé toute les lignes du fichier et si le champ du prix dépasse 10€ , une alerte sera afficher et toute la ligne contenant la valeur>10 € sera copié dans un autre fichier a part .
ensuite pour éviter que l'alerte s'affiche plusieurs fois a chaque fois un nouveau ficher csv arrive sur le serveur je dois me rassuré si l'alerte a était déjà faite, si oui j'affiche rien si non j'affiche l'alerte .
pour faire cela je dois comparer la nouvelle ligne ou il ya une valeur>10 au lignes stocké avant dans le fichier a part pour voir si elle existait déjà ou pas, pour décider d'afficher l'alerte ou pas .
concernant l’exécution automatique du script c'est l'admin qui s'en occupe avec une tache planifié, donc c'est pas moi qui doit le faire
j’espère que j'était clair dans la desciption
je suis débutant en php et depuis 1 mois je tourne en rond
j'ai écris un script mais ce dernier n'arrive pas à comparer la nouvelle ligne (prix>10) et les lignes déjà stocké dans un fichier à part, pour lui l'alerte et toujours nouvelle , voila mon code peut être quelqu'un verra ce que je n'est pas pu voir.
je vous remercie d'avance
j'ai besoin de vos conseils j'ai perdu assez de temps sans avancer
on faite je suis stagiaire et il ma était confié la mission suivant:
écrire un script php qui affiche une alerte si un consommateur a consommé plus de 10 euro par appel téléphonique
Sur le serveur je reçois des fichiers csv tout les 60min, les fichiers csv contiennent les détails de consommation, ce qui m’intéresse dans les détails de consommation est le champs du prix .
je dois écrire le script qui lit chaque nouveau fichier qui arrive , regardé toute les lignes du fichier et si le champ du prix dépasse 10€ , une alerte sera afficher et toute la ligne contenant la valeur>10 € sera copié dans un autre fichier a part .
ensuite pour éviter que l'alerte s'affiche plusieurs fois a chaque fois un nouveau ficher csv arrive sur le serveur je dois me rassuré si l'alerte a était déjà faite, si oui j'affiche rien si non j'affiche l'alerte .
pour faire cela je dois comparer la nouvelle ligne ou il ya une valeur>10 au lignes stocké avant dans le fichier a part pour voir si elle existait déjà ou pas, pour décider d'afficher l'alerte ou pas .
concernant l’exécution automatique du script c'est l'admin qui s'en occupe avec une tache planifié, donc c'est pas moi qui doit le faire
j’espère que j'était clair dans la desciption
je suis débutant en php et depuis 1 mois je tourne en rond
j'ai écris un script mais ce dernier n'arrive pas à comparer la nouvelle ligne (prix>10) et les lignes déjà stocké dans un fichier à part, pour lui l'alerte et toujours nouvelle , voila mon code peut être quelqu'un verra ce que je n'est pas pu voir.
je vous remercie d'avance
<?php
// path du dossier CDR 0 remplacer par le chemin correspondant lors de la mise du script sur le serveur
$dir = "C:\Users\Master\Desktop\quotidien\CDRs";
// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$chaine= $file[8]."".$file[9]."".$file[10]."".$file[11]."".$file[12]."".$file[13]."".$file[14]."".$file[15]."".$file[16]."".$file[17]."".$file[18]."".$file[19]."".$file[20]."".$file[21] ;
//echo $chaine."".'</br>' ;
$compteur= $chaine ;
// path a remplacer lors de la mise du script sur le serveur
$filename = "C:\Users\Master\Desktop\quotidien\CDRs\Pacetel_".$compteur.".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".'</br>'."$ligne[$i]"."".'</br>'."".$filename."".'</br>' ;
$fichier_cible = "C:\Users\Master\Desktop\quotidien\CDRtest\seuil.txt";
$current = file_get_contents($fichier_cible);
$current .= $ligne[$i] ;
if(!file_put_contents($fichier_cible,$current)){
echo "la copie du $ligne[$i] a échoué ..\n " ;
}
$fichier_alert = fopen($fichier_cible,'r+');
while(($ligne_alert = fgets($fichier_alert))!== false){
if (strcmp($ligne_alert, $ligne[$i]) == 0) {
echo "alerte deja signalé".'</br>'."$ligne[$i]"."".'</br>'."".$filename."".'</br>' ;
}
else{
echo "alerte".'</br>'."$ligne[$i]"."".'</br>'."".$filename."".'</br>' ;
//$message = " coutCDR depassement du seuil".$ligne[$i];
//mail('[email protected]', 'Alerte CDR', $message);
}
}
// echo '<script language="JavaScript">alert(\'depassement du seuil de consommation\');</script>';
}
}
}
closedir($dh);
}
}
?>