<?php
//------------------------------------------------------------------------------------
$datos[] = array(0, ' ', '0');
$datos[] = array(1, ' ', '0');
$datos[] = array(2, ' ', '0');
$datos[] = array(3, ' ', '0');
$datos[] = array(4, ' ', '0');
$datos[] = array(5, ' ', '0');
$datos[] = array(6, ' ', '0');
$datos[] = array(7, ' ', '0');
$datos[] = array(8, ' ', '0');
$datos[] = array(9, ' ', '0');
$datos[] = array(10,' ', '0');
//------------------------------------------------------------------------------------
// compruebo si el archivo existe.. para cargar sus datos..
$nombre_fichero = $_POST['file'];
if(file_exists($nombre_fichero)){
//echo "El fichero $nombre_fichero existe";
$handle = fopen($_POST['file'], "r");
$i = 0;
while($i<11){
$letra = fgetc($handle);
while($letra != '@'){
$nick_ = $nick_.$letra;
$letra = fgetc($handle);
}
$letra = fgetc($handle);
while($letra != '@'){
$score_ = $score_.$letra;
$letra = fgetc($handle);
}
$datos[] = array($i, $nick_, $score_);
$nick_ = '';
$score_ = '';
$i ++;
}
fclose($handle);
}
//------------------------------------------------------------------------------------
// si los datos posteados no están en la lista..
// los añado a la ultima posición de la estructura..
$pos_nick = -1;
$flag_score = false;
$i = 0;
for($i=0; $i<10; $i++){
//if($datos[$i] [1] == $_POST['nick']){
$a = (string)$datos[$i] [1];
$b = (string)$_POST['nick'];
if($a == $b){
// existe una puntuación con mi nick..
// me guardo la posición dentro de la estructura..
// será donde añada los datos del post si es necesario..
echo 'COINCIDENCIA DETECTADA!!!';
$pos_nick = $i;
}
if($datos[$i] [2] < $_POST['score']){
// si la puntuación del post es mayor que alguna del ranking..
$flag_score = true;
}
}
//------------------------------------------------------------------------------------
// si mi nick estaba en el ranking miro si tengo una puntuación superior..
if($pos_nick > -1){
if($flag_score == true){
// actualizo la información por ser mejor que la contenida en el ranking..
$datos[$pos_nick] [1] = $_POST['nick'];
$datos[$pos_nick] [2] = $_POST['score'];
}
}
if($pos_nick == -1){
// si mi nick no está en el ranking pero tengo mas puntos que la peor puntuación guardada..
if($flag_score == true){
// me añado en la ultima posición del ranking..
$datos[10] [1] = $_POST['nick'];
$datos[10] [2] = $_POST['score'];
}
}
//------------------------------------------------------------------------------------
// accesors a las columnas por indices separados..
foreach ($datos as $key => $fila){
$nicks[$key] = $fila[1]; // columna de nicks
$scores[$key] = $fila[2]; //columna de scores
}
//ordenamos ascendente por la columna elegida
array_multisort($scores, SORT_DESC, $datos);
//------------------------------------------------------------------------------------
// actualizar el archivo del ranking..
$nombre_fichero = $_POST['file'];
// creo el archivo..
$handle2 = fopen($_POST['file'], "w");
//recorro la lista de datos..
$i = 0;
while($i<11){
$nick_ = $datos[$i] [1];
$score_ = $datos[$i] [2];
fwrite( $handle2, $nick_ );
fwrite( $handle2, '@' );
fwrite( $handle2, $score_ );
fwrite( $handle2, '@' );
$i ++;
}
fclose( $handle2 );
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
$counter = 0;
while($counter<11){
echo $datos[$counter] [1] . " " . $datos[$counter] [2];
echo '<br>';
$counter ++;
}
echo $pos_nick;
echo '<br>';
echo $flag_score;
//------------------------------------------------------------------------------------
?>