-
Notifications
You must be signed in to change notification settings - Fork 0
/
availability.php
114 lines (96 loc) · 2.85 KB
/
availability.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
function getAvailability($day, $month, $lccp_trndtl,$name,$num){
error_reporting(0);
$url = 'www.indianrail.gov.in/cgi_bin/inet_accavl_cgi1.cgi';
$ch = curl_init($url);
$postFields = array (
'lccp_conc'=>'ZZZZZZ',
'lccp_quota'=>'GN',
'lccp_day'=>$day,
'lccp_month'=>$month,
'lccp_classopt'=>'SL',
'lccp_class1'=>'SL',
'lccp_class2'=>'ZZ',
'lccp_class3'=>'ZZ',
'lccp_class4'=>'ZZ',
'lccp_class5'=>'ZZ',
'lccp_class6'=>'ZZ',
'lccp_class7'=>'ZZ',
'lccp_class8'=>'ZZ',
'lccp_class9'=>'ZZ',
'lccp_cls10'=>'ZZ',
'lccp_age'=>'ADULT_AGE',
'lccp_trndtl'=>$lccp_trndtl
);
//}
# Form data string
$postString = http_build_query($postFields);
$header = array (
'Host: www.indianrail.gov.in',
'Connection: keep-alive',
'Content-Length: '.strlen($postString), // MUST BE LENGTH OF POST STRING
'Cache-Control: max-age=0',
'Accept: text/html',
'Origin: http://www.indianrail.gov.in',
'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537',
'Content-Type: application/x-www-form-urlencoded',
'Referer: http://www.indianrail.gov.in/cgi_bin/inet_srcdest_cgi_date.cgi', // DIFFERENT from finding trains
'Accept-Encoding: ',
'Accept-Language: en-US,en;q=0.8'
);
# Setting options
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
// curl_setopt($ch, CURLOPT_VERBOSE, true);
// $verbose = fopen('php://temp', 'rw+');
// curl_setopt($ch, CURLOPT_STDERR, $verbose);
// USE ZZ FOR DEFAULT
$result = curl_exec($ch);
//echo $result;
curl_close($ch);
error_reporting(E_ERROR | E_PARSE);
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($result);
if($dom)
{
$xpath = new DOMXPath($dom);
$q = '///*[contains(concat(" ", normalize-space(@class), " "), " table_border ")]';
$nodes = $xpath->query($q);
foreach($nodes as $node){
$arr[] = $node;
}
//foreach ($nodes as $node)
// echo $arr[0]->nodeValue."<br>";
$nodes = $arr[1]->childNodes;
$arr = array();
foreach($nodes as $node)
$arr[] = $node;// gives tbody
//====for value
$nodes = $arr[0]->childNodes;
$arr = array();
foreach($nodes as $node)
$arr[] = $node;// gives tr
//var_dump($arr);
$data = array();
// $data[0][0]=$name; NO LONGER NEEDED
// $data[0][1]=$num;
for($i = 1, $j = 1; $i < count($arr); $i++, $j++){
$nodes = $arr[$i]->childNodes;
foreach($nodes as $node){
if(!ctype_space($node->nodeValue)){
$data[$j][] = $node->nodeValue;
}
}
}
if(!empty($data))
return json_encode($data);
//var_dump($data);
else return null;
}
else
return null;
}