har2csv

Nov. 7th, 2011 03:21 am
ysukharenko: (Default)
[personal profile] ysukharenko

Тут потребовалось выдрать с табличку данных из Firebug (адрес, статус, размер). Плагин NetExport для Firebug умеет только в HAR (JSON). А мне надо было именно CSV. Набросал тут небольшой скриптик – может кому пригодиться.

#!/usr/bin/php
<?
 
	if (!$argv[1])
	{
		print "Usage: ./har2csv.php filename.har\n";
		exit();
	}
 
	if (!file_exists($argv[1]))
	{
		print "File not exist!\n";
		exit();
	}
 
	$j = json_decode(file_get_contents($argv[1]), true);
 
	$csv = array();
 
	foreach ($j['log']['entries'] as $data)
	{
		$tmp = array();
		$tmp['url'] = $data['request']['url'];
		$tmp['status'] = $data['response']['status'] . ' ' . $data['response']['statusText'];
		foreach ($data['response']['headers'] as $k => $v)
		{
			if ($v['name'] == 'Content-Length')
			{
				$tmp['size'] = number_format($v['value'] / 1024, 1, '.', '');
			}
		}
		$csv[] = $tmp;
	}
 
	$outname = preg_replace("/\.har$/", ".csv", $argv[1]);
	$fp = fopen($outname, 'w');
	foreach ($csv as $k => $v)
	{
		if ($k == 0)
		{
			$tmp = array();
			foreach ($v as $kk => $vv)
			{
				$tmp[] = $kk;
			}
			fputs($fp, implode(",", $tmp) . "\n");
		}
		fputs($fp, implode(",", $v) . "\n");
	}
	fclose($fp);
 
?>

Originally published at Scorp.ca

Profile

ysukharenko: (Default)
Yevgen Sukharenko

September 2017

S M T W T F S
     1 2
34 56789
10111213141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 15th, 2026 12:28 am
Powered by Dreamwidth Studios