@@ -12,17 +12,41 @@ class Header implements HeaderInterface{
12
12
*/
13
13
public function parseHeaders ($ headers , $ ret )
14
14
{
15
- /*
16
- $ret = array('SecChUa' => '',
17
- 'SecChUaFullVersionList' => '',
18
- 'SecChUaMobile' => '',
19
- 'SecChUaFullVersion' => '',
20
- 'SecChUaPlatform' => '',
21
- 'SecChUaPlatformVersion' => '',
22
- 'SecChUaModel' => ''
23
- );
24
- */
25
15
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
+ }
26
50
27
51
28
52
return $ ret ;
0 commit comments