Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/04/2014, 02:32
Qazser
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: Editar .html desde php

Aviso desde ya que yo he hecho el código sin probarlo, pero ya me imagino que se lo que es.

Código PHP:
Ver original
  1. <?php
  2.     $fichero = "ruta del archivo";
  3.     $abro = fopen($pagina,"r");//abro la web correspondiente
  4.     $yo = 1; //Contador para leeer todas las lineas
  5.     while(!feof($abro)) //Meto el codigo fuente en un array
  6.     {
  7.         $libro[$yo] = fgets($abro,1024); //libro será la variable del codigo
  8.         $yo++;
  9.     }
  10.     $cierro = fclose($abro); //cierro la pagina  
  11.      
  12.     //Calculando fechas
  13.     $fecha1=date('D M j H:i:s Y', time()-(40*60));
  14.     $fecha2=date('D M j H:i:s Y');
  15.      
  16.     //Buscando las linea Central de guia
  17.     $ind = array_keys($libro, '<h2>Result summary</h2>');
  18.     $ind = $ind[0];
  19.  
  20.     //Reemplazando lineas del array
  21.     $libro[$ind+2] = '<tr><td class="value"><strong>Test Start time</strong></td><td class="altvalue">'.$fecha1.' </td></tr>';
  22.     $libro[$ind+5] = '<td width="60%" class="altvalue">'.$fecha2;
  23.      
  24.     //Conviertiendo array en texto
  25.     implode("\r\n",$libro);
  26.      
  27.     //Guardando archivo
  28.     file_put_contents($fichero, $libro);

El error es que array_keys, aunque solo encuentre 1 resultado, te devuelve un array, y luego intenté sumarlo yo un numero al array, lo que es una operacion imposible.

@italico76. No conozco la función preg_replace_callback, según lo que veo hace algo similar al array_keys en mi código. Aun así si se puede resumir mi código, siempre estoy interesado en aprender mas :)

El motivo por el que busqué por un punto de referencia en el HTML envés de contar simplemente desde arriba que linea es cada una, es porque pienso que la cantidad de lineas de ese HTML puede ser variable, como por ejemplo si el usaurio que entrega ese informe tiene 2 tarjetas gráficas, o 2 CPU's si se trata de un servidor. Si evalua el html del dxdiag (me imagino que es) de otro ordenador, las lineas de las fechas estaran situadas a diferente altura, sin embargo, aun así estarán siempre a +2 y +5 del texto único que escogí como referencia. Así deja de importar si el documento no tiene siempre la misma cantidad de lineas.
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos