-
Notifications
You must be signed in to change notification settings - Fork 2
/
zipcode.php
executable file
·65 lines (54 loc) · 1.43 KB
/
zipcode.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
58
59
60
61
62
63
64
65
<?php
define('ZIPCODE_URL', 'http://www.israelpost.co.il/zip_data.nsf/SearchZip?');
//?OpenAgent&Location=<location>&POB=<pob>&Street=<street>&House=<house>&Entrance=');
function GET_or_default($key, $default)
{
if (!empty($_GET[$key])) {
return $_GET[$key];
} else {
return $default;
}
}
function print_out($success, $zipcode = null)
{
if ($success) {
header('Status: 200 OK');
} else {
header('Status: 500 Internal Server Error');
}
header('Content-Type: application/json');
$result = array('success' => (bool) $success);
if (!empty($result)) {
$result['zipcode'] = $zipcode;
}
if (!$success) {
$result['error'] = 'An error has occured. Maybe one of the parameters is missing?';
}
print json_encode($result);
exit;
}
$location = GET_or_default('location', 'תל אביב');
$pob = GET_or_default('pob', null);
$street = GET_or_default('street', null);
$house = GET_or_default('house', null);
$params = array('OpenAgent' => '', 'location' => $location);
switch (TRUE) {
case (!empty($pob)):
$params['pob'] = $pob;
break;
case (!empty($street) && !empty($house)):
$params['street'] = $street;
$params['house'] = $house;
break;
default:
print_out(false);
}
$result = @file_get_contents(ZIPCODE_URL . http_build_query($params));
$result = @preg_match('/<body(?:.*?)>\s*(?:RES)?8?(\d*)/', $result, $matches);
if ($result && !empty($matches[1])) {
print_out(true, $matches[1]);
}
else {
print_out(false);
}
?>