-
Notifications
You must be signed in to change notification settings - Fork 1
/
write-data-in-file.php
52 lines (45 loc) · 1.16 KB
/
write-data-in-file.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
/**
* write-data-in-file.php
*
* @author: Onirudda Odikare Jhalak <jhalak1983@gmail.com>
* @created on: 6/10/18
*/
require_once "vendor/autoload.php";
if (count($argv) < 4) {
print "Argument missing: " . PHP_EOL;
print "Example: php write-data-in-file.php [filename] [startId] [endId]" . PHP_EOL;
exit();
}
$filename = $argv[1];
$startId = $argv[2];
$endId = $argv[3];
printf("Writing %d records in file %s" . PHP_EOL, ($endId - $startId), $filename);
$faker = Faker\Factory::create();
try {
TimeTracker::start();
$fileHandler = fopen($filename, "w");
for ($i = $startId; $i <= $endId; $i++) {
// Prepare the data raw
$date = $faker->date('Y-m-d');
$data = [
$i,
(string) $date,
$faker->name,
(string) $faker->numberBetween(10000000, 99999999999999),
str_replace("\n", "", $faker->address)
];
// write data in as CSV in file
fputcsv($fileHandler, $data, "\t");
// Show a signal that you are not dead yet :)
if ($i % 10000 == 0) {
echo ".";
}
}
fclose($fileHandler);
// Track how much time it took to write that data in file
TimeTracker::end();
TimeTracker::showTimeDiff();
} catch (Exception $e) {
echo $e->getMessage();
}