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<?php
$fichero = "ruta del archivo";
$abro = fopen($pagina,"r");//abro la web correspondiente $yo = 1; //Contador para leeer todas las lineas
while(!feof($abro)) //Meto el codigo fuente en un array {
$libro[$yo] = fgets($abro,1024); //libro será la variable del codigo $yo++;
}
$cierro = fclose($abro); //cierro la pagina
//Calculando fechas
$fecha1=date('D M j H:i:s Y', time()-(40*60)); $fecha2=date('D M j H:i:s Y');
//Buscando las linea Central de guia
$ind = array_keys($libro, '<h2>Result summary</h2>'); $ind = $ind[0];
//Reemplazando lineas del array
$libro[$ind+2] = '<tr><td class="value"><strong>Test Start time</strong></td><td class="altvalue">'.$fecha1.' </td></tr>';
$libro[$ind+5] = '<td width="60%" class="altvalue">'.$fecha2;
//Conviertiendo array en texto
//Guardando archivo
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.