@@ -6,7 +6,7 @@ class Utils
66{
77 public static function isNullOrEmptyString ($ value )
88 {
9- return (!isset ($ value ) || trim ($ value ) === '' );
9+ return (!isset ($ value ) || ! is_string ( $ value ) || trim ($ value ) === '' );
1010 }
1111
1212 public static function boolToString ($ value )
@@ -17,6 +17,19 @@ public static function boolToString($value)
1717
1818 return $ value ? "true " : "false " ;
1919 }
20+
21+ public static function getParameterByName ($ url , $ name )
22+ {
23+ $ name = preg_quote ($ name , '/ ' );
24+ $ pattern = '/[?&] ' . $ name . '(=([^&#]*)|&|#|$)/ ' ;
25+ if (preg_match ($ pattern , $ url , $ matches )) {
26+ if (!isset ($ matches [2 ])) return "" ;
27+ $ response = urldecode (str_replace ('+ ' , ' ' , $ matches [2 ]));
28+ return $ response ;
29+ }
30+
31+ return null ;
32+ }
2033}
2134
2235class QueueUrlParams
@@ -47,65 +60,72 @@ public static function extractQueueParams($queueitToken)
4760 return null ;
4861 }
4962
50- $ result = new QueueUrlParams ();
51- $ result ->queueITToken = $ queueitToken ;
52- $ paramsNameValueList = explode (QueueUrlParams::KeyValueSeparatorGroupChar, $ result ->queueITToken );
53-
54- foreach ($ paramsNameValueList as $ pNameValue ) {
55- $ paramNameValueArr = explode (QueueUrlParams::KeyValueSeparatorChar, $ pNameValue );
56-
57- if (count ($ paramNameValueArr ) != 2 ) {
58- continue ;
59- }
60-
61- switch ($ paramNameValueArr [0 ]) {
62- case QueueUrlParams::TimeStampKey: {
63- if (is_numeric ($ paramNameValueArr [1 ])) {
64- $ result ->timeStamp = intval ($ paramNameValueArr [1 ]);
65- } else {
66- $ result ->timeStamp = 0 ;
63+ try {
64+
65+ $ result = new QueueUrlParams ();
66+ $ result ->queueITToken = $ queueitToken ;
67+ $ paramsNameValueList = explode (QueueUrlParams::KeyValueSeparatorGroupChar, $ result ->queueITToken );
68+
69+ foreach ($ paramsNameValueList as $ pNameValue ) {
70+ $ paramNameValueArr = explode (QueueUrlParams::KeyValueSeparatorChar, $ pNameValue );
71+
72+ if (count ($ paramNameValueArr ) != 2 ) {
73+ continue ;
74+ }
75+
76+ switch ($ paramNameValueArr [0 ]) {
77+ case QueueUrlParams::TimeStampKey: {
78+ if (is_numeric ($ paramNameValueArr [1 ])) {
79+ $ result ->timeStamp = intval ($ paramNameValueArr [1 ]);
80+ } else {
81+ $ result ->timeStamp = 0 ;
82+ }
83+ break ;
84+ }
85+ case QueueUrlParams::CookieValidityMinutesKey: {
86+ if (is_numeric ($ paramNameValueArr [1 ])) {
87+ $ result ->cookieValidityMinutes = intval ($ paramNameValueArr [1 ]);
88+ }
89+ break ;
6790 }
68- break ;
69- }
70- case QueueUrlParams::CookieValidityMinutesKey: {
71- if (is_numeric ($ paramNameValueArr [1 ])) {
72- $ result ->cookieValidityMinutes = intval ($ paramNameValueArr [1 ]);
91+ case QueueUrlParams::EventIdKey: {
92+ $ result ->eventId = $ paramNameValueArr [1 ];
93+ break ;
7394 }
74- break ;
75- }
76- case QueueUrlParams::EventIdKey: {
77- $ result ->eventId = $ paramNameValueArr [1 ];
78- break ;
79- }
80- case QueueUrlParams::ExtendableCookieKey: {
81- $ result ->extendableCookie = $ paramNameValueArr [1 ] === 'True ' || $ paramNameValueArr [1 ] === 'true ' ;
82- break ;
83- }
84- case QueueUrlParams::HashKey: {
85- $ result ->hashCode = $ paramNameValueArr [1 ];
86- break ;
87- }
88- case QueueUrlParams::QueueIdKey: {
89- $ result ->queueId = $ paramNameValueArr [1 ];
90- break ;
91- }
92- case QueueUrlParams::RedirectTypeKey: {
93- $ result ->redirectType = $ paramNameValueArr [1 ];
94- break ;
95- }
95+ case QueueUrlParams::ExtendableCookieKey: {
96+ $ result ->extendableCookie = $ paramNameValueArr [1 ] === 'True ' || $ paramNameValueArr [1 ] === 'true ' ;
97+ break ;
98+ }
99+ case QueueUrlParams::HashKey: {
100+ $ result ->hashCode = $ paramNameValueArr [1 ];
101+ break ;
102+ }
103+ case QueueUrlParams::QueueIdKey: {
104+ $ result ->queueId = $ paramNameValueArr [1 ];
105+ break ;
106+ }
107+ case QueueUrlParams::RedirectTypeKey: {
108+ $ result ->redirectType = $ paramNameValueArr [1 ];
109+ break ;
110+ }
111+ }
96112 }
97- }
98113
99- $ result ->queueITTokenWithoutHash = str_replace (
100- QueueUrlParams::KeyValueSeparatorGroupChar
101- . QueueUrlParams::HashKey
102- . QueueUrlParams::KeyValueSeparatorChar
103- . $ result ->hashCode ,
104- "" ,
105- $ result ->queueITToken
106- );
114+ $ result ->queueITTokenWithoutHash = str_replace (
115+ QueueUrlParams::KeyValueSeparatorGroupChar
116+ . QueueUrlParams::HashKey
117+ . QueueUrlParams::KeyValueSeparatorChar
118+ . $ result ->hashCode ,
119+ "" ,
120+ $ result ->queueITToken
121+ );
107122
108- return $ result ;
123+ return $ result ;
124+ }
125+ catch (\Exception $ e )
126+ {
127+ return null ;
128+ }
109129 }
110130}
111131
0 commit comments