Tema: De Php a Csv
Ver Mensaje Individual
  #15 (permalink)  
Antiguo 04/11/2012, 10:44
raposu
 
Fecha de Ingreso: enero-2012
Mensajes: 24
Antigüedad: 12 años, 10 meses
Puntos: 1
extraer un csv exacto

Hola, necesito extraer un data.csv con los datos que genera este php (algo que me resulta imposible porque siempre me genera </br>

En caso positivo, se puede hacer que cargue la página automáticamente cada cierto tiempo?

los datos que genera "....data.php" son estos:

Cita:
Categorias,04/11/2012 16:00,04/11/2012 15:00,04/11/2012 14:00,04/11/2012 13:00,04/11/2012 12:00,04/11/2012 11:00,04/11/2012 10:00,04/11/2012 09:00,04/11/2012 08:00,04/11/2012 07:00,04/11/2012 06:00,04/11/2012 05:00,04/11/2012 04:00,04/11/2012 03:00,04/11/2012 02:00,04/11/2012 01:00,04/11/2012 00:00,03/11/2012 23:00,03/11/2012 22:00,03/11/2012 21:00,03/11/2012 20:00,03/11/2012 19:00,03/11/2012 18:00,03/11/2012 17:00
Precipitacion,0.0,0.0,0.0,0.0,0.4,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0. 2,0.0,0.2
Temperatura,10.8,10.4,10.0,10.1,9.4,9.1,8.7,8.9,8. 4,8.5,8.3,8.5,8.5,8.9,9.2,9.3,9.3,9.3,10.0,10.1,10 .0,10.0,10.1,10.5
Presion,968.5,968.6,968.3,968.4,968.4,968.2,968.2, 967.5,966.6,966.3,966.0,965.5,965.6,965.9,965.9,96 6.3,966.4,966.5,966.8,967.1,967.1,967.1,966.9,966. 4
Código:
<?php

// primero se abre el documento en modo lectura "r" (read)
$handle = fopen("http://www.aemet.es/es/eltiempo/observacion/ultimosdatos_oviedo_20121008173202.csv?k=ast&l=1249X&datos=det&w=0&f=temperatura&x=", "r");

// creamos una variable que la llamaremos CONTADOR_LINEA para ir contando las líneas del documento

$contador_linea = 1;

// creamos una variable que la llamaremos CONTADOR

$contador = 0;

// se hace un WHILE que irá sacando datos mientras siga habiendo en el documento

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
 
 // el bucle coge una línea con datos y las vamos guardando en diferentes matrices $fecha[1] para el primer dato de fecha, y lo mismo con temperatura, precipitacion y presión.
 
    // cuando llegue al final de while y repita de nuevo el procedimiento, con $fecha[2] se guardará el segundo dato de fecha. Lo mismo con temperatura, precipitacion y presión.
 
 //los datos los irá guardando a partir de la linea deseada. lo especificamos con un IF y la variable CONTADOR_LINEA
 
 if ($contador_linea >= 5){
   $contador++; //sumamos una unidad a CONTADOR y guardamos datos
   $Categorias[$contador] = $data[0];
   $Precipitacion[$contador] = $data[6];
   $Temperatura[$contador] = $data[1];
   $Presion[$contador] = $data[7];
 }
 //sumamos una unidad mas a contador_linea y seguimos con la linea siguiente
 $contador_linea++;
  
}

//cerramos el documento con FCLOSE.

fclose($handle);

// vamos a crear otra variable llamada RECUENTO. Con él vamos a ir pasando desde el principio todas las matrices.

$recuento=1;

// Comenzamos con Fecha. Escribimos primero la categoría con su coma.

echo 'Categorias,';

// Hacemos un bucle WHILE. Mientras la variable recuento sea menor o igual que CONTADOR (el número máximo de datos que tenemos guardados).

while($recuento <= $contador){
 
    //si recuento es igual a contador, significa que es el último, entonces lo escribimos sin la coma.
 
 // sino es igual entonces lo escribimos con coma
 
 if($recuento == $contador){
   echo $Categorias[$recuento];
 }
 else{
   echo $Categorias[$recuento].',';
 }
 //sumamos una unidad más a recuento y continuamos haciendo el while mientras siga siendo igual o menor que contador.
 $recuento++;
}

//escribimos el salto de línea puesto que ya acabamos con la primera categoría.

echo "<br/>";

// volvemos a resetear la variable RECUENTO a 1 y hacemos todo el procedimiento con otra categoría.

$recuento=1;

echo 'Precipitacion,';

while($recuento <= $contador){
 if($recuento == $contador){
   echo $Precipitacion[$recuento];
 }
 else{
   echo $Precipitacion[$recuento].',';
 }
 $recuento++;
}

echo "<br/>";


// volvemos a resetear la variable RECUENTO a 1 y hacemos todo el procedimiento con otra categoría.

$recuento=1;

echo 'Temperatura,';

while($recuento <= $contador){
 if($recuento == $contador){
   echo $Temperatura[$recuento];
 }
 else{
   echo $Temperatura[$recuento].',';
 }
 $recuento++;
}

echo "<br/>";
// volvemos a resetear la variable RECUENTO a 1 y hacemos todo el procedimiento con otra categoría.

$recuento=1;

echo 'Presion,';

while($recuento <= $contador){
 if($recuento == $contador){
   echo $Presion[$recuento];
 }
 else{
   echo $Presion[$recuento].',';
 }
 $recuento++;
}


?>