File "traitement_csv.php"

Full Path: /home/analogde/www/download/CHESS_2022/traitement_csv.php
File size: 6.83 KB
MIME-type: text/x-php
Charset: utf-8

<?php

	include('database.php');
	include('fonctions_elo.php');
	DB_connexion(); 
	
	error_reporting(0);
	header( 'content-type: text/html; charset=utf-8' );
			

function lire_csv($nom_fichier, $separateur =";")
{
    $row = 0;
    $donnee = array();   
	$joueur = array();
	
	$file = fopen ($nom_fichier,"r");
	$ligne = 1;
	
	$table_csv = array();
	
	while(! feof($file))
	{
		// lire le fichier ligne par ligne
		$tmp = fgets($file);
		
		if($ligne > 3 )
		{
			// minuscule
			$tmp = strtolower($tmp);
			// eliminer les ; a gauche
			$tmp = ltrim($tmp, ";");
			// decomposer la chaine avec le séparateur ;
			$pieces = explode(";", $tmp);
			//suppression des valeurs inutiles
			$array = array_filter($pieces, function($var)
			{
				return (!($var == '' || is_null($var)));
			});
			// efface la derniere cellule du tableau	
			array_pop($array); 
			// conserver les lignes utiles
			if(strlen($tmp) > 2)
			{
				//$table_csv[] = $array;
				
				if(count($array) == 5)
				{
					array_push($joueur,$array[1]);
					array_push($joueur,$array[2]);
					
					$val = $array[4];
					$position = strpos($val, "5");
					if($position !== false)
					{ 
						//echo " Match nul";
						//echo "<br>";
						$array[3] = "0.5";
						$array[4] = "0.5";
					}
					// on enregistre
					$table_csv[] = $array;
				}
				else
				{
					echo "Erreur";
				}
				
			}
					
		}
		
		$ligne = $ligne + 1;
		
	}
	
	fclose($file);

			
	$sans_doublon = array_unique($joueur);	
	//$classer = sort($sans_doublon);
	$merge = array($table_csv, $sans_doublon );
	
	//echo "<pre>";
	//print_r($merge);
	//echo "<br>";
	//echo "************************************************************";
	
	return $merge;
}

/********************************/

function nouveau_lire_csv($nom_fichier )
{
    $row = 0;
    $donnee = array();   
	$joueur = array();
	
	$file = fopen ($nom_fichier,"r");
	$ligne = 1;
	
	$table_csv = array();
	$joueur = array();
	
	while(! feof($file))
	{
			// lire le fichier ligne par ligne
			$tmp = fgets($file);
		
			//if($ligne > 3 )
			//{
				$tmp = strtolower($tmp);
				//$tmp = strtr($tmp, 'ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ', 'AAAAAACEEEEEIIIINOOOOOUUUUY');
				//$tmp = strtr($tmp, 'áàâäãåçéèêëíìîïñóòôöõúùûüýÿ', 'aaaaaaceeeeiiiinooooouuuuyy');
				$tmp = str_to_noaccent($tmp);
				$pieces = explode(";", $tmp);
				if($pieces[1] != "")
				{
					$table_csv[] = $pieces;
					$joueur[] = $pieces[1];
					$joueur[] = $pieces[2];
					
					//array_push($joueur,$pieces[1]);
					//array_push($joueur,$pieces[2]);
				}
			//}
					
			
			$ligne = $ligne + 1;
		
	}
	
	fclose($file);
	
	$nb_ligne = count($table_csv);
	
	for ($i=0; $i < $nb_ligne; $i++)
	{
			$val = $table_csv[$i][4];
			$position = strpos($val, "5");
			if($position !== false)
			{ 
				echo " Match nul";
				echo "<br>";
				$table_csv[$i][3] = "0.5";
				$table_csv[$i][4] = "0.5";
			}
	
			$date_partie = $table_csv[$i][0];
			if($date_partie != "")
			{	$date = mise_en_forme_date($date_partie);
				$sauve = $date;
				$table_csv[$i][0] = $date;
				//$sauve = $date_partie;
			}
			else
			{	$table_csv[$i][0] = $sauve; 
				//$table_csv[$i][0] = $sauve;
			}
			
	}	
	
	
	$sans_doublon = array_unique($joueur);
	$sans_doublon = array_values($sans_doublon);
	// ordonner par ordre alphabetique
	usort($sans_doublon, "strcasecmp");
	$merge = array($table_csv, $sans_doublon );
	//echo "<pre>";
	//print_r($merge);
	return $merge;
	
}


