Refactor stopsList page
[busui.git] / updatedb.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
53
54
55
56
57
<?php
include('lib/common-db.inc.php');
// Unzip cbrfeed.zip, import all csv files to database
$zip = zip_open(dirname(__FILE__) . "/cbrfeed.zip");
$tmpdir = "/tmp/cbrfeed/";
mkdir($tmpdir);
if (is_resource($zip)) {
        while ($zip_entry = zip_read($zip)) {
                $fp = fopen($tmpdir . zip_entry_name($zip_entry) , "w");
                if (zip_entry_open($zip, $zip_entry, "r")) {
                        echo "Extracting " . zip_entry_name($zip_entry) . "\n";
                        $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                        fwrite($fp, "$buf");
                        zip_entry_close($zip_entry);
                        fclose($fp);
                }
        }
        zip_close($zip);
}
                        
foreach (scandir($tmpdir) as $file) {
        if (!strpos($file, ".txt") === false) {
                $fieldseparator = ",";
                $lineseparator = "\n";
                $tablename = str_replace(".txt", "", $file);
                echo "Opening $file \n";
                $line = 0;
                $handle = fopen($tmpdir . $file, "r");
                while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                        if ($line > 0) {
                                $query = "insert into $tablename values(";
                                $valueCount = 0;
                                foreach ($data as $value) {
                                $query.=($valueCount >0 ? "','" :"'").pg_escape_string($value);
                                $valueCount++;
                                }
                                if ($tablename == "stops") {
                                $query.= "', ST_GeographyFromText('SRID=4326;POINT({$data[2]} {$data[0]})'));";
                                } else {
                                  $query.= "');";
                                }
                                if ($tablename =="stop_times" && $data[1] == "") {
                                  $query = "insert into $tablename (trip_id,stop_id,stop_sequence) values('{$data[0]}','{$data[3]}','{$data[4]}');";
                                }
                                 
                        }
                        $result = pg_query($conn, $query);
                        $line++;
                        if ($line % 10000 == 0) echo "$line records... \n";
                }
                fclose($handle);
                echo "Found a total of $line records in $file.\n";
 
        }
}
?>