/[projects]/tog-php/function.php
ViewVC logotype

Contents of /tog-php/function.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 300 - (show annotations) (download)
Wed Sep 2 13:49:30 2009 UTC (14 years, 8 months ago) by torben
File size: 5224 byte(s)
Initial import


1 <?
2
3 function download($url)
4 {
5 $temp_buffer = file_get_contents($url);
6
7 $buffer = str_replace("\"", "'", $temp_buffer);
8 return $buffer;
9 }
10
11 function stationList()
12 {
13 $stations = array();
14
15 $url = "http://www.bane.dk/visStationsliste.asp?artikelID=4277";
16 $buffer = download($url);
17
18 $pos = 0;
19 $pos = stripos($buffer, "<td class='Oversigt'>");
20 $sverige = stripos($buffer, "Sverige");
21 $s_tog = stripos($buffer, "<b>S-tog</b>");
22
23 while (1) {
24
25 $pos = stripos($buffer, "W=", $pos);
26
27 if ($pos == FALSE)
28 break;
29
30 if ($pos >= $sverige && $pos<$s_tog) {
31 $pos = $s_tog;
32 continue;
33 }
34
35 $stationEnd = stripos($buffer, "'>", $pos);
36
37 $statStr = substr($buffer,$pos, $stationEnd-$pos);
38 $pos++;
39
40 $pairs = split("&amp;", $statStr);
41
42
43 $entry = array();
44 foreach ($pairs as $pair) {
45 $tmppair = split("=", $pair);
46 $key = strtolower($tmppair[0]);
47 if ($key == "artikelid")
48 continue;
49 $entry[ $key ] = $tmppair[1];
50 }
51
52 $stations[] = $entry;
53
54
55 }
56 return $stations;
57 }
58
59 function lastUpdateString( $updateCode )
60 {
61 switch( $updateCode )
62 {
63 case '1':
64 $result = "< 3 min";
65 break;
66 case '2':
67 $result = "3 - 10 min";
68 break;
69 case '3':
70 $result = ">10 min";
71 break;
72 case '4':
73 $result = "No info";
74 break;
75 default:
76 $result = "Unknown:" . $buffer[$pos];
77 }
78
79 return $result;
80 }
81
82 function tog3($search)
83 {
84 $result = array();
85
86 $current = tog("FJRN", $search, "");
87 $result2 = array_merge($result,$current);
88 $result = $result2;
89
90 $current = tog("S2", $search, "");
91 $result2 = array_merge($result,$current);
92 $result = $result;
93
94 return $result;
95 }
96
97 function tog2($search)
98 {
99 // echo "<!-- $search -->\n";
100 $result = array();
101
102 $search = strtolower($search);
103 $stations = stationList();
104 for ($i=0; $i<sizeof($stations); $i++) {
105 $row = $stations[$i];
106
107 $type = $row["w"];
108 $stationcode = $row["s"];
109 $stationname = $row["statnavn"];
110
111 //echo "<!-- $type $stationcode $stationname -->\n";
112 $lcstation = strtolower($stationname);
113 if ($search == $lcstation ||
114 strpos($search, $lcstation) != FALSE ||
115 strpos($lcstation,$search) != FALSE)
116 {
117 $current = tog($type,$stationcode,$stationname);
118 $result2 = array_merge($result,$current);
119 $result = $result2;
120 }
121 }
122 return $result;
123 }
124
125
126 function tog($type, $stationcode, $stationname)
127 {
128 $result = array();
129
130 $url = "http://www.bane.dk/visStation.asp?W=$type&S=$stationcode&artikelId=4275&statnavn=$stationname";
131
132 $buffer = download($url);
133
134
135 $pos=0;
136 $ankomstpos = stripos($buffer, "id='ankomsttabel'");
137
138 $count = 0;
139 while(1) {
140
141 // start med tid
142 $pos = stripos($buffer, "<td CLASS='Tid'>", $pos);
143
144 if ($pos == FALSE)
145 break;
146
147 if ($pos > $ankomstpos)
148 break;
149
150 $pos = stripos($buffer, "<span", $pos);
151
152 $start = $pos;
153 $stop = stripos($buffer, "</td>", $pos);
154 $time = substr($buffer,$start, $stop-$start);
155 $time = strip_tags($time);
156 $result[$count][0] = trim($time);
157
158 //Opdaterings-info
159 $pos = stripos($buffer, "<TD CLASS='opdater'>", $pos);
160 $pos = stripos($buffer, "src='",$pos);
161 $pos = stripos($buffer, "opdater",$pos);
162 $pos += 7;
163 $result[$count][1] = $buffer[$pos];
164
165
166 // Type
167 $pos = stripos($buffer, "<TD CLASS='TogType'>", $pos);
168 $start = $pos + 20;
169 $stop = stripos($buffer, "</td>", $pos);
170 $type = substr($buffer, $start, $stop-$start);
171 $type = strip_tags($type);
172 $type = str_replace("&nbsp;", " ", $type);
173 $result[$count][2] = $type;
174
175 // Destination
176 $pos = stripos($buffer, "<TD CLASS='Til'>", $pos);
177 $start = $pos + 16;
178 $stop = stripos($buffer,"</td>", $pos);
179 $destination = substr($buffer, $start, $stop-$start);
180 $destination = strip_tags($destination);
181 $destination = str_replace("&nbsp;", " ", $destination);
182 $result[$count][3] = $destination;
183
184 //origin
185 $pos = stripos($buffer, "<TD CLASS='visikke'>", $pos);
186 $start = $pos + 20;
187 $stop = stripos($buffer,"</td>", $pos);
188 $origin = substr($buffer, $start, $stop-$start);
189 $origin = strip_tags($origin);
190 $origin = str_replace("&nbsp;", " ", $origin);
191 $result[$count][4] = $origin;
192
193 //current location
194 $pos++; //since origin and current use the same search pattern, we must increase the position
195 //so we don't get origin twice.
196 $pos = stripos($buffer, "<TD CLASS='visikke'>", $pos);
197 $start = $pos + 20;
198 $stop = stripos($buffer,"</td>", $pos);
199 $current = substr($buffer, $start, $stop-$start);
200 $current = strip_tags($current);
201 $current = str_replace("&nbsp;", " ", $current);
202 $result[$count][5] = $current;
203
204 //Status
205 $pos = stripos($buffer, "<TD CLASS='Status'>", $pos);
206 $start = $pos + 19;
207 $stop = stripos($buffer,"</td>", $pos);
208 $status = substr($buffer, $start, $stop-$start);
209 $status = str_replace("&nbsp;", " ", $status);
210 $status = strip_tags($status);
211 $result[$count][6] = $status;
212
213 //note
214 $pos = stripos($buffer, "<TD CLASS='Bem'>", $pos);
215 $start = $pos + 16;
216 $stop = stripos($buffer,"</td>", $pos);
217 $note = substr($buffer, $start, $stop-$start);
218 $note = str_replace("&nbsp;", " ", $note);
219 $hasExtraI = stripos($note, ">i<") != FALSE;
220 $note = strip_tags($note);
221 if ($hasExtraI)
222 $note = substr($note,0, strlen($note)-2);
223 $result[$count][7] = $note;
224
225 $count++;
226 }
227
228 return $result;
229 }
230
231 ?>

  ViewVC Help
Powered by ViewVC 1.1.20