function str_to_noaccent($str)
{
    $tmp = $str;
    $tmp = preg_replace('#Ç#', 'C', $tmp);
    $tmp = preg_replace('#ç#', 'c', $tmp);
    $tmp = preg_replace('#è|é|ê|ë#', 'e', $tmp);
    $tmp = preg_replace('#È|É|Ê|Ë#', 'E', $tmp);
    $tmp = preg_replace('#à|á|â|ã|ä|å#', 'a', $tmp);
    $tmp = preg_replace('#@|À|Á|Â|Ã|Ä|Å#', 'A', $tmp);
    $tmp = preg_replace('#ì|í|î|ï#', 'i', $tmp);
    $tmp = preg_replace('#Ì|Í|Î|Ï#', 'I', $tmp);
    $tmp = preg_replace('#ð|ò|ó|ô|õ|ö#', 'o', $tmp);
    $tmp = preg_replace('#Ò|Ó|Ô|Õ|Ö#', 'O', $tmp);
    $tmp = preg_replace('#ù|ú|û|ü#', 'u', $tmp);
    $tmp = preg_replace('#Ù|Ú|Û|Ü#', 'U', $tmp);
    $tmp = preg_replace('#ý|ÿ#', 'y', $tmp);
    $tmp = preg_replace('#Ý#', 'Y', $tmp);
     
    return ($tmp);
}

function mise_en_forme_date($date)
{
		list($jour, $mois, $annee) = explode('/', $date);
		//	pour supprimer le 0 si < 10
		//	$jour = ereg_replace("^0", "", $jour);
		//echo $date;
		//echo "<br>";
		//echo $jour ."  " .$mois ."  " .$annee;
		//echo "<br>";
		$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
		return($timestamp);
}
/********************************/

function stockage_joueurs_DB($donnees)
{
			$elo = 1000;
			$i = 0;
			$nb_ligne = count($donnees);
			
			for ($i=0; $i < $nb_ligne; $i++)
			{

				$prenom = $donnees[$i];
				$partie = 0;
				$prior = 0;
			
				// verifier que le joueur n'existe pas dans la database
				$sql = "select joueur from classement where joueur = '$prenom' ";
				$result = mysql_query($sql);
				if(mysql_num_rows($result)>=1)
				{
						echo "Ce joueur existe déjà :" .$prenom;
						echo "<br>";
				}
		
				else
				{
					$sql = " INSERT INTO classement ";
					$sql = $sql . " (joueur, elo, parties, prior) VALUES ";
					$sql = $sql . " ('$prenom', '$elo','$partie','$prior') ";
					echo $sql;
					echo "<br>";
					$result = mysql_query($sql);
					if (!$result)
					{ 
						echo("ERROR: " . mysql_error() . "\n$SQL\n");	
					}
				}	
			}	
}

function traitement_dates($liste_parties)
{

	$i = 0;
	$nb_ligne = count($liste_parties);
	for ($i=0; $i < $nb_ligne; $i++)
	{
		$date = $liste_parties[$i][0];
		//echo $date;
		//echo "<br>";

		//$timestamp = strtotime($date);
		$annee = 2015;
		$mois = 7;
		
		$pieces = explode("-", $date);
		$timestamp = mktime (0, 0, 0, $mois, $pieces[0], $annee); // mois jour annee
		echo $timestamp;
		echo "<br>";
		
		//echo sprintf('%02d', $val);

		 $liste_parties[$i][0] = $timestamp;
		
	}

	return($liste_parties);
}


function import_donnees($fichier)
{
	// extractions des donnees
//	$donnees = lire_csv($fichier);

	$donnees = nouveau_lire_csv($fichier);
	
	//mysql_query('TRUNCATE TABLE table;');
	
	//echo "<pre>";
	//print_r($donnees);
	//echo "<br>";

	// fragmentation
	$liste_parties = array();
	$liste_joueurs = array();
	$liste_parties = $donnees[0];
	$liste_joueurs = $donnees[1]; 
	// affichage
	echo " ------------------------------" ."<br>";
	echo "<pre>";
	print_r($liste_parties);
	echo "<br>";
	echo " ------------------------------" ."<br>";
	echo "<pre>";
	print_r($liste_joueurs);

	mysql_query('TRUNCATE TABLE classement;');
	mysql_query('TRUNCATE TABLE evolution;');
	mysql_query('TRUNCATE TABLE games;');
	mysql_query('TRUNCATE TABLE parties;');
	mysql_query('TRUNCATE TABLE rating;');
	
	// enregistrer 
	stockage_joueurs_DB($liste_joueurs);
	// calculer du classement
	calcul_classement_elo($liste_parties);
	

	echo "Script executé avec succés";	
	
}	
?>