jamesM 0 Denunciar post Postado Outubro 14, 2010 Boa noite To com o seguinte código ele pega os 7 ultimos registros de um log e os imprime <?php $quantidade = 7; $conteudo = array(); $conteudo = file('file.log'); $total = count($conteudo); $inicio = ($total - $quantidade)-1; $pilha = array(); for($i=$inicio; $i < $total; $i++) array_push($pilha, $conteudo[$i]); list($log1, $log2, $log3, $log4, $log5, $log6, $log7) = $pilha; $lista = sprintf(' <ul> <li>%s</li> <li>%s</li> <li>%s</li> <li>%s</li> <li>%s</li> <li>%s</li> <li>%s</li> </ul> ',$log1, $log2, $log3, $log4, $log5, $log6, $log7); echo $lista; ?> saida 29-08-10;22:54:21;302;logou 30-08-10;22:56:01;302;logou 31-08-10;22:58:02;302;logou 01-09-10;23:00:02;302;logou 02-09-10;23:02:01;302;logou 03-09-10;23:04:01;302;logou 04-09-10;23:06:01;302;logou Alguem me ma uma luz de como armazeno em 7 variaveis somente os "logou" por exemplo, ou as datas.. tem que fazer um explode usando o caracter ; mas nao sei como Compartilhar este post Link para o post Compartilhar em outros sites
kakaroto developer 0 Denunciar post Postado Outubro 14, 2010 você tem um exemplo de como e esse arquivo de log seu ou seja como fica gravado e como você deseja o resultado final pq eu nao entendi nada ainda Compartilhar este post Link para o post Compartilhar em outros sites
jamesM 0 Denunciar post Postado Outubro 14, 2010 você tem um exemplo de como e esse arquivo de log seu ou seja como fica gravado e como você deseja o resultado final pq eu nao entendi nada ainda digamos que o meu arquivo de log seja 1000 linhas identicas a "saida", ele pega apenas as 7 ultimas e as imprime, como aquela saida. mas eu nao quero que ele imprima a linha completa.. apenas os valores dentro do separador ";" exemplo 30-08-10;22:54:21;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;22:56:01;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;22:58:02;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;23:00:02;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;23:02:01;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;23:04:01;[color="#FF0000"][b]302[/b][/color];logou 30-08-10;23:06:01;[color="#FF0000"][b]302[/b][/color];logou obs: era pro 302 estar vermelho e negrito, mas nao fico http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif pegar esses dados em vermnelho e armazena-los separadamente saida esperada 302 302 302 302 302 302 302 em variaveis separadas. e agora :D Compartilhar este post Link para o post Compartilhar em outros sites
kakaroto developer 0 Denunciar post Postado Outubro 14, 2010 agora deixa eu bate cabeça aqui um pouco e montar para tu :) Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Outubro 14, 2010 Dependendo como as linhas estão separadas, você pode fazer assim: <?php ... $x = explode("\r\n", $arquivo); //separa por linhas foreach ($x as $linha) { $separaLinha = explode(';', $linha); echo $separaLinha[0].'<br />'; echo $separaLinha[1].'<br />'; echo $separaLinha[2].'<br />'; echo $separaLinha[3].'<br />'; echo $separaLinha[4].'<br />'; echo $separaLinha[5]; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
kakaroto developer 0 Denunciar post Postado Outubro 14, 2010 $conteudo = array_reverse(file('file.log')); // pega o conteudo e inverte ja que você que os ultimos da lista $a = 0; foreach ($conteudo as $valores) { if ($a < 7) { if ($valores) { $separa = preg_split('/[;]/i', $valores); // var_dump($separa); if ($separa[3] == "logou") { echo $separa[2]; } unset($valores); } $a++; } } ?> ver se e isso ok Compartilhar este post Link para o post Compartilhar em outros sites