[RESOLU] travail sur tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] travail sur tableau

Re: [RESOLU] travail sur tableau

par Figuedi » 28 avr. 2021, 14:19

Pour finaliser le scmiliblick
voila ma recherche, cela prend un certain temps mais je vais peaufiner en demandant à l'utilisant une date et le téléchargement du fichier à scruter mais le moteur de recherche fonctionne c'est déjà ça
Merci
<?php
////////////////////////Gestion des erreurs///////////////////////////
/*
error_reporting(E_ALL);
ini_set("display_errors", 1);
*/
////////////////////Chargement des mots clefs/////////////////////////

$log = fopen('./UP/MotsClefsVivid.txt', 'rb');
$j=1;
while(!feof($log)){
	$TabClefs[$j]=fgetcsv($log,0,';','"','\\');
	$j++;
}
//////////////////////Chargement du fichier d'erreur et traitement////////////////////////////
$log = fopen('./UP/logfile.csv', 'rb');

$i=1;
echo '<table>';
	echo '<tr><th>Date</th><th>Valeur lue</th></tr>';
	while(!feof($log)){
		$TabLog[$i]=fgetcsv($log,0,';','"','\\');
		if (isset($TabLog[$i][0])) {
			$temp = explode(",",$TabLog[$i][0]);
			$tempo = explode(' ',$temp[1]);
			$TabLog[$i][0]=$tempo[1].' '.$tempo[0].' '.$temp[2].' '.$tempo[2];
			if (isset($TabLog[$i][3])){
				for($j=1;$j<count($TabClefs);$j++){
					if(stristr($TabLog[$i][3],$TabClefs[$j][0])) {
					echo '<tr>';
						echo '<td>'.$TabLog[$i][0].'</td>';
						echo '<td>'.$TabLog[$i][3].'</td>';
					echo '</tr>';
					}
				}
			}
		}
		$i++; 
	}
echo '</table>';

Re: travail sur tableau

par Figuedi » 27 avr. 2021, 16:44

Parce que si je fais comme ça $TabLog[$i][0]=$tempod;
j’obtiens un tableau comme ça :
Array
(
[1] => Array
(
[0] => DateTime Object
(
[date] => 2021-02-11 17:11:41.000000
[timezone_type] => 3
[timezone] => Europe/Paris
)

[1] => Error
[2] => CScLogFile::Backup: FileMove failed. Error 32
)
et pour vérifier que ce soit bien une date j'ai cru lire qu'il fallait faire un mktime pour calculer la difference entre la date actuelle et la date rentrée
mais les echo mktime($TabLog[$i][0]);
echo mktime($TabLog[$i][10]);
me retournent la meme valeur alors qu'il devrait y avoir 4 minutes

J'en conclue que ma valeur n'est pas bien assignée ou lue ou je ne sais pas quoi

Re: travail sur tableau

par Figuedi » 27 avr. 2021, 16:35

comment je fis pour récupérer que date et le mettre dans ma colonne 1 ?
$tempod=date_create_from_format('d M, Y H:i:s',$TabLog[$i][0]);
		echo '<pre>';print_r($tempod);echo '</pre>';
DateTime Object
(
[date] => 2021-02-11 17:11:41.000000
[timezone_type] => 3
[timezone] => Europe/Paris
)

Re: travail sur tableau

par Figuedi » 27 avr. 2021, 11:41

j'obtiens presque ce que je veux comme ça
while(!feof($log)){
	$TabLog[$i]=fgetcsv($log,0,';','"','\\');
	if (isset($TabLog[$i][0])) {
		$temp = explode(",",$TabLog[$i][0]);
		$temp=array_splice($temp,-2,3,$temp);
		$TabLog[$i][0]= $temp[0]. ' '.$temp[1];
	}
	$i++;
}
reste à ^tre sur que la premiere colonne soit bien reconnue comme date

travail sur tableau

par Figuedi » 27 avr. 2021, 11:21

j'ai un tableau comme ça
Array
(
[1] => Array
(
[0] => Thursday,Feb 11 17:11:41,2021
[1] => Error
[2] => CScLogFile::Backup: FileMove failed. Error 32
)
...
issu de cette commande
while(!feof($log)){
	$TabLog[$i]=fgetcsv($log,0,';','"','\\');
	if (isset($TabLog[$i][0])) {
		$temp = explode(",",$TabLog[$i][0]);
		$temp=array_splice($temp,"-2","3",$temp);
		//echo '<pre>';print_r($temp);echo '</pre>';
		$TabLog[$i]=array_splice($TabLog[$i],"0","3",$temp);
	}
	$i++;
}
avec mon explode de la premiere colonne j'ai bien ça dans $temp
Array
(
[0] => Feb 11 17:11:41
[1] => 2021
)
et d'après ce que je comprends du ARRAY_Splice
il devrait remplacer la colonne 0 de mon TabLog par l'explosion de cette meme première colonne

et ben non il fait comme si y avait rien
je me suis viandé ou ?