PluginProbe
The WP Remote WordPress Plugin / 5.42
The WP Remote WordPress Plugin v5.42
6.72 6.69 6.65 6.62 6.48 6.47 4.87 4.97 5.05 5.09 5.16 5.22 5.24 5.25 5.38 5.41 5.42 5.45 5.47 5.53 5.56 5.65 5.68 5.72 5.73 All 53 releases
wpremote / protect / fw / rule / functions / array.php

array.php in The WP Remote WordPress Plugin 5.42, at protect/fw/rule/functions/array.php

284 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (!defined('ABSPATH') && !defined('MCDATAPATH')) exit;
3
4 if (!trait_exists('WPRProtectFWRuleArrayFunc_V542')) :
5 trait WPRProtectFWRuleArrayFunc_V542 {
6 private function _rf_inArray() {
7 $args = $this->processRuleFunctionParams(
8 'inArray',
9 func_num_args(),
10 func_get_args(),
11 2
12 );
13 $element = $args[0];
14 $array = $args[1];
15 $strict = isset($args[2]) ? $args[2] : false;
16
17 if (!is_array($array)) {
18 throw new WPRProtectRuleError_V542(
19 $this->addExState("inArray: 2nd param is not an array")
20 );
21 }
22
23 if (!is_bool($strict)) {
24 throw new WPRProtectRuleError_V542(
25 $this->addExState("inArray: 3rd param is not a boolean")
26 );
27 }
28
29 return in_array($element, $array, $strict);
30 }
31
32 private function _rf_recInArray() {
33 $args = $this->processRuleFunctionParams(
34 'recInArray',
35 func_num_args(),
36 func_get_args(),
37 2
38 );
39 $element = $args[0];
40 $array = $args[1];
41
42 if (is_array($array)) {
43 foreach ($array as $key => $value) {
44 if (is_array($value)) {
45 if ($this->_rf_recInArray($element, $value)) {
46 return true;
47 }
48 } else {
49 if ($value === $element) {
50 return true;
51 }
52 }
53 }
54 } else {
55 throw new WPRProtectRuleError_V542(
56 $this->addExState("recInArray: Expects an array")
57 );
58 }
59
60 return false;
61 }
62
63 private function _rf_arrayKeyExists() {
64 $args = $this->processRuleFunctionParams(
65 'arrayKeyExists',
66 func_num_args(),
67 func_get_args(),
68 2
69 );
70 $key = $args[0];
71 $array = $args[1];
72
73 if (!is_array($array)) {
74 throw new WPRProtectRuleError_V542(
75 $this->addExState("arrayKeyExists: Array must be of type array")
76 );
77 } elseif (!is_string($key) && !is_int($key)) {
78 throw new WPRProtectRuleError_V542(
79 $this->addExState("arrayKeyExists: Key must be of type string or int")
80 );
81 }
82
83 return array_key_exists($key, $array);
84 }
85
86 private function _rf_isArrayEmpty() {
87 $args = $this->processRuleFunctionParams(
88 'isArrayEmpty',
89 func_num_args(),
90 func_get_args(),
91 1,
92 ['array']
93 );
94 $array = $args[0];
95
96 return $this->_rf_isEmpty($array);
97 }
98
99 private function _rf_getArrayKeys() {
100 $args = $this->processRuleFunctionParams(
101 'getArrayKeys',
102 func_num_args(),
103 func_get_args(),
104 1,
105 ['array']
106 );
107 $array = $args[0];
108
109 return array_keys($array);
110 }
111
112 private function _rf_hasAnyArrayKey() {
113 $args = $this->processRuleFunctionParams(
114 'hasAnyArrayKey',
115 func_num_args(),
116 func_get_args(),
117 2,
118 ['array', 'array']
119 );
120 $array = $args[0];
121 $keys = $args[1];
122
123 foreach ($keys as $key) {
124 if (!is_int($key) && !is_string($key)) {
125 throw new WPRProtectRuleError_V542(
126 $this->addExState("hasAnyArrayKey: Key must be of type string or int")
127 );
128 }
129
130 if (array_key_exists($key, $array)) {
131 return true;
132 }
133 }
134
135 return false;
136 }
137
138 private function _rf_digArray() {
139 $args = $this->processRuleFunctionParams(
140 'digArray',
141 func_num_args(),
142 func_get_args(),
143 2,
144 ['array', 'array']
145 );
146 $array = $args[0];
147 $keys = $args[1];
148
149 foreach ($keys as $key) {
150 if (!is_int($key) && !is_string($key)) {
151 throw new WPRProtectRuleError_V542(
152 $this->addExState("digArray: Keys must be a valid array of string, or integer type")
153 );
154 }
155 }
156
157 return WPRHelper::digArray($array, $keys);
158 }
159
160 private function _rf_filterArray() {
161 $args = $this->processRuleFunctionParams(
162 'filterArray',
163 func_num_args(),
164 func_get_args(),
165 2,
166 ['array', 'array']
167 );
168 $array = $args[0];
169 $keys = $args[1];
170
171 foreach ($keys as $key) {
172 if (!is_int($key) && !is_string($key)) {
173 throw new WPRProtectRuleError_V542(
174 $this->addExState("filterArray: Keys must be a valid array of string, or integer type")
175 );
176 }
177 }
178
179 return WPRHelper::filterArray($array, $keys);
180 }
181
182 private function _rf_getArrayVal() {
183 $args = $this->processRuleFunctionParams(
184 'getArrayVal',
185 func_num_args(),
186 func_get_args(),
187 2,
188 ['array']
189 );
190 $array = $args[0];
191 $key = $args[1];
192
193 if (!is_string($key) && !is_int($key)) {
194 throw new WPRProtectRuleError_V542(
195 $this->addExState("getArrayVal: Key must be a valid string or integer")
196 );
197 }
198
199 if (array_key_exists($key, $array)) {
200 return $array[$key];
201 }
202
203 return null;
204 }
205
206 private function _rf_arrayIntersection() {
207 $args = $this->processRuleFunctionParams(
208 'arrayIntersection',
209 func_num_args(),
210 func_get_args(),
211 2,
212 ['array', 'array']
213 );
214 $array1 = $args[0];
215 $array2 = $args[1];
216
217 return array_intersect($array1, $array2);
218 }
219
220 private function _rf_arrayIntersectionAssoc() {
221 $args = $this->processRuleFunctionParams(
222 'arrayIntersectionAssoc',
223 func_num_args(),
224 func_get_args(),
225 2,
226 ['array', 'array']
227 );
228 $array1 = $args[0];
229 $array2 = $args[1];
230
231 return array_intersect_assoc($array1, $array2);
232 }
233
234 private function _rf_arrayUnion() {
235 $args = $this->processRuleFunctionParams(
236 'arrayUnion',
237 func_num_args(),
238 func_get_args(),
239 2,
240 ['array', 'array']
241 );
242 $array1 = $args[0];
243 $array2 = $args[1];
244
245 return ($array1 + $array2);
246 }
247
248 private function _rf_arrayMerge() {
249 $args = $this->processRuleFunctionParams(
250 'arrayMerge',
251 func_num_args(),
252 func_get_args(),
253 2,
254 ['array', 'array']
255 );
256 $array1 = $args[0];
257 $array2 = $args[1];
258
259 return array_merge($array1, $array2);
260 }
261
262 private function _rf_arrayJoin() {
263 $args = $this->processRuleFunctionParams(
264 'arrayJoin',
265 func_num_args(),
266 func_get_args(),
267 2,
268 ['string', 'array']
269 );
270 $separator = $args[0];
271 $array = $args[1];
272
273 foreach ($array as $element) {
274 if (!is_scalar($element)) {
275 throw new WPRProtectRuleError_V542(
276 $this->addExState("arrayJoin: Array element must be of scalar type")
277 );
278 }
279 }
280
281 return implode($separator, $array);
282 }
283 }
284 endif;