Skip to content

Commit 34ce05f

Browse files
committed
dev
1 parent 73cf740 commit 34ce05f

File tree

4 files changed

+157
-165
lines changed

4 files changed

+157
-165
lines changed

examples/parse.php

+20-4
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,31 @@
55
$factory = new Udger\ParserFactory(sys_get_temp_dir() . "/udgercache/udgerdb_v4.dat");
66
$parser = $factory->getParser();
77

8-
//$parser->setCacheEnable(false);
8+
$parser->setCacheEnable(false);
99
//$parser->setCacheSize(4000);
1010

1111
try {
12-
$parser->setUA('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36');
13-
$parser->setIP("66.249.64.1");
12+
//$parser->setUA('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36');
13+
//$parser->setIP("66.249.64.1");
14+
15+
$parser->setHeaders('Sec-Ch-Ua: "Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"
16+
Sec-Ch-Ua-Mobile: ?0
17+
Sec-Ch-Ua-Full-Version: "104.0.5112.102"
18+
Sec-Ch-Ua-Arch: "x86"
19+
Sec-Ch-Ua-Platform: "Windows"
20+
Sec-Ch-Ua-Platform-Version: "14.0.0"
21+
Sec-Ch-Ua-Model: ""
22+
Sec-Ch-Ua-Bitness: "64"
23+
Sec-Ch-Ua-Full-Version-List: "Chromium";v="104.0.5112.102", " Not A;Brand";v="99.0.0.0", "Google Chrome";v="104.0.5112.102"
24+
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36');
25+
26+
1427

1528
$ret = $parser->parse();
16-
var_dump($ret);
29+
//var_dump($ret);
30+
$parser->setUA('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36');
31+
$ret = $parser->parse();
32+
//var_dump($ret);
1733
} catch (Exception $ex) {
1834
echo "Error: " . $ex->getMessage(). PHP_EOL;
1935
}

src/Helper/Header.php

+34-10
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,41 @@ class Header implements HeaderInterface{
1212
*/
1313
public function parseHeaders($headers, $ret)
1414
{
15-
/*
16-
$ret = array('SecChUa' => '',
17-
'SecChUaFullVersionList' => '',
18-
'SecChUaMobile' => '',
19-
'SecChUaFullVersion' => '',
20-
'SecChUaPlatform' => '',
21-
'SecChUaPlatformVersion' => '',
22-
'SecChUaModel' => ''
23-
);
24-
*/
2515

16+
foreach(preg_split("/((\r?\n)|(\r\n?))/", $headers) as $line){
17+
18+
$header = explode(": ", $line);
19+
20+
if(strtolower($header[0]) == 'sec-ch-ua') {
21+
$ret['SecChUa'] = trim($header[1], '"');
22+
}
23+
else if(strtolower($header[0]) == 'sec-ch-ua-full-version-list') {
24+
$ret['SecChUaFullVersionList'] = trim($header[1], '"');
25+
}
26+
else if(strtolower($header[0]) == 'sec-ch-ua-mobile') { // ?0 or ?1
27+
if ($header[1] == "?1") {
28+
$ret['SecChUaMobile'] = "1";
29+
}
30+
else {
31+
$ret['SecChUaMobile'] = "0";
32+
}
33+
}
34+
else if(strtolower($header[0]) == 'sec-ch-ua-full-version') {
35+
$ret['SecChUaFullVersion'] = trim($header[1], '"');
36+
}
37+
else if(strtolower($header[0]) == 'sec-ch-ua-platform') {
38+
$ret['SecChUaPlatform'] = trim($header[1], '"');
39+
}
40+
else if(strtolower($header[0]) == 'sec-ch-ua-platform-version') {
41+
$ret['SecChUaPlatformVersion'] = trim($header[1], '"');
42+
}
43+
else if(strtolower($header[0]) == 'sec-ch-ua-model') {
44+
$ret['SecChUaModel'] = trim($header[1], '"');
45+
}
46+
else if(strtolower($header[0]) == 'user-agent') {
47+
$ret['ua'] = $header[1];
48+
}
49+
}
2650

2751

2852
return $ret;

0 commit comments

Comments
 (0)