function test_source_file_read() { $input_file = Test_Unit_Helper::data_file('lib/tsv.input.res'); $output_file = Test_Unit_Helper::data_file('lib/tsv.output.json'); $expect = Test_Unit_Helper::json_file_data($output_file); $sf = new Lib_SourceFile($input_file); $sf->has_header = true; $result = []; foreach ($sf as $_k => $_v) { $result[] = $_v; } $this->assertEquals($expect, $result); $line_count = $sf->current_line_no(); $this->assertEquals(count($expect), $line_count); }
<?php require_once dirname(dirname(__FILE__)) . '/init_env.php'; $opt = get_args('f:', ['2json', '2sp'], [['f']], 'CMD -f $tsv_file'); $source_file = new Lib_SourceFile($opt['f']); foreach ($source_file as $_k => $_s) { if (isset($opt['2json'])) { echo json_encode($_s['data']); echo PHP_EOL; } elseif (isset($opt['2sp'])) { echo serialize($_s['data']); echo PHP_EOL; } else { p($_s); } } if (!isset($opt['2json']) && !isset($opt['2sp'])) { p($source_file->current_line_no()); }