sábado, 28 de julho de 2012

Como exportar e fazer download de arquivos da aba Net do Firebug

Muitos desenvolvedores web provavelmente conhecem e usam o excelente plugin Firebug. Ele é muito útil tanto para programadores quanto para designers. Mas hoje estou aqui para falar especificamente da aba Rede/Net mostrada abaixo:
Mostra a aba Rede Ou Net do Firebug listando os arquivos de um site
Aba Rede ou Net Firebug

Ela lista todos os arquivos e seus respectivos tempos de download. Existem várias opções para listar somente imagens, arquivos de script ou css.

Pouco tempo atrás eu precisei obter os dados desta aba. Eu tinha feito download de um jogo feito usando-se html5, e usando-se a opção "Arquivo->Salvar como" do browser muitos dos arquivos de imagens não foram obtidos, já que eles não são referenciados em tags img ou no css. Eu queria uma forma de exportar esta lista de arquivos para que eu pudesse usá-la em um script que me permitisse fazer o download dos arquivos não encontrados, ou seja os arquivos que o servidor reportou com erro 404 quando tentei rodar o jogo localmente em meu computador. Para o problema de exportar esta lista de arquivos da aba Rede já existe um plugin (um plugin para um plugin?!) que faz isso. Ele se chama NetExport. Depois de instalar o NetExport, na aba rede vai aparecer uma opção chamada Export, depois de clicar nesta opção é só clicar na opção "Save as...". No local indicado será criado um arquivo com a extensão .har. Se você abrir este arquivo poderá ver que o conteúdo dele está no formato json.

Quando o conteúdo de um arquivo está no formato json, torna-se muito fácil ler tudo usando-se a função json_decode. Abaixo uma listagem do código que usei para a tarefa.



Dependendo do seu caso você precisará mudar um pouco o código. Na listagem a url poderia ser "$entry->request->url" diretamente em muitos casos sem a necessidade de usar basename.

Bom espero que o post seja útil para alguém, até mais!