@@ -76,17 +76,17 @@ discard block |
||
76 | 76 | public static function get($key, $default = null) { |
77 | 77 | $parts = explode('.', $key); |
78 | 78 | $value = null; |
79 | - foreach($parts as $part) { |
|
80 | - if($value === null) { |
|
81 | - if(isset(self::$config[$part])) { |
|
79 | + foreach ($parts as $part) { |
|
80 | + if ($value === null) { |
|
81 | + if (isset(self::$config[$part])) { |
|
82 | 82 | $value = self::$config[$part]; |
83 | - }else{ |
|
83 | + } else { |
|
84 | 84 | break; |
85 | 85 | } |
86 | - }else{ |
|
87 | - if(isset($value[$part])) { |
|
86 | + } else { |
|
87 | + if (isset($value[$part])) { |
|
88 | 88 | $value = $value[$part]; |
89 | - }else{ |
|
89 | + } else { |
|
90 | 90 | break; |
91 | 91 | } |
92 | 92 | } |
@@ -176,7 +176,7 @@ discard block |
||
176 | 176 | */ |
177 | 177 | public function setConfig($config) { |
178 | 178 | |
179 | - if(is_array($config) === false) { |
|
179 | + if (is_array($config) === false) { |
|
180 | 180 | $config = require $config; |
181 | 181 | } |
182 | 182 | |
@@ -186,17 +186,17 @@ discard block |
||
186 | 186 | $vendor_config = require $path; |
187 | 187 | $config = $this->array_merge_recursive_distinct($vendor_config, $config); |
188 | 188 | |
189 | - if(is_array($config)){ |
|
190 | - if(isset($config['default'])){ |
|
191 | - if(isset($config['accounts']) && $config['default'] != false){ |
|
189 | + if (is_array($config)) { |
|
190 | + if (isset($config['default'])) { |
|
191 | + if (isset($config['accounts']) && $config['default'] != false) { |
|
192 | 192 | |
193 | 193 | $default_config = $vendor_config['accounts']['default']; |
194 | - if(isset($config['accounts'][$config['default']])){ |
|
194 | + if (isset($config['accounts'][$config['default']])) { |
|
195 | 195 | $default_config = array_merge($default_config, $config['accounts'][$config['default']]); |
196 | 196 | } |
197 | 197 | |
198 | - if(is_array($config['accounts'])){ |
|
199 | - foreach($config['accounts'] as $account_key => $account){ |
|
198 | + if (is_array($config['accounts'])) { |
|
199 | + foreach ($config['accounts'] as $account_key => $account) { |
|
200 | 200 | $config['accounts'][$account_key] = array_merge($default_config, $account); |
201 | 201 | } |
202 | 202 | } |
@@ -232,23 +232,23 @@ discard block |
||
232 | 232 | $arrays = func_get_args(); |
233 | 233 | $base = array_shift($arrays); |
234 | 234 | |
235 | - if(!is_array($base)) $base = empty($base) ? array() : array($base); |
|
235 | + if (!is_array($base)) $base = empty($base) ? array() : array($base); |
|
236 | 236 | |
237 | - foreach($arrays as $append) { |
|
237 | + foreach ($arrays as $append) { |
|
238 | 238 | |
239 | - if(!is_array($append)) $append = array($append); |
|
239 | + if (!is_array($append)) $append = array($append); |
|
240 | 240 | |
241 | - foreach($append as $key => $value) { |
|
241 | + foreach ($append as $key => $value) { |
|
242 | 242 | |
243 | - if(!array_key_exists($key, $base) and !is_numeric($key)) { |
|
243 | + if (!array_key_exists($key, $base) and !is_numeric($key)) { |
|
244 | 244 | $base[$key] = $append[$key]; |
245 | 245 | continue; |
246 | 246 | } |
247 | 247 | |
248 | - if(is_array($value) or is_array($base[$key])) { |
|
248 | + if (is_array($value) or is_array($base[$key])) { |
|
249 | 249 | $base[$key] = $this->array_merge_recursive_distinct($base[$key], $append[$key]); |
250 | - } else if(is_numeric($key)) { |
|
251 | - if(!in_array($value, $base)) $base[] = $value; |
|
250 | + } else if (is_numeric($key)) { |
|
251 | + if (!in_array($value, $base)) $base[] = $value; |
|
252 | 252 | } else { |
253 | 253 | $base[$key] = $value; |
254 | 254 | } |
@@ -82,10 +82,10 @@ discard block |
||
82 | 82 | * @throws MethodNotFoundException |
83 | 83 | */ |
84 | 84 | public function __call($method, $arguments) { |
85 | - if(strtolower(substr($method, 0, 3)) === 'get') { |
|
85 | + if (strtolower(substr($method, 0, 3)) === 'get') { |
|
86 | 86 | $name = preg_replace('/(.)(?=[A-Z])/u', '$1_', substr(strtolower($method), 3)); |
87 | 87 | |
88 | - if(in_array($name, array_keys($this->attributes))) { |
|
88 | + if (in_array($name, array_keys($this->attributes))) { |
|
89 | 89 | return $this->attributes[$name]; |
90 | 90 | } |
91 | 91 | |
@@ -111,7 +111,7 @@ discard block |
||
111 | 111 | * @return Attribute|mixed |
112 | 112 | */ |
113 | 113 | public function get($name) { |
114 | - if(isset($this->attributes[$name])) { |
|
114 | + if (isset($this->attributes[$name])) { |
|
115 | 115 | return $this->attributes[$name]; |
116 | 116 | } |
117 | 117 | |
@@ -127,23 +127,23 @@ discard block |
||
127 | 127 | * @return Attribute |
128 | 128 | */ |
129 | 129 | public function set($name, $value, $strict = false) { |
130 | - if(isset($this->attributes[$name]) && $strict === false) { |
|
130 | + if (isset($this->attributes[$name]) && $strict === false) { |
|
131 | 131 | if ($this->attributize) { |
132 | 132 | $this->attributes[$name]->add($value, true); |
133 | - }else{ |
|
134 | - if(isset($this->attributes[$name])) { |
|
133 | + } else { |
|
134 | + if (isset($this->attributes[$name])) { |
|
135 | 135 | if (is_array($this->attributes[$name]) == false) { |
136 | 136 | $this->attributes[$name] = [$this->attributes[$name], $value]; |
137 | - }else{ |
|
137 | + } else { |
|
138 | 138 | $this->attributes[$name][] = $value; |
139 | 139 | } |
140 | - }else{ |
|
140 | + } else { |
|
141 | 141 | $this->attributes[$name] = $value; |
142 | 142 | } |
143 | 143 | } |
144 | - }elseif($this->attributize == false){ |
|
144 | + }elseif ($this->attributize == false) { |
|
145 | 145 | $this->attributes[$name] = $value; |
146 | - }else{ |
|
146 | + } else { |
|
147 | 147 | $this->attributes[$name] = new Attribute($name, $value); |
148 | 148 | } |
149 | 149 | |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | public function find($pattern) { |
160 | 160 | if (preg_match_all($pattern, $this->raw, $matches)) { |
161 | 161 | if (isset($matches[1])) { |
162 | - if(count($matches[1]) > 0) { |
|
162 | + if (count($matches[1]) > 0) { |
|
163 | 163 | return $matches[1][0]; |
164 | 164 | } |
165 | 165 | } |
@@ -172,7 +172,7 @@ discard block |
||
172 | 172 | * |
173 | 173 | * @return string|null |
174 | 174 | */ |
175 | - public function getBoundary(){ |
|
175 | + public function getBoundary() { |
|
176 | 176 | $boundary = $this->find("/boundary\=(.*)/i"); |
177 | 177 | |
178 | 178 | if ($boundary === null) { |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | * |
198 | 198 | * @throws InvalidMessageDateException |
199 | 199 | */ |
200 | - protected function parse(){ |
|
200 | + protected function parse() { |
|
201 | 201 | $header = $this->rfc822_parse_headers($this->raw); |
202 | 202 | |
203 | 203 | $this->extractAddresses($header); |
@@ -215,7 +215,7 @@ discard block |
||
215 | 215 | $this->parseDate($header); |
216 | 216 | foreach ($header as $key => $value) { |
217 | 217 | $key = trim(rtrim(strtolower($key))); |
218 | - if(!isset($this->attributes[$key])){ |
|
218 | + if (!isset($this->attributes[$key])) { |
|
219 | 219 | $this->set($key, $value); |
220 | 220 | } |
221 | 221 | } |
@@ -231,19 +231,19 @@ discard block |
||
231 | 231 | * |
232 | 232 | * @return object |
233 | 233 | */ |
234 | - public function rfc822_parse_headers($raw_headers){ |
|
234 | + public function rfc822_parse_headers($raw_headers) { |
|
235 | 235 | $headers = []; |
236 | 236 | $imap_headers = []; |
237 | 237 | if (extension_loaded('imap') && $this->config["rfc822"]) { |
238 | 238 | $raw_imap_headers = (array) \imap_rfc822_parse_headers($this->raw); |
239 | - foreach($raw_imap_headers as $key => $values) { |
|
239 | + foreach ($raw_imap_headers as $key => $values) { |
|
240 | 240 | $key = str_replace("-", "_", $key); |
241 | 241 | $imap_headers[$key] = $values; |
242 | 242 | } |
243 | 243 | } |
244 | 244 | $lines = explode("\r\n", str_replace("\r\n\t", ' ', $raw_headers)); |
245 | 245 | $prev_header = null; |
246 | - foreach($lines as $line) { |
|
246 | + foreach ($lines as $line) { |
|
247 | 247 | if (substr($line, 0, 1) === "\n") { |
248 | 248 | $line = substr($line, 1); |
249 | 249 | } |
@@ -263,19 +263,19 @@ discard block |
||
263 | 263 | } |
264 | 264 | if (is_array($headers[$prev_header])) { |
265 | 265 | $headers[$prev_header][] = $line; |
266 | - }else{ |
|
266 | + } else { |
|
267 | 267 | $headers[$prev_header] .= $line; |
268 | 268 | } |
269 | 269 | } |
270 | - }else{ |
|
270 | + } else { |
|
271 | 271 | if (($pos = strpos($line, ":")) > 0) { |
272 | 272 | $key = trim(rtrim(strtolower(substr($line, 0, $pos)))); |
273 | 273 | $key = str_replace("-", "_", $key); |
274 | 274 | |
275 | 275 | $value = trim(rtrim(substr($line, $pos + 1))); |
276 | 276 | if (isset($headers[$key])) { |
277 | - $headers[$key][] = $value; |
|
278 | - }else{ |
|
277 | + $headers[$key][] = $value; |
|
278 | + } else { |
|
279 | 279 | $headers[$key] = [$value]; |
280 | 280 | } |
281 | 281 | $prev_header = $key; |
@@ -283,10 +283,10 @@ discard block |
||
283 | 283 | } |
284 | 284 | } |
285 | 285 | |
286 | - foreach($headers as $key => $values) { |
|
286 | + foreach ($headers as $key => $values) { |
|
287 | 287 | if (isset($imap_headers[$key])) continue; |
288 | 288 | $value = null; |
289 | - switch($key){ |
|
289 | + switch ($key) { |
|
290 | 290 | case 'from': |
291 | 291 | case 'to': |
292 | 292 | case 'cc': |
@@ -301,7 +301,7 @@ discard block |
||
301 | 301 | break; |
302 | 302 | default: |
303 | 303 | if (is_array($values)) { |
304 | - foreach($values as $k => $v) { |
|
304 | + foreach ($values as $k => $v) { |
|
305 | 305 | if ($v == "") { |
306 | 306 | unset($values[$k]); |
307 | 307 | } |
@@ -333,12 +333,12 @@ discard block |
||
333 | 333 | * @return array The decoded elements are returned in an array of objects, where each |
334 | 334 | * object has two properties, charset and text. |
335 | 335 | */ |
336 | - public function mime_header_decode($text){ |
|
336 | + public function mime_header_decode($text) { |
|
337 | 337 | if (extension_loaded('imap')) { |
338 | 338 | return \imap_mime_header_decode($text); |
339 | 339 | } |
340 | 340 | $charset = $this->getEncoding($text); |
341 | - return [(object)[ |
|
341 | + return [(object) [ |
|
342 | 342 | "charset" => $charset, |
343 | 343 | "text" => $this->convertEncoding($text, $charset) |
344 | 344 | ]]; |
@@ -423,7 +423,7 @@ discard block |
||
423 | 423 | } |
424 | 424 | }elseif (property_exists($structure, 'charset')) { |
425 | 425 | return EncodingAliases::get($structure->charset, $this->fallback_encoding); |
426 | - }elseif (is_string($structure) === true){ |
|
426 | + }elseif (is_string($structure) === true) { |
|
427 | 427 | return mb_detect_encoding($structure); |
428 | 428 | } |
429 | 429 | |
@@ -456,7 +456,7 @@ discard block |
||
456 | 456 | if ($value !== null) { |
457 | 457 | $is_utf8_base = $this->is_uft8($value); |
458 | 458 | |
459 | - if($decoder === 'utf-8' && extension_loaded('imap')) { |
|
459 | + if ($decoder === 'utf-8' && extension_loaded('imap')) { |
|
460 | 460 | $value = \imap_utf8($value); |
461 | 461 | $is_utf8_base = $this->is_uft8($value); |
462 | 462 | if ($is_utf8_base) { |
@@ -465,14 +465,14 @@ discard block |
||
465 | 465 | if ($this->notDecoded($original_value, $value)) { |
466 | 466 | $decoded_value = $this->mime_header_decode($value); |
467 | 467 | if (count($decoded_value) > 0) { |
468 | - if(property_exists($decoded_value[0], "text")) { |
|
468 | + if (property_exists($decoded_value[0], "text")) { |
|
469 | 469 | $value = $decoded_value[0]->text; |
470 | 470 | } |
471 | 471 | } |
472 | 472 | } |
473 | - }elseif($decoder === 'iconv' && $is_utf8_base) { |
|
473 | + }elseif ($decoder === 'iconv' && $is_utf8_base) { |
|
474 | 474 | $value = iconv_mime_decode($value); |
475 | - }elseif($is_utf8_base){ |
|
475 | + }elseif ($is_utf8_base) { |
|
476 | 476 | $value = mb_decode_mimeheader($value); |
477 | 477 | } |
478 | 478 | |
@@ -495,7 +495,7 @@ discard block |
||
495 | 495 | * @return array |
496 | 496 | */ |
497 | 497 | private function decodeArray($values) { |
498 | - foreach($values as $key => $value) { |
|
498 | + foreach ($values as $key => $value) { |
|
499 | 499 | $values[$key] = $this->decode($value); |
500 | 500 | } |
501 | 501 | return $values; |
@@ -505,8 +505,8 @@ discard block |
||
505 | 505 | * Try to extract the priority from a given raw header string |
506 | 506 | */ |
507 | 507 | private function findPriority() { |
508 | - if(($priority = $this->get("x_priority")) === null) return; |
|
509 | - switch((int)"$priority"){ |
|
508 | + if (($priority = $this->get("x_priority")) === null) return; |
|
509 | + switch ((int) "$priority") { |
|
510 | 510 | case IMAP::MESSAGE_PRIORITY_HIGHEST; |
511 | 511 | $priority = IMAP::MESSAGE_PRIORITY_HIGHEST; |
512 | 512 | break; |
@@ -545,7 +545,7 @@ discard block |
||
545 | 545 | if (isset($parsed_address['address'])) { |
546 | 546 | $mail_address = explode('@', $parsed_address['address']); |
547 | 547 | if (count($mail_address) == 2) { |
548 | - $addresses[] = (object)[ |
|
548 | + $addresses[] = (object) [ |
|
549 | 549 | "personal" => isset($parsed_address['display']) ? $parsed_address['display'] : '', |
550 | 550 | "mailbox" => $mail_address[0], |
551 | 551 | "host" => $mail_address[1], |
@@ -558,7 +558,7 @@ discard block |
||
558 | 558 | return $addresses; |
559 | 559 | } |
560 | 560 | |
561 | - foreach($values as $address) { |
|
561 | + foreach ($values as $address) { |
|
562 | 562 | foreach (preg_split('/, (?=(?:[^"]*"[^"]*")*[^"]*$)/', $address) as $split_address) { |
563 | 563 | $split_address = trim(rtrim($split_address)); |
564 | 564 | |
@@ -573,7 +573,7 @@ discard block |
||
573 | 573 | $name = trim(rtrim($matches["name"])); |
574 | 574 | $email = trim(rtrim($matches["email"])); |
575 | 575 | list($mailbox, $host) = array_pad(explode("@", $email), 2, null); |
576 | - $addresses[] = (object)[ |
|
576 | + $addresses[] = (object) [ |
|
577 | 577 | "personal" => $name, |
578 | 578 | "mailbox" => $mailbox, |
579 | 579 | "host" => $host, |
@@ -590,7 +590,7 @@ discard block |
||
590 | 590 | * @param object $header |
591 | 591 | */ |
592 | 592 | private function extractAddresses($header) { |
593 | - foreach(['from', 'to', 'cc', 'bcc', 'reply_to', 'sender'] as $key){ |
|
593 | + foreach (['from', 'to', 'cc', 'bcc', 'reply_to', 'sender'] as $key) { |
|
594 | 594 | if (property_exists($header, $key)) { |
595 | 595 | $this->set($key, $this->parseAddresses($header->$key)); |
596 | 596 | } |
@@ -624,7 +624,7 @@ discard block |
||
624 | 624 | } else { |
625 | 625 | $personalParts = $this->mime_header_decode($address->personal); |
626 | 626 | |
627 | - if(is_array($personalParts)) { |
|
627 | + if (is_array($personalParts)) { |
|
628 | 628 | $address->personal = ''; |
629 | 629 | foreach ($personalParts as $p) { |
630 | 630 | $address->personal .= $this->convertEncoding($p->text, $this->getEncoding($p)); |
@@ -648,23 +648,23 @@ discard block |
||
648 | 648 | /** |
649 | 649 | * Search and extract potential header extensions |
650 | 650 | */ |
651 | - private function extractHeaderExtensions(){ |
|
651 | + private function extractHeaderExtensions() { |
|
652 | 652 | foreach ($this->attributes as $key => $value) { |
653 | 653 | if (is_array($value)) { |
654 | 654 | $value = implode(", ", $value); |
655 | - }else{ |
|
656 | - $value = (string)$value; |
|
655 | + } else { |
|
656 | + $value = (string) $value; |
|
657 | 657 | } |
658 | 658 | // Only parse strings and don't parse any attributes like the user-agent |
659 | 659 | if (in_array($key, ["user_agent"]) === false) { |
660 | - if (($pos = strpos($value, ";")) !== false){ |
|
660 | + if (($pos = strpos($value, ";")) !== false) { |
|
661 | 661 | $original = substr($value, 0, $pos); |
662 | 662 | $this->set($key, trim(rtrim($original)), true); |
663 | 663 | |
664 | 664 | // Get all potential extensions |
665 | 665 | $extensions = explode(";", substr($value, $pos + 1)); |
666 | - foreach($extensions as $extension) { |
|
667 | - if (($pos = strpos($extension, "=")) !== false){ |
|
666 | + foreach ($extensions as $extension) { |
|
667 | + if (($pos = strpos($extension, "=")) !== false) { |
|
668 | 668 | $key = substr($extension, 0, $pos); |
669 | 669 | $key = trim(rtrim(strtolower($key))); |
670 | 670 | |
@@ -707,7 +707,7 @@ discard block |
||
707 | 707 | $parsed_date = null; |
708 | 708 | $date = $header->date; |
709 | 709 | |
710 | - if(preg_match('/\+0580/', $date)) { |
|
710 | + if (preg_match('/\+0580/', $date)) { |
|
711 | 711 | $date = str_replace('+0580', '+0530', $date); |
712 | 712 | } |
713 | 713 | |
@@ -730,7 +730,7 @@ discard block |
||
730 | 730 | $date = trim(array_pop($array)); |
731 | 731 | break; |
732 | 732 | } |
733 | - try{ |
|
733 | + try { |
|
734 | 734 | $parsed_date = Carbon::parse($date); |
735 | 735 | } catch (\Exception $_e) { |
736 | 736 | throw new InvalidMessageDateException("Invalid message date. ID:".$this->get("message_id"), 1100, $e); |
@@ -192,7 +192,7 @@ discard block |
||
192 | 192 | $this->boot(); |
193 | 193 | |
194 | 194 | $default_mask = $client->getDefaultMessageMask(); |
195 | - if($default_mask != null) { |
|
195 | + if ($default_mask != null) { |
|
196 | 196 | $this->mask = $default_mask; |
197 | 197 | } |
198 | 198 | $this->events["message"] = $client->getDefaultEvents("message"); |
@@ -246,14 +246,14 @@ discard block |
||
246 | 246 | * @throws Exceptions\RuntimeException |
247 | 247 | * @throws Exceptions\MessageNotFoundException |
248 | 248 | */ |
249 | - public static function make($uid, $msglist, Client $client, $raw_header, $raw_body, $raw_flags, $fetch_options = null, $sequence = null){ |
|
249 | + public static function make($uid, $msglist, Client $client, $raw_header, $raw_body, $raw_flags, $fetch_options = null, $sequence = null) { |
|
250 | 250 | $reflection = new ReflectionClass(self::class); |
251 | 251 | /** @var self $instance */ |
252 | 252 | $instance = $reflection->newInstanceWithoutConstructor(); |
253 | 253 | $instance->boot(); |
254 | 254 | |
255 | 255 | $default_mask = $client->getDefaultMessageMask(); |
256 | - if($default_mask != null) { |
|
256 | + if ($default_mask != null) { |
|
257 | 257 | $instance->setMask($default_mask); |
258 | 258 | } |
259 | 259 | $instance->setEvents([ |
@@ -278,7 +278,7 @@ discard block |
||
278 | 278 | /** |
279 | 279 | * Boot a new instance |
280 | 280 | */ |
281 | - public function boot(){ |
|
281 | + public function boot() { |
|
282 | 282 | $this->attributes = []; |
283 | 283 | |
284 | 284 | $this->config = ClientManager::get('options'); |
@@ -297,13 +297,13 @@ discard block |
||
297 | 297 | * @throws MethodNotFoundException |
298 | 298 | */ |
299 | 299 | public function __call($method, $arguments) { |
300 | - if(strtolower(substr($method, 0, 3)) === 'get') { |
|
300 | + if (strtolower(substr($method, 0, 3)) === 'get') { |
|
301 | 301 | $name = Str::snake(substr($method, 3)); |
302 | 302 | return $this->get($name); |
303 | 303 | }elseif (strtolower(substr($method, 0, 3)) === 'set') { |
304 | 304 | $name = Str::snake(substr($method, 3)); |
305 | 305 | |
306 | - if(in_array($name, array_keys($this->attributes))) { |
|
306 | + if (in_array($name, array_keys($this->attributes))) { |
|
307 | 307 | return $this->__set($name, array_pop($arguments)); |
308 | 308 | } |
309 | 309 | |
@@ -342,7 +342,7 @@ discard block |
||
342 | 342 | * @return Attribute|mixed|null |
343 | 343 | */ |
344 | 344 | public function get($name) { |
345 | - if(isset($this->attributes[$name])) { |
|
345 | + if (isset($this->attributes[$name])) { |
|
346 | 346 | return $this->attributes[$name]; |
347 | 347 | } |
348 | 348 | |
@@ -416,7 +416,7 @@ discard block |
||
416 | 416 | * |
417 | 417 | * @throws InvalidMessageDateException |
418 | 418 | */ |
419 | - public function parseRawHeader($raw_header){ |
|
419 | + public function parseRawHeader($raw_header) { |
|
420 | 420 | $this->header = new Header($raw_header); |
421 | 421 | } |
422 | 422 | |
@@ -427,8 +427,8 @@ discard block |
||
427 | 427 | public function parseRawFlags($raw_flags) { |
428 | 428 | $this->flags = FlagCollection::make([]); |
429 | 429 | |
430 | - foreach($raw_flags as $flag) { |
|
431 | - if (strpos($flag, "\\") === 0){ |
|
430 | + foreach ($raw_flags as $flag) { |
|
431 | + if (strpos($flag, "\\") === 0) { |
|
432 | 432 | $flag = substr($flag, 1); |
433 | 433 | } |
434 | 434 | $flag_key = strtolower($flag); |
@@ -501,7 +501,7 @@ discard block |
||
501 | 501 | * @throws MessageFlagException |
502 | 502 | * @throws Exceptions\RuntimeException |
503 | 503 | */ |
504 | - public function peek(){ |
|
504 | + public function peek() { |
|
505 | 505 | if ($this->fetch_options == IMAP::FT_PEEK) { |
506 | 506 | if ($this->getFlags()->get("seen") == null) { |
507 | 507 | $this->unsetFlag("Seen"); |
@@ -550,7 +550,7 @@ discard block |
||
550 | 550 | private function fetchPart(Part $part) { |
551 | 551 | if ($part->isAttachment()) { |
552 | 552 | $this->fetchAttachment($part); |
553 | - }else{ |
|
553 | + } else { |
|
554 | 554 | $encoding = $this->getEncoding($part); |
555 | 555 | |
556 | 556 | $content = $this->decodeString($part->content, $part->encoding); |
@@ -575,7 +575,7 @@ discard block |
||
575 | 575 | |
576 | 576 | if (isset($this->bodies[$subtype])) { |
577 | 577 | $this->bodies[$subtype] .= "\n".$content; |
578 | - }else{ |
|
578 | + } else { |
|
579 | 579 | $this->bodies[$subtype] = $content; |
580 | 580 | } |
581 | 581 | } |
@@ -746,9 +746,9 @@ discard block |
||
746 | 746 | return EncodingAliases::get($parameter->value); |
747 | 747 | } |
748 | 748 | } |
749 | - }elseif (property_exists($structure, 'charset')){ |
|
749 | + }elseif (property_exists($structure, 'charset')) { |
|
750 | 750 | return EncodingAliases::get($structure->charset); |
751 | - }elseif (is_string($structure) === true){ |
|
751 | + }elseif (is_string($structure) === true) { |
|
752 | 752 | return mb_detect_encoding($structure); |
753 | 753 | } |
754 | 754 | |
@@ -763,7 +763,7 @@ discard block |
||
763 | 763 | * @throws Exceptions\FolderFetchingException |
764 | 764 | * @throws Exceptions\RuntimeException |
765 | 765 | */ |
766 | - public function getFolder(){ |
|
766 | + public function getFolder() { |
|
767 | 767 | return $this->client->getFolderByPath($this->folder_path); |
768 | 768 | } |
769 | 769 | |
@@ -779,13 +779,13 @@ discard block |
||
779 | 779 | * @throws Exceptions\GetMessagesFailedException |
780 | 780 | * @throws Exceptions\RuntimeException |
781 | 781 | */ |
782 | - public function thread($sent_folder = null, &$thread = null, $folder = null){ |
|
782 | + public function thread($sent_folder = null, &$thread = null, $folder = null) { |
|
783 | 783 | $thread = $thread ? $thread : MessageCollection::make([]); |
784 | - $folder = $folder ? $folder : $this->getFolder(); |
|
784 | + $folder = $folder ? $folder : $this->getFolder(); |
|
785 | 785 | $sent_folder = $sent_folder ? $sent_folder : $this->client->getFolderByPath(ClientManager::get("options.common_folders.sent", "INBOX/Sent")); |
786 | 786 | |
787 | 787 | /** @var Message $message */ |
788 | - foreach($thread as $message) { |
|
788 | + foreach ($thread as $message) { |
|
789 | 789 | if ($message->message_id->first() == $this->message_id->first()) { |
790 | 790 | return $thread; |
791 | 791 | } |
@@ -796,7 +796,7 @@ discard block |
||
796 | 796 | $this->fetchThreadByInReplyTo($thread, $this->message_id, $sent_folder, $folder, $sent_folder); |
797 | 797 | |
798 | 798 | if (is_array($this->in_reply_to)) { |
799 | - foreach($this->in_reply_to as $in_reply_to) { |
|
799 | + foreach ($this->in_reply_to as $in_reply_to) { |
|
800 | 800 | $this->fetchThreadByMessageId($thread, $in_reply_to, $folder, $folder, $sent_folder); |
801 | 801 | $this->fetchThreadByMessageId($thread, $in_reply_to, $sent_folder, $folder, $sent_folder); |
802 | 802 | } |
@@ -817,7 +817,7 @@ discard block |
||
817 | 817 | * @throws Exceptions\GetMessagesFailedException |
818 | 818 | * @throws Exceptions\RuntimeException |
819 | 819 | */ |
820 | - protected function fetchThreadByInReplyTo(&$thread, $in_reply_to, $primary_folder, $secondary_folder, $sent_folder){ |
|
820 | + protected function fetchThreadByInReplyTo(&$thread, $in_reply_to, $primary_folder, $secondary_folder, $sent_folder) { |
|
821 | 821 | $primary_folder->query()->inReplyTo($in_reply_to) |
822 | 822 | ->setFetchBody($this->getFetchBodyOption()) |
823 | 823 | ->leaveUnread()->get()->each(function($message) use(&$thread, $secondary_folder, $sent_folder){ |
@@ -838,7 +838,7 @@ discard block |
||
838 | 838 | * @throws Exceptions\GetMessagesFailedException |
839 | 839 | * @throws Exceptions\RuntimeException |
840 | 840 | */ |
841 | - protected function fetchThreadByMessageId(&$thread, $message_id, $primary_folder, $secondary_folder, $sent_folder){ |
|
841 | + protected function fetchThreadByMessageId(&$thread, $message_id, $primary_folder, $secondary_folder, $sent_folder) { |
|
842 | 842 | $primary_folder->query()->messageId($message_id) |
843 | 843 | ->setFetchBody($this->getFetchBodyOption()) |
844 | 844 | ->leaveUnread()->get()->each(function($message) use(&$thread, $secondary_folder, $sent_folder){ |
@@ -934,14 +934,14 @@ discard block |
||
934 | 934 | * @throws MessageFlagException |
935 | 935 | * @throws MessageHeaderFetchingException |
936 | 936 | */ |
937 | - protected function fetchNewMail($folder, $next_uid, $event, $expunge){ |
|
938 | - if($expunge) $this->client->expunge(); |
|
937 | + protected function fetchNewMail($folder, $next_uid, $event, $expunge) { |
|
938 | + if ($expunge) $this->client->expunge(); |
|
939 | 939 | |
940 | 940 | $this->client->openFolder($folder->path); |
941 | 941 | |
942 | 942 | if ($this->sequence === IMAP::ST_UID) { |
943 | 943 | $sequence_id = $next_uid; |
944 | - }else{ |
|
944 | + } else { |
|
945 | 945 | $sequence_id = $this->client->getConnection()->getMessageNumber($next_uid); |
946 | 946 | } |
947 | 947 | |
@@ -964,7 +964,7 @@ discard block |
||
964 | 964 | */ |
965 | 965 | public function delete($expunge = true) { |
966 | 966 | $status = $this->setFlag("Deleted"); |
967 | - if($expunge) $this->client->expunge(); |
|
967 | + if ($expunge) $this->client->expunge(); |
|
968 | 968 | |
969 | 969 | $event = $this->getEvent("message", "deleted"); |
970 | 970 | $event::dispatch($this); |
@@ -984,7 +984,7 @@ discard block |
||
984 | 984 | */ |
985 | 985 | public function restore($expunge = true) { |
986 | 986 | $status = $this->unsetFlag("Deleted"); |
987 | - if($expunge) $this->client->expunge(); |
|
987 | + if ($expunge) $this->client->expunge(); |
|
988 | 988 | |
989 | 989 | $event = $this->getEvent("message", "restored"); |
990 | 990 | $event::dispatch($this); |
@@ -1089,7 +1089,7 @@ discard block |
||
1089 | 1089 | * |
1090 | 1090 | * @return AttachmentCollection |
1091 | 1091 | */ |
1092 | - public function attachments(){ |
|
1092 | + public function attachments() { |
|
1093 | 1093 | return $this->getAttachments(); |
1094 | 1094 | } |
1095 | 1095 | |
@@ -1187,7 +1187,7 @@ discard block |
||
1187 | 1187 | * |
1188 | 1188 | * @return FlagCollection |
1189 | 1189 | */ |
1190 | - public function flags(){ |
|
1190 | + public function flags() { |
|
1191 | 1191 | return $this->getFlags(); |
1192 | 1192 | } |
1193 | 1193 | |
@@ -1196,7 +1196,7 @@ discard block |
||
1196 | 1196 | * |
1197 | 1197 | * @return Structure|null |
1198 | 1198 | */ |
1199 | - public function getStructure(){ |
|
1199 | + public function getStructure() { |
|
1200 | 1200 | return $this->structure; |
1201 | 1201 | } |
1202 | 1202 | |
@@ -1222,7 +1222,7 @@ discard block |
||
1222 | 1222 | * |
1223 | 1223 | * @return array |
1224 | 1224 | */ |
1225 | - public function getAttributes(){ |
|
1225 | + public function getAttributes() { |
|
1226 | 1226 | return array_merge($this->attributes, $this->header->getAttributes()); |
1227 | 1227 | } |
1228 | 1228 | |
@@ -1232,8 +1232,8 @@ discard block |
||
1232 | 1232 | * |
1233 | 1233 | * @return $this |
1234 | 1234 | */ |
1235 | - public function setMask($mask){ |
|
1236 | - if(class_exists($mask)){ |
|
1235 | + public function setMask($mask) { |
|
1236 | + if (class_exists($mask)) { |
|
1237 | 1237 | $this->mask = $mask; |
1238 | 1238 | } |
1239 | 1239 | |
@@ -1245,7 +1245,7 @@ discard block |
||
1245 | 1245 | * |
1246 | 1246 | * @return string |
1247 | 1247 | */ |
1248 | - public function getMask(){ |
|
1248 | + public function getMask() { |
|
1249 | 1249 | return $this->mask; |
1250 | 1250 | } |
1251 | 1251 | |
@@ -1256,9 +1256,9 @@ discard block |
||
1256 | 1256 | * @return mixed |
1257 | 1257 | * @throws MaskNotFoundException |
1258 | 1258 | */ |
1259 | - public function mask($mask = null){ |
|
1259 | + public function mask($mask = null) { |
|
1260 | 1260 | $mask = $mask !== null ? $mask : $this->mask; |
1261 | - if(class_exists($mask)){ |
|
1261 | + if (class_exists($mask)) { |
|
1262 | 1262 | return new $mask($this); |
1263 | 1263 | } |
1264 | 1264 | |
@@ -1270,7 +1270,7 @@ discard block |
||
1270 | 1270 | * |
1271 | 1271 | * @return string |
1272 | 1272 | */ |
1273 | - public function getFolderPath(){ |
|
1273 | + public function getFolderPath() { |
|
1274 | 1274 | return $this->folder_path; |
1275 | 1275 | } |
1276 | 1276 | |
@@ -1280,7 +1280,7 @@ discard block |
||
1280 | 1280 | * |
1281 | 1281 | * @return $this |
1282 | 1282 | */ |
1283 | - public function setFolderPath($folder_path){ |
|
1283 | + public function setFolderPath($folder_path) { |
|
1284 | 1284 | $this->folder_path = $folder_path; |
1285 | 1285 | |
1286 | 1286 | return $this; |
@@ -1292,7 +1292,7 @@ discard block |
||
1292 | 1292 | * |
1293 | 1293 | * @return $this |
1294 | 1294 | */ |
1295 | - public function setConfig($config){ |
|
1295 | + public function setConfig($config) { |
|
1296 | 1296 | $this->config = $config; |
1297 | 1297 | |
1298 | 1298 | return $this; |
@@ -1304,7 +1304,7 @@ discard block |
||
1304 | 1304 | * |
1305 | 1305 | * @return $this |
1306 | 1306 | */ |
1307 | - public function setAvailableFlags($available_flags){ |
|
1307 | + public function setAvailableFlags($available_flags) { |
|
1308 | 1308 | $this->available_flags = $available_flags; |
1309 | 1309 | |
1310 | 1310 | return $this; |
@@ -1316,7 +1316,7 @@ discard block |
||
1316 | 1316 | * |
1317 | 1317 | * @return $this |
1318 | 1318 | */ |
1319 | - public function setAttachments($attachments){ |
|
1319 | + public function setAttachments($attachments) { |
|
1320 | 1320 | $this->attachments = $attachments; |
1321 | 1321 | |
1322 | 1322 | return $this; |
@@ -1328,7 +1328,7 @@ discard block |
||
1328 | 1328 | * |
1329 | 1329 | * @return $this |
1330 | 1330 | */ |
1331 | - public function setFlags($flags){ |
|
1331 | + public function setFlags($flags) { |
|
1332 | 1332 | $this->flags = $flags; |
1333 | 1333 | |
1334 | 1334 | return $this; |
@@ -1342,7 +1342,7 @@ discard block |
||
1342 | 1342 | * @throws Exceptions\RuntimeException |
1343 | 1343 | * @throws Exceptions\ConnectionFailedException |
1344 | 1344 | */ |
1345 | - public function setClient($client){ |
|
1345 | + public function setClient($client) { |
|
1346 | 1346 | $this->client = $client; |
1347 | 1347 | $this->client->openFolder($this->folder_path); |
1348 | 1348 | |
@@ -1357,7 +1357,7 @@ discard block |
||
1357 | 1357 | * @throws Exceptions\MessageNotFoundException |
1358 | 1358 | * @throws Exceptions\ConnectionFailedException |
1359 | 1359 | */ |
1360 | - public function setUid($uid){ |
|
1360 | + public function setUid($uid) { |
|
1361 | 1361 | $this->uid = $uid; |
1362 | 1362 | $this->msgn = $this->client->getConnection()->getMessageNumber($this->uid); |
1363 | 1363 | $this->msglist = null; |
@@ -1374,7 +1374,7 @@ discard block |
||
1374 | 1374 | * @throws Exceptions\MessageNotFoundException |
1375 | 1375 | * @throws Exceptions\ConnectionFailedException |
1376 | 1376 | */ |
1377 | - public function setMsgn($msgn, $msglist = null){ |
|
1377 | + public function setMsgn($msgn, $msglist = null) { |
|
1378 | 1378 | $this->msgn = $msgn; |
1379 | 1379 | $this->msglist = $msglist; |
1380 | 1380 | $this->uid = $this->client->getConnection()->getUid($this->msgn); |
@@ -1387,7 +1387,7 @@ discard block |
||
1387 | 1387 | * |
1388 | 1388 | * @return int |
1389 | 1389 | */ |
1390 | - public function getSequence(){ |
|
1390 | + public function getSequence() { |
|
1391 | 1391 | return $this->sequence; |
1392 | 1392 | } |
1393 | 1393 | |
@@ -1396,7 +1396,7 @@ discard block |
||
1396 | 1396 | * |
1397 | 1397 | * @return int |
1398 | 1398 | */ |
1399 | - public function getSequenceId(){ |
|
1399 | + public function getSequenceId() { |
|
1400 | 1400 | return $this->sequence === IMAP::ST_UID ? $this->uid : $this->msgn; |
1401 | 1401 | } |
1402 | 1402 | |
@@ -1408,11 +1408,11 @@ discard block |
||
1408 | 1408 | * @throws Exceptions\ConnectionFailedException |
1409 | 1409 | * @throws Exceptions\MessageNotFoundException |
1410 | 1410 | */ |
1411 | - public function setSequenceId($uid, $msglist = null){ |
|
1411 | + public function setSequenceId($uid, $msglist = null) { |
|
1412 | 1412 | if ($this->getSequence() === IMAP::ST_UID) { |
1413 | 1413 | $this->setUid($uid); |
1414 | 1414 | $this->setMsglist($msglist); |
1415 | - }else{ |
|
1415 | + } else { |
|
1416 | 1416 | $this->setMsgn($uid, $msglist); |
1417 | 1417 | } |
1418 | 1418 | } |
@@ -70,7 +70,7 @@ |
||
70 | 70 | * |
71 | 71 | * @return array |
72 | 72 | */ |
73 | - public function getEvents(){ |
|
73 | + public function getEvents() { |
|
74 | 74 | return $this->events; |
75 | 75 | } |
76 | 76 |
@@ -9,9 +9,9 @@ discard block |
||
9 | 9 | $this->iban = $iban; |
10 | 10 | } |
11 | 11 | |
12 | - public function Verify($iban='',$machine_format_only=false) { |
|
13 | - if($iban!='') { return verify_iban($iban,$machine_format_only); } |
|
14 | - return verify_iban($this->iban,$machine_format_only); |
|
12 | + public function Verify($iban = '', $machine_format_only = false) { |
|
13 | + if ($iban != '') { return verify_iban($iban, $machine_format_only); } |
|
14 | + return verify_iban($this->iban, $machine_format_only); |
|
15 | 15 | # we could throw exceptions of various types, but why - does it really |
16 | 16 | # add anything? possibly some slightly better user feedback potential. |
17 | 17 | # however, this can be written by hand by performing individual checks |
@@ -20,9 +20,9 @@ discard block |
||
20 | 20 | # maintenance/documentation cost, i say, therefore: no. no exceptions. |
21 | 21 | } |
22 | 22 | |
23 | - public function VerifyMachineFormatOnly($iban='') { |
|
24 | - if($iban!='') { return verify_iban($iban,true); } |
|
25 | - return verify_iban($this->iban,true); |
|
23 | + public function VerifyMachineFormatOnly($iban = '') { |
|
24 | + if ($iban != '') { return verify_iban($iban, true); } |
|
25 | + return verify_iban($this->iban, true); |
|
26 | 26 | } |
27 | 27 | |
28 | 28 | public function MistranscriptionSuggestions() { |
@@ -41,15 +41,15 @@ discard block |
||
41 | 41 | return iban_to_obfuscated_format($this->iban); |
42 | 42 | } |
43 | 43 | |
44 | - public function Country($iban='') { |
|
44 | + public function Country($iban = '') { |
|
45 | 45 | return iban_get_country_part($this->iban); |
46 | 46 | } |
47 | 47 | |
48 | - public function Checksum($iban='') { |
|
48 | + public function Checksum($iban = '') { |
|
49 | 49 | return iban_get_checksum_part($this->iban); |
50 | 50 | } |
51 | 51 | |
52 | - public function NationalChecksum($iban='') { |
|
52 | + public function NationalChecksum($iban = '') { |
|
53 | 53 | return iban_get_nationalchecksum_part($this->iban); |
54 | 54 | } |
55 | 55 |
@@ -3,22 +3,22 @@ discard block |
||
3 | 3 | # PHP IBAN - http://github.com/globalcitizen/php-iban - LGPLv3 |
4 | 4 | |
5 | 5 | # Global flag by request |
6 | -$__disable_iiban_gmp_extension=false; |
|
6 | +$__disable_iiban_gmp_extension = false; |
|
7 | 7 | |
8 | 8 | # Verify an IBAN number. |
9 | 9 | # If $machine_format_only, do not tolerate unclean (eg. spaces, dashes, leading 'IBAN ' or 'IIBAN ', lower case) input. |
10 | 10 | # (Otherwise, input can be printed 'IIBAN xx xx xx...' or 'IBAN xx xx xx...' or machine 'xxxxx' format.) |
11 | 11 | # Returns true or false. |
12 | -function verify_iban($iban,$machine_format_only=false) { |
|
12 | +function verify_iban($iban, $machine_format_only = false) { |
|
13 | 13 | |
14 | 14 | # First convert to machine format. |
15 | - if(!$machine_format_only) { $iban = iban_to_machine_format($iban); } |
|
15 | + if (!$machine_format_only) { $iban = iban_to_machine_format($iban); } |
|
16 | 16 | |
17 | 17 | # Get country of IBAN |
18 | 18 | $country = iban_get_country_part($iban); |
19 | 19 | |
20 | 20 | # Test length of IBAN |
21 | - if(strlen($iban)!=iban_country_get_iban_length($country)) { return false; } |
|
21 | + if (strlen($iban) != iban_country_get_iban_length($country)) { return false; } |
|
22 | 22 | |
23 | 23 | # Get checksum of IBAN |
24 | 24 | $checksum = iban_get_checksum_part($iban); |
@@ -27,9 +27,9 @@ discard block |
||
27 | 27 | $regex = '/'.iban_country_get_iban_format_regex($country).'/'; |
28 | 28 | |
29 | 29 | # Check regex |
30 | - if(preg_match($regex,$iban)) { |
|
30 | + if (preg_match($regex, $iban)) { |
|
31 | 31 | # Regex passed, check checksum |
32 | - if(!iban_verify_checksum($iban)) { |
|
32 | + if (!iban_verify_checksum($iban)) { |
|
33 | 33 | return false; |
34 | 34 | } |
35 | 35 | } |
@@ -48,9 +48,9 @@ discard block |
||
48 | 48 | # Uppercase and trim spaces from left |
49 | 49 | $iban = ltrim(strtoupper($iban)); |
50 | 50 | # Remove IIBAN or IBAN from start of string, if present |
51 | - $iban = preg_replace('/^I?IBAN/','',$iban); |
|
51 | + $iban = preg_replace('/^I?IBAN/', '', $iban); |
|
52 | 52 | # Remove all non basic roman letter / digit characters |
53 | - $iban = preg_replace('/[^a-zA-Z0-9]/','',$iban); |
|
53 | + $iban = preg_replace('/[^a-zA-Z0-9]/', '', $iban); |
|
54 | 54 | return $iban; |
55 | 55 | } |
56 | 56 | |
@@ -61,9 +61,9 @@ discard block |
||
61 | 61 | # http://www.europeanpaymentscouncil.eu/knowledge_bank_download.cfm?file=ECBS%20standard%20implementation%20guidelines%20SIG203V3.2.pdf |
62 | 62 | function iban_to_human_format($iban) { |
63 | 63 | # Remove all spaces |
64 | - $iban = str_replace(' ','',$iban); |
|
64 | + $iban = str_replace(' ', '', $iban); |
|
65 | 65 | # Add spaces every four characters |
66 | - return wordwrap($iban,4,' ',true); |
|
66 | + return wordwrap($iban, 4, ' ', true); |
|
67 | 67 | } |
68 | 68 | |
69 | 69 | # Convert an IBAN to obfuscated presentation. To do this, we |
@@ -84,30 +84,30 @@ discard block |
||
84 | 84 | # unambiguous relative identification. |
85 | 85 | function iban_to_obfuscated_format($iban) { |
86 | 86 | $iban = iban_to_machine_format($iban); |
87 | - $tr = substr($iban,0,2); |
|
88 | - for($i=2;$i<strlen($iban)-4;$i++) { |
|
87 | + $tr = substr($iban, 0, 2); |
|
88 | + for ($i = 2; $i < strlen($iban) - 4; $i++) { |
|
89 | 89 | $tr .= '*'; |
90 | 90 | } |
91 | - $tr .= substr($iban,strlen($iban)-4); |
|
91 | + $tr .= substr($iban, strlen($iban) - 4); |
|
92 | 92 | return iban_to_human_format($tr); |
93 | 93 | } |
94 | 94 | |
95 | 95 | # Get the country part from an IBAN |
96 | 96 | function iban_get_country_part($iban) { |
97 | 97 | $iban = iban_to_machine_format($iban); |
98 | - return substr($iban,0,2); |
|
98 | + return substr($iban, 0, 2); |
|
99 | 99 | } |
100 | 100 | |
101 | 101 | # Get the checksum part from an IBAN |
102 | 102 | function iban_get_checksum_part($iban) { |
103 | 103 | $iban = iban_to_machine_format($iban); |
104 | - return substr($iban,2,2); |
|
104 | + return substr($iban, 2, 2); |
|
105 | 105 | } |
106 | 106 | |
107 | 107 | # Get the BBAN part from an IBAN |
108 | 108 | function iban_get_bban_part($iban) { |
109 | 109 | $iban = iban_to_machine_format($iban); |
110 | - return substr($iban,4); |
|
110 | + return substr($iban, 4); |
|
111 | 111 | } |
112 | 112 | |
113 | 113 | # Check the checksum of an IBAN - code modified from Validate_Finance PEAR class |
@@ -132,31 +132,31 @@ discard block |
||
132 | 132 | function iban_find_checksum($iban) { |
133 | 133 | $iban = iban_to_machine_format($iban); |
134 | 134 | # move first 4 chars to right |
135 | - $left = substr($iban,0,2) . '00'; # but set right-most 2 (checksum) to '00' |
|
136 | - $right = substr($iban,4); |
|
135 | + $left = substr($iban, 0, 2).'00'; # but set right-most 2 (checksum) to '00' |
|
136 | + $right = substr($iban, 4); |
|
137 | 137 | # glue back together |
138 | - $tmp = $right . $left; |
|
138 | + $tmp = $right.$left; |
|
139 | 139 | # convert letters using conversion table |
140 | 140 | $tmp = iban_checksum_string_replace($tmp); |
141 | 141 | # get mod97-10 output |
142 | 142 | $checksum = iban_mod97_10_checksum($tmp); |
143 | 143 | # return 98 minus the mod97-10 output, left zero padded to two digits |
144 | - return str_pad((98-$checksum),2,'0',STR_PAD_LEFT); |
|
144 | + return str_pad((98 - $checksum), 2, '0', STR_PAD_LEFT); |
|
145 | 145 | } |
146 | 146 | |
147 | 147 | # Set the correct checksum for an IBAN |
148 | 148 | # $iban IBAN whose checksum should be set |
149 | 149 | function iban_set_checksum($iban) { |
150 | 150 | $iban = iban_to_machine_format($iban); |
151 | - return substr($iban,0,2) . iban_find_checksum($iban) . substr($iban,4); |
|
151 | + return substr($iban, 0, 2).iban_find_checksum($iban).substr($iban, 4); |
|
152 | 152 | } |
153 | 153 | |
154 | 154 | # Character substitution required for IBAN MOD97-10 checksum validation/generation |
155 | 155 | # $s Input string (IBAN) |
156 | 156 | function iban_checksum_string_replace($s) { |
157 | - $iban_replace_chars = range('A','Z'); |
|
158 | - foreach (range(10,35) as $tempvalue) { $iban_replace_values[]=strval($tempvalue); } |
|
159 | - return str_replace($iban_replace_chars,$iban_replace_values,$s); |
|
157 | + $iban_replace_chars = range('A', 'Z'); |
|
158 | + foreach (range(10, 35) as $tempvalue) { $iban_replace_values[] = strval($tempvalue); } |
|
159 | + return str_replace($iban_replace_chars, $iban_replace_values, $s); |
|
160 | 160 | } |
161 | 161 | |
162 | 162 | # Same as below but actually returns resulting checksum |
@@ -164,7 +164,7 @@ discard block |
||
164 | 164 | $checksum = intval(substr($numeric_representation, 0, 1)); |
165 | 165 | for ($position = 1; $position < strlen($numeric_representation); $position++) { |
166 | 166 | $checksum *= 10; |
167 | - $checksum += intval(substr($numeric_representation,$position,1)); |
|
167 | + $checksum += intval(substr($numeric_representation, $position, 1)); |
|
168 | 168 | $checksum %= 97; |
169 | 169 | } |
170 | 170 | return $checksum; |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | function iban_mod97_10($numeric_representation) { |
175 | 175 | global $__disable_iiban_gmp_extension; |
176 | 176 | # prefer php5 gmp extension if available |
177 | - if(!($__disable_iiban_gmp_extension) && function_exists('gmp_intval') && $numeric_representation!='') { return gmp_intval(gmp_mod(gmp_init($numeric_representation, 10),'97')) === 1; } |
|
177 | + if (!($__disable_iiban_gmp_extension) && function_exists('gmp_intval') && $numeric_representation != '') { return gmp_intval(gmp_mod(gmp_init($numeric_representation, 10), '97')) === 1; } |
|
178 | 178 | |
179 | 179 | /* |
180 | 180 | # old manual processing (~16x slower) |
@@ -192,8 +192,8 @@ discard block |
||
192 | 192 | $rest = ""; |
193 | 193 | $position = 0; |
194 | 194 | while ($position < $length) { |
195 | - $value = 9-strlen($rest); |
|
196 | - $n = $rest . substr($numeric_representation,$position,$value); |
|
195 | + $value = 9 - strlen($rest); |
|
196 | + $n = $rest.substr($numeric_representation, $position, $value); |
|
197 | 197 | $rest = $n % 97; |
198 | 198 | $position = $position + $value; |
199 | 199 | } |
@@ -219,9 +219,9 @@ discard block |
||
219 | 219 | $country = iban_get_country_part($iban); |
220 | 220 | $start = iban_country_get_bankid_start_offset($country); |
221 | 221 | $stop = iban_country_get_bankid_stop_offset($country); |
222 | - if($start!=''&&$stop!='') { |
|
222 | + if ($start != '' && $stop != '') { |
|
223 | 223 | $bban = iban_get_bban_part($iban); |
224 | - return substr($bban,$start,($stop-$start+1)); |
|
224 | + return substr($bban, $start, ($stop - $start + 1)); |
|
225 | 225 | } |
226 | 226 | return ''; |
227 | 227 | } |
@@ -232,9 +232,9 @@ discard block |
||
232 | 232 | $country = iban_get_country_part($iban); |
233 | 233 | $start = iban_country_get_branchid_start_offset($country); |
234 | 234 | $stop = iban_country_get_branchid_stop_offset($country); |
235 | - if($start!=''&&$stop!='') { |
|
235 | + if ($start != '' && $stop != '') { |
|
236 | 236 | $bban = iban_get_bban_part($iban); |
237 | - return substr($bban,$start,($stop-$start+1)); |
|
237 | + return substr($bban, $start, ($stop - $start + 1)); |
|
238 | 238 | } |
239 | 239 | return ''; |
240 | 240 | } |
@@ -244,12 +244,12 @@ discard block |
||
244 | 244 | $iban = iban_to_machine_format($iban); |
245 | 245 | $country = iban_get_country_part($iban); |
246 | 246 | $start = iban_country_get_branchid_stop_offset($country); |
247 | - if($start=='') { |
|
247 | + if ($start == '') { |
|
248 | 248 | $start = iban_country_get_bankid_stop_offset($country); |
249 | 249 | } |
250 | - if($start!='') { |
|
250 | + if ($start != '') { |
|
251 | 251 | $bban = iban_get_bban_part($iban); |
252 | - return substr($bban,$start+1); |
|
252 | + return substr($bban, $start + 1); |
|
253 | 253 | } |
254 | 254 | return ''; |
255 | 255 | } |
@@ -259,137 +259,137 @@ discard block |
||
259 | 259 | $iban = iban_to_machine_format($iban); |
260 | 260 | $country = iban_get_country_part($iban); |
261 | 261 | $start = iban_country_get_nationalchecksum_start_offset($country); |
262 | - if($start == '') { return ''; } |
|
262 | + if ($start == '') { return ''; } |
|
263 | 263 | $stop = iban_country_get_nationalchecksum_stop_offset($country); |
264 | - if($stop == '') { return ''; } |
|
264 | + if ($stop == '') { return ''; } |
|
265 | 265 | $bban = iban_get_bban_part($iban); |
266 | - return substr($bban,$start,($stop-$start+1)); |
|
266 | + return substr($bban, $start, ($stop - $start + 1)); |
|
267 | 267 | } |
268 | 268 | |
269 | 269 | # Get the name of an IBAN country |
270 | 270 | function iban_country_get_country_name($iban_country) { |
271 | - return _iban_country_get_info($iban_country,'country_name'); |
|
271 | + return _iban_country_get_info($iban_country, 'country_name'); |
|
272 | 272 | } |
273 | 273 | |
274 | 274 | # Get the domestic example for an IBAN country |
275 | 275 | function iban_country_get_domestic_example($iban_country) { |
276 | - return _iban_country_get_info($iban_country,'domestic_example'); |
|
276 | + return _iban_country_get_info($iban_country, 'domestic_example'); |
|
277 | 277 | } |
278 | 278 | |
279 | 279 | # Get the BBAN example for an IBAN country |
280 | 280 | function iban_country_get_bban_example($iban_country) { |
281 | - return _iban_country_get_info($iban_country,'bban_example'); |
|
281 | + return _iban_country_get_info($iban_country, 'bban_example'); |
|
282 | 282 | } |
283 | 283 | |
284 | 284 | # Get the BBAN format (in SWIFT format) for an IBAN country |
285 | 285 | function iban_country_get_bban_format_swift($iban_country) { |
286 | - return _iban_country_get_info($iban_country,'bban_format_swift'); |
|
286 | + return _iban_country_get_info($iban_country, 'bban_format_swift'); |
|
287 | 287 | } |
288 | 288 | |
289 | 289 | # Get the BBAN format (as a regular expression) for an IBAN country |
290 | 290 | function iban_country_get_bban_format_regex($iban_country) { |
291 | - return _iban_country_get_info($iban_country,'bban_format_regex'); |
|
291 | + return _iban_country_get_info($iban_country, 'bban_format_regex'); |
|
292 | 292 | } |
293 | 293 | |
294 | 294 | # Get the BBAN length for an IBAN country |
295 | 295 | function iban_country_get_bban_length($iban_country) { |
296 | - return _iban_country_get_info($iban_country,'bban_length'); |
|
296 | + return _iban_country_get_info($iban_country, 'bban_length'); |
|
297 | 297 | } |
298 | 298 | |
299 | 299 | # Get the IBAN example for an IBAN country |
300 | 300 | function iban_country_get_iban_example($iban_country) { |
301 | - return _iban_country_get_info($iban_country,'iban_example'); |
|
301 | + return _iban_country_get_info($iban_country, 'iban_example'); |
|
302 | 302 | } |
303 | 303 | |
304 | 304 | # Get the IBAN format (in SWIFT format) for an IBAN country |
305 | 305 | function iban_country_get_iban_format_swift($iban_country) { |
306 | - return _iban_country_get_info($iban_country,'iban_format_swift'); |
|
306 | + return _iban_country_get_info($iban_country, 'iban_format_swift'); |
|
307 | 307 | } |
308 | 308 | |
309 | 309 | # Get the IBAN format (as a regular expression) for an IBAN country |
310 | 310 | function iban_country_get_iban_format_regex($iban_country) { |
311 | - return _iban_country_get_info($iban_country,'iban_format_regex'); |
|
311 | + return _iban_country_get_info($iban_country, 'iban_format_regex'); |
|
312 | 312 | } |
313 | 313 | |
314 | 314 | # Get the IBAN length for an IBAN country |
315 | 315 | function iban_country_get_iban_length($iban_country) { |
316 | - return _iban_country_get_info($iban_country,'iban_length'); |
|
316 | + return _iban_country_get_info($iban_country, 'iban_length'); |
|
317 | 317 | } |
318 | 318 | |
319 | 319 | # Get the BBAN Bank ID start offset for an IBAN country |
320 | 320 | function iban_country_get_bankid_start_offset($iban_country) { |
321 | - return _iban_country_get_info($iban_country,'bban_bankid_start_offset'); |
|
321 | + return _iban_country_get_info($iban_country, 'bban_bankid_start_offset'); |
|
322 | 322 | } |
323 | 323 | |
324 | 324 | # Get the BBAN Bank ID stop offset for an IBAN country |
325 | 325 | function iban_country_get_bankid_stop_offset($iban_country) { |
326 | - return _iban_country_get_info($iban_country,'bban_bankid_stop_offset'); |
|
326 | + return _iban_country_get_info($iban_country, 'bban_bankid_stop_offset'); |
|
327 | 327 | } |
328 | 328 | |
329 | 329 | # Get the BBAN Branch ID start offset for an IBAN country |
330 | 330 | function iban_country_get_branchid_start_offset($iban_country) { |
331 | - return _iban_country_get_info($iban_country,'bban_branchid_start_offset'); |
|
331 | + return _iban_country_get_info($iban_country, 'bban_branchid_start_offset'); |
|
332 | 332 | } |
333 | 333 | |
334 | 334 | # Get the BBAN Branch ID stop offset for an IBAN country |
335 | 335 | function iban_country_get_branchid_stop_offset($iban_country) { |
336 | - return _iban_country_get_info($iban_country,'bban_branchid_stop_offset'); |
|
336 | + return _iban_country_get_info($iban_country, 'bban_branchid_stop_offset'); |
|
337 | 337 | } |
338 | 338 | |
339 | 339 | # Get the BBAN (national) checksum start offset for an IBAN country |
340 | 340 | # Returns '' when (often) not present) |
341 | 341 | function iban_country_get_nationalchecksum_start_offset($iban_country) { |
342 | - return _iban_country_get_info($iban_country,'bban_checksum_start_offset'); |
|
342 | + return _iban_country_get_info($iban_country, 'bban_checksum_start_offset'); |
|
343 | 343 | } |
344 | 344 | |
345 | 345 | # Get the BBAN (national) checksum stop offset for an IBAN country |
346 | 346 | # Returns '' when (often) not present) |
347 | 347 | function iban_country_get_nationalchecksum_stop_offset($iban_country) { |
348 | - return _iban_country_get_info($iban_country,'bban_checksum_stop_offset'); |
|
348 | + return _iban_country_get_info($iban_country, 'bban_checksum_stop_offset'); |
|
349 | 349 | } |
350 | 350 | |
351 | 351 | # Get the registry edition for an IBAN country |
352 | 352 | function iban_country_get_registry_edition($iban_country) { |
353 | - return _iban_country_get_info($iban_country,'registry_edition'); |
|
353 | + return _iban_country_get_info($iban_country, 'registry_edition'); |
|
354 | 354 | } |
355 | 355 | |
356 | 356 | # Is the IBAN country one official issued by SWIFT? |
357 | 357 | function iban_country_get_country_swift_official($iban_country) { |
358 | - return _iban_country_get_info($iban_country,'country_swift_official'); |
|
358 | + return _iban_country_get_info($iban_country, 'country_swift_official'); |
|
359 | 359 | } |
360 | 360 | |
361 | 361 | # Is the IBAN country a SEPA member? |
362 | 362 | function iban_country_is_sepa($iban_country) { |
363 | - return _iban_country_get_info($iban_country,'country_sepa'); |
|
363 | + return _iban_country_get_info($iban_country, 'country_sepa'); |
|
364 | 364 | } |
365 | 365 | |
366 | 366 | # Get the IANA code of an IBAN country |
367 | 367 | function iban_country_get_iana($iban_country) { |
368 | - return _iban_country_get_info($iban_country,'country_iana'); |
|
368 | + return _iban_country_get_info($iban_country, 'country_iana'); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | # Get the ISO3166-1 alpha-2 code of an IBAN country |
372 | 372 | function iban_country_get_iso3166($iban_country) { |
373 | - return _iban_country_get_info($iban_country,'country_iso3166'); |
|
373 | + return _iban_country_get_info($iban_country, 'country_iso3166'); |
|
374 | 374 | } |
375 | 375 | |
376 | 376 | # Get the parent registrar IBAN country of an IBAN country |
377 | 377 | function iban_country_get_parent_registrar($iban_country) { |
378 | - return _iban_country_get_info($iban_country,'parent_registrar'); |
|
378 | + return _iban_country_get_info($iban_country, 'parent_registrar'); |
|
379 | 379 | } |
380 | 380 | |
381 | 381 | # Get the official currency of an IBAN country as an ISO4217 alpha code |
382 | 382 | # (Note: Returns '' if there is no official currency, eg. for AA (IIBAN)) |
383 | 383 | function iban_country_get_currency_iso4217($iban_country) { |
384 | - return _iban_country_get_info($iban_country,'currency_iso4217'); |
|
384 | + return _iban_country_get_info($iban_country, 'currency_iso4217'); |
|
385 | 385 | } |
386 | 386 | |
387 | 387 | # Get the URL of an IBAN country's central bank |
388 | 388 | # (Note: Returns '' if there is no central bank. Also, note that |
389 | 389 | # sometimes multiple countries share one central bank) |
390 | 390 | function iban_country_get_central_bank_url($iban_country) { |
391 | - $result = _iban_country_get_info($iban_country,'central_bank_url'); |
|
392 | - if($result!='') { $result = 'http://' . $result . '/'; } |
|
391 | + $result = _iban_country_get_info($iban_country, 'central_bank_url'); |
|
392 | + if ($result != '') { $result = 'http://'.$result.'/'; } |
|
393 | 393 | return $result; |
394 | 394 | } |
395 | 395 | |
@@ -397,7 +397,7 @@ discard block |
||
397 | 397 | # (Note: Returns '' if there is no central bank. Also, note that |
398 | 398 | # sometimes multiple countries share one central bank) |
399 | 399 | function iban_country_get_central_bank_name($iban_country) { |
400 | - return _iban_country_get_info($iban_country,'central_bank_name'); |
|
400 | + return _iban_country_get_info($iban_country, 'central_bank_name'); |
|
401 | 401 | } |
402 | 402 | |
403 | 403 | # Get the list of all IBAN countries |
@@ -410,13 +410,13 @@ discard block |
||
410 | 410 | # Get the membership of an IBAN country |
411 | 411 | # (Note: Possible Values eu_member, efta_member, other_member, non_member) |
412 | 412 | function iban_country_get_membership($iban_country) { |
413 | - return _iban_country_get_info($iban_country,'membership'); |
|
413 | + return _iban_country_get_info($iban_country, 'membership'); |
|
414 | 414 | } |
415 | 415 | |
416 | 416 | # Get the membership of an IBAN country |
417 | 417 | # (Note: Possible Values eu_member, efta_member, other_member, non_member) |
418 | 418 | function iban_country_get_is_eu_member($iban_country) { |
419 | - $membership = _iban_country_get_info($iban_country,'membership'); |
|
419 | + $membership = _iban_country_get_info($iban_country, 'membership'); |
|
420 | 420 | if ($membership === 'eu_member') { |
421 | 421 | $result = true; |
422 | 422 | } else { |
@@ -445,10 +445,10 @@ discard block |
||
445 | 445 | |
446 | 446 | # abort on ridiculous length input (but be liberal) |
447 | 447 | $length = strlen($incorrect_iban); |
448 | - if($length<5 || $length>34) { return array('(supplied iban length insane)'); } |
|
448 | + if ($length < 5 || $length > 34) { return array('(supplied iban length insane)'); } |
|
449 | 449 | |
450 | 450 | # abort if mistranscriptions data is unable to load |
451 | - if(!_iban_load_mistranscriptions()) { return array('(failed to load mistranscriptions)'); } |
|
451 | + if (!_iban_load_mistranscriptions()) { return array('(failed to load mistranscriptions)'); } |
|
452 | 452 | |
453 | 453 | # init |
454 | 454 | global $_iban_mistranscriptions; |
@@ -456,27 +456,27 @@ discard block |
||
456 | 456 | |
457 | 457 | # we have a string of approximately IBAN-like length. |
458 | 458 | # ... now let's make suggestions. |
459 | - $numbers = array('0','1','2','3','4','5','6','7','8','9'); |
|
460 | - for($i=0;$i<$length;$i++) { |
|
459 | + $numbers = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); |
|
460 | + for ($i = 0; $i < $length; $i++) { |
|
461 | 461 | # get the character at this position |
462 | - $character = substr($incorrect_iban,$i,1); |
|
462 | + $character = substr($incorrect_iban, $i, 1); |
|
463 | 463 | # for each known transcription error resulting in this character |
464 | - foreach($_iban_mistranscriptions[$character] as $possible_origin) { |
|
464 | + foreach ($_iban_mistranscriptions[$character] as $possible_origin) { |
|
465 | 465 | # if we're: |
466 | 466 | # - in the first 2 characters (country) and the possible replacement |
467 | 467 | # is a letter |
468 | 468 | # - in the 3rd or 4th characters (checksum) and the possible |
469 | 469 | # replacement is a number |
470 | 470 | # - later in the string |
471 | - if(($i<2 && !in_array($possible_origin,$numbers)) || |
|
472 | - ($i>=2 && $i<=3 && in_array($possible_origin,$numbers)) || |
|
473 | - $i>3) { |
|
471 | + if (($i < 2 && !in_array($possible_origin, $numbers)) || |
|
472 | + ($i >= 2 && $i <= 3 && in_array($possible_origin, $numbers)) || |
|
473 | + $i > 3) { |
|
474 | 474 | # construct a possible IBAN using this possible origin for the |
475 | 475 | # mistranscribed character, replaced at this position only |
476 | - $possible_iban = substr($incorrect_iban,0,$i) . $possible_origin . substr($incorrect_iban,$i+1); |
|
476 | + $possible_iban = substr($incorrect_iban, 0, $i).$possible_origin.substr($incorrect_iban, $i + 1); |
|
477 | 477 | # if the checksum passes, return it as a possibility |
478 | - if(verify_iban($possible_iban)) { |
|
479 | - array_push($suggestions,$possible_iban); |
|
478 | + if (verify_iban($possible_iban)) { |
|
479 | + array_push($suggestions, $possible_iban); |
|
480 | 480 | } |
481 | 481 | } |
482 | 482 | } |
@@ -486,23 +486,23 @@ discard block |
||
486 | 486 | # the characters of a certain type within a string were mistransposed. |
487 | 487 | # - first generate a character frequency table |
488 | 488 | $char_freqs = array(); |
489 | - for($i=0;$i<strlen($incorrect_iban);$i++) { |
|
490 | - if(!isset($char_freqs[substr($incorrect_iban,$i,1)])) { |
|
491 | - $char_freqs[substr($incorrect_iban,$i,1)] = 1; |
|
489 | + for ($i = 0; $i < strlen($incorrect_iban); $i++) { |
|
490 | + if (!isset($char_freqs[substr($incorrect_iban, $i, 1)])) { |
|
491 | + $char_freqs[substr($incorrect_iban, $i, 1)] = 1; |
|
492 | 492 | } |
493 | 493 | else { |
494 | - $char_freqs[substr($incorrect_iban,$i,1)]++; |
|
494 | + $char_freqs[substr($incorrect_iban, $i, 1)]++; |
|
495 | 495 | } |
496 | 496 | } |
497 | 497 | # - now, for each of the characters in the string... |
498 | - foreach($char_freqs as $char=>$freq) { |
|
498 | + foreach ($char_freqs as $char=>$freq) { |
|
499 | 499 | # if the character occurs more than once |
500 | - if($freq>1) { |
|
500 | + if ($freq > 1) { |
|
501 | 501 | # check the 'all occurrences of <char> were mistranscribed' case |
502 | - foreach($_iban_mistranscriptions[$char] as $possible_origin) { |
|
503 | - $possible_iban = str_replace($char,$possible_origin,$incorrect_iban); |
|
504 | - if(verify_iban($possible_iban)) { |
|
505 | - array_push($suggestions,$possible_iban); |
|
502 | + foreach ($_iban_mistranscriptions[$char] as $possible_origin) { |
|
503 | + $possible_iban = str_replace($char, $possible_origin, $incorrect_iban); |
|
504 | + if (verify_iban($possible_iban)) { |
|
505 | + array_push($suggestions, $possible_iban); |
|
506 | 506 | } |
507 | 507 | } |
508 | 508 | } |
@@ -520,26 +520,26 @@ discard block |
||
520 | 520 | function _iban_load_registry() { |
521 | 521 | global $_iban_registry; |
522 | 522 | # if the registry is not yet loaded, or has been corrupted, reload |
523 | - if(!is_array($_iban_registry) || count($_iban_registry)<1) { |
|
524 | - $data = file_get_contents(dirname(__FILE__) . '/registry.txt'); |
|
525 | - $lines = explode("\n",$data); |
|
523 | + if (!is_array($_iban_registry) || count($_iban_registry) < 1) { |
|
524 | + $data = file_get_contents(dirname(__FILE__).'/registry.txt'); |
|
525 | + $lines = explode("\n", $data); |
|
526 | 526 | array_shift($lines); # drop leading description line |
527 | 527 | # loop through lines |
528 | - foreach($lines as $line) { |
|
529 | - if($line!='') { |
|
528 | + foreach ($lines as $line) { |
|
529 | + if ($line != '') { |
|
530 | 530 | # avoid spewing tonnes of PHP warnings under bad PHP configs - see issue #69 |
531 | - if(function_exists('ini_set')) { |
|
531 | + if (function_exists('ini_set')) { |
|
532 | 532 | # split to fields |
533 | 533 | $old_display_errors_value = ini_get('display_errors'); |
534 | - ini_set('display_errors',false); |
|
534 | + ini_set('display_errors', false); |
|
535 | 535 | $old_error_reporting_value = ini_get('error_reporting'); |
536 | - ini_set('error_reporting',false); |
|
536 | + ini_set('error_reporting', false); |
|
537 | 537 | } |
538 | - list($country,$country_name,$domestic_example,$bban_example,$bban_format_swift,$bban_format_regex,$bban_length,$iban_example,$iban_format_swift,$iban_format_regex,$iban_length,$bban_bankid_start_offset,$bban_bankid_stop_offset,$bban_branchid_start_offset,$bban_branchid_stop_offset,$registry_edition,$country_sepa,$country_swift_official,$bban_checksum_start_offset,$bban_checksum_stop_offset,$country_iana,$country_iso3166,$parent_registrar,$currency_iso4217,$central_bank_url,$central_bank_name,$membership) = explode('|',$line); |
|
538 | + list($country, $country_name, $domestic_example, $bban_example, $bban_format_swift, $bban_format_regex, $bban_length, $iban_example, $iban_format_swift, $iban_format_regex, $iban_length, $bban_bankid_start_offset, $bban_bankid_stop_offset, $bban_branchid_start_offset, $bban_branchid_stop_offset, $registry_edition, $country_sepa, $country_swift_official, $bban_checksum_start_offset, $bban_checksum_stop_offset, $country_iana, $country_iso3166, $parent_registrar, $currency_iso4217, $central_bank_url, $central_bank_name, $membership) = explode('|', $line); |
|
539 | 539 | # avoid spewing tonnes of PHP warnings under bad PHP configs - see issue #69 |
540 | - if(function_exists('ini_set')) { |
|
541 | - ini_set('display_errors',$old_display_errors_value); |
|
542 | - ini_set('error_reporting',$old_error_reporting_value); |
|
540 | + if (function_exists('ini_set')) { |
|
541 | + ini_set('display_errors', $old_display_errors_value); |
|
542 | + ini_set('error_reporting', $old_error_reporting_value); |
|
543 | 543 | } |
544 | 544 | # assign to registry |
545 | 545 | $_iban_registry[$country] = array( |
@@ -577,19 +577,19 @@ discard block |
||
577 | 577 | } |
578 | 578 | |
579 | 579 | # Get information from the IBAN registry by example IBAN / code combination |
580 | -function _iban_get_info($iban,$code) { |
|
580 | +function _iban_get_info($iban, $code) { |
|
581 | 581 | $country = iban_get_country_part($iban); |
582 | - return _iban_country_get_info($country,$code); |
|
582 | + return _iban_country_get_info($country, $code); |
|
583 | 583 | } |
584 | 584 | |
585 | 585 | # Get information from the IBAN registry by country / code combination |
586 | -function _iban_country_get_info($country,$code) { |
|
586 | +function _iban_country_get_info($country, $code) { |
|
587 | 587 | _iban_load_registry(); |
588 | 588 | global $_iban_registry; |
589 | 589 | $country = strtoupper($country); |
590 | 590 | $code = strtolower($code); |
591 | - if(array_key_exists($country,$_iban_registry)) { |
|
592 | - if(array_key_exists($code,$_iban_registry[$country])) { |
|
591 | + if (array_key_exists($country, $_iban_registry)) { |
|
592 | + if (array_key_exists($code, $_iban_registry[$country])) { |
|
593 | 593 | return $_iban_registry[$country][$code]; |
594 | 594 | } |
595 | 595 | } |
@@ -600,19 +600,19 @@ discard block |
||
600 | 600 | function _iban_load_mistranscriptions() { |
601 | 601 | global $_iban_mistranscriptions; |
602 | 602 | # do not reload if already present |
603 | - if(is_array($_iban_mistranscriptions) && count($_iban_mistranscriptions) == 36) { return true; } |
|
603 | + if (is_array($_iban_mistranscriptions) && count($_iban_mistranscriptions) == 36) { return true; } |
|
604 | 604 | $_iban_mistranscriptions = array(); |
605 | - $file = dirname(__FILE__) . '/mistranscriptions.txt'; |
|
606 | - if(!file_exists($file) || !is_readable($file)) { return false; } |
|
605 | + $file = dirname(__FILE__).'/mistranscriptions.txt'; |
|
606 | + if (!file_exists($file) || !is_readable($file)) { return false; } |
|
607 | 607 | $data = file_get_contents($file); |
608 | - $lines = explode("\n",$data); |
|
609 | - foreach($lines as $line) { |
|
608 | + $lines = explode("\n", $data); |
|
609 | + foreach ($lines as $line) { |
|
610 | 610 | # match lines with ' c-<x> = <something>' where x is a word-like character |
611 | - if(preg_match('/^ *c-(\w) = (.*?)$/',$line,$matches)) { |
|
611 | + if (preg_match('/^ *c-(\w) = (.*?)$/', $line, $matches)) { |
|
612 | 612 | # normalize the character to upper case |
613 | 613 | $character = strtoupper($matches[1]); |
614 | 614 | # break the possible origins list at '/', strip quotes & spaces |
615 | - $chars = explode(' ',str_replace('"','',preg_replace('/ *?\/ *?/','',$matches[2]))); |
|
615 | + $chars = explode(' ', str_replace('"', '', preg_replace('/ *?\/ *?/', '', $matches[2]))); |
|
616 | 616 | # assign as possible mistranscriptions for that character |
617 | 617 | $_iban_mistranscriptions[$character] = $chars; |
618 | 618 | } |
@@ -624,42 +624,42 @@ discard block |
||
624 | 624 | # (Returns the correct national checksum as a string, or '' if unimplemented for this IBAN's country) |
625 | 625 | # (NOTE: only works for some countries) |
626 | 626 | function iban_find_nationalchecksum($iban) { |
627 | - return _iban_nationalchecksum_implementation($iban,'find'); |
|
627 | + return _iban_nationalchecksum_implementation($iban, 'find'); |
|
628 | 628 | } |
629 | 629 | |
630 | 630 | # Verify the correct national checksum for an IBAN |
631 | 631 | # (Returns true or false, or '' if unimplemented for this IBAN's country) |
632 | 632 | # (NOTE: only works for some countries) |
633 | 633 | function iban_verify_nationalchecksum($iban) { |
634 | - return _iban_nationalchecksum_implementation($iban,'verify'); |
|
634 | + return _iban_nationalchecksum_implementation($iban, 'verify'); |
|
635 | 635 | } |
636 | 636 | |
637 | 637 | # Verify the correct national checksum for an IBAN |
638 | 638 | # (Returns the (possibly) corrected IBAN, or '' if unimplemented for this IBAN's country) |
639 | 639 | # (NOTE: only works for some countries) |
640 | 640 | function iban_set_nationalchecksum($iban) { |
641 | - $result = _iban_nationalchecksum_implementation($iban,'set'); |
|
642 | - if($result != '' ) { |
|
641 | + $result = _iban_nationalchecksum_implementation($iban, 'set'); |
|
642 | + if ($result != '') { |
|
643 | 643 | $result = iban_set_checksum($result); # recalculate IBAN-level checksum |
644 | 644 | } |
645 | 645 | return $result; |
646 | 646 | } |
647 | 647 | |
648 | 648 | # Internal function to overwrite the national checksum portion of an IBAN |
649 | -function _iban_nationalchecksum_set($iban,$nationalchecksum) { |
|
649 | +function _iban_nationalchecksum_set($iban, $nationalchecksum) { |
|
650 | 650 | $country = iban_get_country_part($iban); |
651 | 651 | $start = iban_country_get_nationalchecksum_start_offset($country); |
652 | - if($start == '') { return ''; } |
|
652 | + if ($start == '') { return ''; } |
|
653 | 653 | $stop = iban_country_get_nationalchecksum_stop_offset($country); |
654 | - if($stop == '') { return ''; } |
|
654 | + if ($stop == '') { return ''; } |
|
655 | 655 | # determine the BBAN |
656 | 656 | $bban = iban_get_bban_part($iban); |
657 | 657 | # alter the BBAN |
658 | - $firstbit = substr($bban,0,$start); # 'string before the checksum' |
|
659 | - $lastbit = substr($bban,$stop+1); # 'string after the checksum' |
|
660 | - $fixed_bban = $firstbit . $nationalchecksum . $lastbit; |
|
658 | + $firstbit = substr($bban, 0, $start); # 'string before the checksum' |
|
659 | + $lastbit = substr($bban, $stop + 1); # 'string after the checksum' |
|
660 | + $fixed_bban = $firstbit.$nationalchecksum.$lastbit; |
|
661 | 661 | # reconstruct the fixed IBAN |
662 | - $fixed_iban = $country . iban_get_checksum_part($iban) . $fixed_bban; |
|
662 | + $fixed_iban = $country.iban_get_checksum_part($iban).$fixed_bban; |
|
663 | 663 | return $fixed_iban; |
664 | 664 | } |
665 | 665 | |
@@ -674,7 +674,7 @@ discard block |
||
674 | 674 | } |
675 | 675 | $p %= 11; |
676 | 676 | $result = (12 - $p) % 11; |
677 | - if($result == 10) { $result = 'X'; } |
|
677 | + if ($result == 10) { $result = 'X'; } |
|
678 | 678 | return $result; |
679 | 679 | } |
680 | 680 | |
@@ -693,41 +693,41 @@ discard block |
||
693 | 693 | $w1 = $wi[($i_size1 - $i) % 10]; |
694 | 694 | $sigma += ($i1 * $w1) % 11; |
695 | 695 | } |
696 | - if($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString); |
|
696 | + if ($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString); |
|
697 | 697 | else return $hash_map[($sigma % 11)]; |
698 | 698 | } |
699 | 699 | |
700 | 700 | # ISO7064 MOD97-10 (Bosnia, etc.) |
701 | 701 | # (Credit: Adapted from https://github.com/stvkoch/ISO7064-Mod-97-10/blob/master/ISO7064Mod97_10.php) |
702 | 702 | function _iso7064_mod97_10($str) { |
703 | - $ai=1; |
|
704 | - $ch = ord($str[strlen($str)-1]) - 48; |
|
705 | - if($ch < 0 || $ch > 9) return false; |
|
706 | - $check=$ch; |
|
707 | - for($i=strlen($str)-2;$i>=0;$i--) { |
|
703 | + $ai = 1; |
|
704 | + $ch = ord($str[strlen($str) - 1]) - 48; |
|
705 | + if ($ch < 0 || $ch > 9) return false; |
|
706 | + $check = $ch; |
|
707 | + for ($i = strlen($str) - 2; $i >= 0; $i--) { |
|
708 | 708 | $ch = ord($str[$i]) - 48; |
709 | 709 | if ($ch < 0 || $ch > 9) return false; |
710 | - $ai=($ai*10)%97; |
|
711 | - $check+= ($ai * ((int)$ch)); |
|
710 | + $ai = ($ai * 10) % 97; |
|
711 | + $check += ($ai * ((int) $ch)); |
|
712 | 712 | } |
713 | - return (98-($check%97)); |
|
713 | + return (98 - ($check % 97)); |
|
714 | 714 | } |
715 | 715 | |
716 | 716 | # Implement the national checksum for a Belgium (BE) IBAN |
717 | 717 | # (Credit: @gaetan-be, fixed by @Olympic1) |
718 | -function _iban_nationalchecksum_implementation_be($iban,$mode) { |
|
719 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
718 | +function _iban_nationalchecksum_implementation_be($iban, $mode) { |
|
719 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
720 | 720 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
721 | 721 | $bban = iban_get_bban_part($iban); |
722 | 722 | $bban_less_checksum = substr($bban, 0, -strlen($nationalchecksum)); |
723 | 723 | $expected_nationalchecksum = $bban_less_checksum % 97; |
724 | - if($mode=='find') { |
|
724 | + if ($mode == 'find') { |
|
725 | 725 | return $expected_nationalchecksum; |
726 | 726 | } |
727 | - elseif($mode=='set') { |
|
728 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
727 | + elseif ($mode == 'set') { |
|
728 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
729 | 729 | } |
730 | - elseif($mode=='verify') { |
|
730 | + elseif ($mode == 'verify') { |
|
731 | 731 | return ($nationalchecksum == $expected_nationalchecksum); |
732 | 732 | } |
733 | 733 | } |
@@ -735,11 +735,11 @@ discard block |
||
735 | 735 | # MOD11 helper function for the Spanish (ES) IBAN national checksum implementation |
736 | 736 | # (Credit: @dem3trio, code lifted from Spanish Wikipedia at https://es.wikipedia.org/wiki/C%C3%B3digo_cuenta_cliente) |
737 | 737 | function _iban_nationalchecksum_implementation_es_mod11_helper($numero) { |
738 | - if(strlen($numero)!=10) return "?"; |
|
739 | - $cifras = Array(1,2,4,8,5,10,9,7,3,6); |
|
740 | - $chequeo=0; |
|
741 | - for($i=0; $i<10; $i++) { |
|
742 | - $chequeo += substr($numero,$i,1) * $cifras[$i]; |
|
738 | + if (strlen($numero) != 10) return "?"; |
|
739 | + $cifras = Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6); |
|
740 | + $chequeo = 0; |
|
741 | + for ($i = 0; $i < 10; $i++) { |
|
742 | + $chequeo += substr($numero, $i, 1) * $cifras[$i]; |
|
743 | 743 | } |
744 | 744 | $chequeo = 11 - ($chequeo % 11); |
745 | 745 | if ($chequeo == 11) $chequeo = 0; |
@@ -749,24 +749,24 @@ discard block |
||
749 | 749 | |
750 | 750 | # Implement the national checksum for a Spanish (ES) IBAN |
751 | 751 | # (Credit: @dem3trio, adapted from code on Spanish Wikipedia at https://es.wikipedia.org/wiki/C%C3%B3digo_cuenta_cliente) |
752 | -function _iban_nationalchecksum_implementation_es($iban,$mode) { |
|
753 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
752 | +function _iban_nationalchecksum_implementation_es($iban, $mode) { |
|
753 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
754 | 754 | # extract appropriate substrings |
755 | - $bankprefix = iban_get_bank_part($iban) . iban_get_branch_part($iban); |
|
755 | + $bankprefix = iban_get_bank_part($iban).iban_get_branch_part($iban); |
|
756 | 756 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
757 | 757 | $account = iban_get_account_part($iban); |
758 | - $account_less_checksum = substr($account,2); |
|
758 | + $account_less_checksum = substr($account, 2); |
|
759 | 759 | # first we calculate the initial checksum digit, which is MOD11 of the bank prefix with '00' prepended |
760 | 760 | $expected_nationalchecksum = _iban_nationalchecksum_implementation_es_mod11_helper("00".$bankprefix); |
761 | 761 | # then we append the second digit, which is MOD11 of the account |
762 | 762 | $expected_nationalchecksum .= _iban_nationalchecksum_implementation_es_mod11_helper($account_less_checksum); |
763 | - if($mode=='find') { |
|
763 | + if ($mode == 'find') { |
|
764 | 764 | return $expected_nationalchecksum; |
765 | 765 | } |
766 | - elseif($mode=='set') { |
|
767 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
766 | + elseif ($mode == 'set') { |
|
767 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
768 | 768 | } |
769 | - elseif($mode=='verify') { |
|
769 | + elseif ($mode == 'verify') { |
|
770 | 770 | return ($nationalchecksum == $expected_nationalchecksum); |
771 | 771 | } |
772 | 772 | } |
@@ -780,13 +780,13 @@ discard block |
||
780 | 780 | "J" => 1, "K" => 2, "L" => 3, "M" => 4, "N" => 5, "O" => 6, "P" => 7, "Q" => 8, "R" => 9, |
781 | 781 | "S" => 2, "T" => 3, "U" => 4, "V" => 5, "W" => 6, "X" => 7, "Y" => 8, "Z" => 9 |
782 | 782 | ); |
783 | - for ($i=0; $i < strlen($bban); $i++) { |
|
784 | - if(is_numeric($bban[$i])) { |
|
783 | + for ($i = 0; $i < strlen($bban); $i++) { |
|
784 | + if (is_numeric($bban[$i])) { |
|
785 | 785 | $allNumbers .= $bban[$i]; |
786 | 786 | } |
787 | 787 | else { |
788 | 788 | $letter = strtoupper($bban[$i]); |
789 | - if(array_key_exists($letter, $conversion)) { |
|
789 | + if (array_key_exists($letter, $conversion)) { |
|
790 | 790 | $allNumbers .= $conversion[$letter]; |
791 | 791 | } |
792 | 792 | else { |
@@ -811,82 +811,82 @@ discard block |
||
811 | 811 | # correlation, we are going to assume that the first error is theirs. |
812 | 812 | # |
813 | 813 | # Implement the national checksum for a Central African Republic (CF) IBAN |
814 | -function _iban_nationalchecksum_implementation_cf($iban,$mode) { |
|
815 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
814 | +function _iban_nationalchecksum_implementation_cf($iban, $mode) { |
|
815 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
816 | 816 | } |
817 | 817 | |
818 | 818 | # Implement the national checksum for a Chad (TD) IBAN |
819 | -function _iban_nationalchecksum_implementation_td($iban,$mode) { |
|
820 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
819 | +function _iban_nationalchecksum_implementation_td($iban, $mode) { |
|
820 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
821 | 821 | } |
822 | 822 | |
823 | 823 | # Implement the national checksum for a Comoros (KM) IBAN |
824 | -function _iban_nationalchecksum_implementation_km($iban,$mode) { |
|
825 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
824 | +function _iban_nationalchecksum_implementation_km($iban, $mode) { |
|
825 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
826 | 826 | } |
827 | 827 | |
828 | 828 | # Implement the national checksum for a Congo (CG) IBAN |
829 | -function _iban_nationalchecksum_implementation_cg($iban,$mode) { |
|
830 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
829 | +function _iban_nationalchecksum_implementation_cg($iban, $mode) { |
|
830 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
831 | 831 | } |
832 | 832 | |
833 | 833 | # Implement the national checksum for a Djibouti (DJ) IBAN |
834 | -function _iban_nationalchecksum_implementation_dj($iban,$mode) { |
|
835 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
834 | +function _iban_nationalchecksum_implementation_dj($iban, $mode) { |
|
835 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
836 | 836 | } |
837 | 837 | |
838 | 838 | # Implement the national checksum for an Equitorial Guinea (GQ) IBAN |
839 | -function _iban_nationalchecksum_implementation_gq($iban,$mode) { |
|
840 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
839 | +function _iban_nationalchecksum_implementation_gq($iban, $mode) { |
|
840 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
841 | 841 | } |
842 | 842 | |
843 | 843 | # Implement the national checksum for a Gabon (GA) IBAN |
844 | -function _iban_nationalchecksum_implementation_ga($iban,$mode) { |
|
845 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
844 | +function _iban_nationalchecksum_implementation_ga($iban, $mode) { |
|
845 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
846 | 846 | } |
847 | 847 | |
848 | 848 | # Implement the national checksum for a Monaco (MC) IBAN |
849 | 849 | # (Credit: @gaetan-be) |
850 | -function _iban_nationalchecksum_implementation_mc($iban,$mode) { |
|
851 | - return _iban_nationalchecksum_implementation_fr($iban,$mode); |
|
850 | +function _iban_nationalchecksum_implementation_mc($iban, $mode) { |
|
851 | + return _iban_nationalchecksum_implementation_fr($iban, $mode); |
|
852 | 852 | } |
853 | 853 | |
854 | 854 | # Implement the national checksum for a France (FR) IBAN |
855 | 855 | # (Credit: @gaetan-be, http://www.credit-card.be/BankAccount/ValidationRules.htm#FR_Validation and |
856 | 856 | # https://docs.oracle.com/cd/E18727_01/doc.121/e13483/T359831T498954.htm) |
857 | -function _iban_nationalchecksum_implementation_fr($iban,$mode) { |
|
858 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
857 | +function _iban_nationalchecksum_implementation_fr($iban, $mode) { |
|
858 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
859 | 859 | # first, extract the BBAN |
860 | 860 | $bban = iban_get_bban_part($iban); |
861 | 861 | # convert to numeric form |
862 | 862 | $bban_numeric_form = _iban_nationalchecksum_implementation_fr_letters2numbers_helper($bban); |
863 | 863 | # if the result was null, something is horribly wrong |
864 | - if(is_null($bban_numeric_form)) { return ''; } |
|
864 | + if (is_null($bban_numeric_form)) { return ''; } |
|
865 | 865 | # extract other parts |
866 | - $bank = substr($bban_numeric_form,0,5); |
|
867 | - $branch = substr($bban_numeric_form,5,5); |
|
868 | - $account = substr($bban_numeric_form,10,11); |
|
866 | + $bank = substr($bban_numeric_form, 0, 5); |
|
867 | + $branch = substr($bban_numeric_form, 5, 5); |
|
868 | + $account = substr($bban_numeric_form, 10, 11); |
|
869 | 869 | # actual implementation: mod97( (89 x bank number "Code banque") + (15 x branch code "Code guichet") + (3 x account number "Numéro de compte") ) |
870 | - $sum = (89*($bank+0)) + ((15*($branch+0))); |
|
871 | - $sum += (3*($account+0)); |
|
870 | + $sum = (89 * ($bank + 0)) + ((15 * ($branch + 0))); |
|
871 | + $sum += (3 * ($account + 0)); |
|
872 | 872 | $expected_nationalchecksum = 97 - ($sum % 97); |
873 | - if(strlen($expected_nationalchecksum) == 1) { $expected_nationalchecksum = '0' . $expected_nationalchecksum; } |
|
873 | + if (strlen($expected_nationalchecksum) == 1) { $expected_nationalchecksum = '0'.$expected_nationalchecksum; } |
|
874 | 874 | # return |
875 | - if($mode=='find') { |
|
875 | + if ($mode == 'find') { |
|
876 | 876 | return $expected_nationalchecksum; |
877 | 877 | } |
878 | - elseif($mode=='set') { |
|
879 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
878 | + elseif ($mode == 'set') { |
|
879 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
880 | 880 | } |
881 | - elseif($mode=='verify') { |
|
881 | + elseif ($mode == 'verify') { |
|
882 | 882 | return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); |
883 | 883 | } |
884 | 884 | } |
885 | 885 | |
886 | 886 | # Implement the national checksum for a Norway (NO) IBAN |
887 | 887 | # (NOTE: Built from description at https://docs.oracle.com/cd/E18727_01/doc.121/e13483/T359831T498954.htm, not well tested) |
888 | -function _iban_nationalchecksum_implementation_no($iban,$mode) { |
|
889 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
888 | +function _iban_nationalchecksum_implementation_no($iban, $mode) { |
|
889 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
890 | 890 | # first, extract the BBAN |
891 | 891 | $bban = iban_get_bban_part($iban); |
892 | 892 | # then, the account |
@@ -894,12 +894,12 @@ discard block |
||
894 | 894 | # existing checksum |
895 | 895 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
896 | 896 | # bban less checksum |
897 | - $bban_less_checksum = substr($bban,0,strlen($bban)-strlen($nationalchecksum)); |
|
897 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - strlen($nationalchecksum)); |
|
898 | 898 | # factor table |
899 | - $factors = array(5,4,3,2,7,6,5,4,3,2); |
|
899 | + $factors = array(5, 4, 3, 2, 7, 6, 5, 4, 3, 2); |
|
900 | 900 | # calculate checksum |
901 | 901 | $total = 0; |
902 | - for($i=0;$i<10;$i++) { |
|
902 | + for ($i = 0; $i < 10; $i++) { |
|
903 | 903 | $total += $bban_less_checksum[$i] * $factors[$i]; |
904 | 904 | } |
905 | 905 | $total += $nationalchecksum; |
@@ -907,18 +907,18 @@ discard block |
||
907 | 907 | $remainder = $total % 11; |
908 | 908 | # to find the correct check digit, we add the remainder to the current check digit, |
909 | 909 | # mod10 (ie. rounding at 10, such that 10 = 0, 11 = 1, etc.) |
910 | - $calculated_checksum = ($nationalchecksum + $remainder)%10; |
|
911 | - if($mode == 'find') { |
|
912 | - if($remainder == 0) { return $nationalchecksum; } |
|
910 | + $calculated_checksum = ($nationalchecksum + $remainder) % 10; |
|
911 | + if ($mode == 'find') { |
|
912 | + if ($remainder == 0) { return $nationalchecksum; } |
|
913 | 913 | else { |
914 | 914 | return $calculated_checksum; |
915 | 915 | } |
916 | 916 | } |
917 | - elseif($mode == 'set') { |
|
918 | - return _iban_nationalchecksum_set($iban,$calculated_checksum); |
|
917 | + elseif ($mode == 'set') { |
|
918 | + return _iban_nationalchecksum_set($iban, $calculated_checksum); |
|
919 | 919 | } |
920 | - elseif($mode == 'verify') { |
|
921 | - if($remainder == 0) { return true; } |
|
920 | + elseif ($mode == 'verify') { |
|
921 | + if ($remainder == 0) { return true; } |
|
922 | 922 | return false; |
923 | 923 | } |
924 | 924 | } |
@@ -930,86 +930,86 @@ discard block |
||
930 | 930 | # (Credit: php-iso7064 @ https://github.com/globalcitizen/php-iso7064) |
931 | 931 | function _iso7064_mod11_2($input) { |
932 | 932 | $input = strtoupper($input); # normalize |
933 | - if(!preg_match('/^[0123456789]+$/',$input)) { return ''; } # bad input |
|
933 | + if (!preg_match('/^[0123456789]+$/', $input)) { return ''; } # bad input |
|
934 | 934 | $modulus = 11; |
935 | 935 | $radix = 2; |
936 | 936 | $output_values = '0123456789X'; |
937 | 937 | $p = 0; |
938 | - for($i=0; $i<strlen($input); $i++) { |
|
939 | - $val = strpos($output_values,substr($input,$i,1)); |
|
940 | - if($val < 0) { return ''; } # illegal character encountered |
|
938 | + for ($i = 0; $i < strlen($input); $i++) { |
|
939 | + $val = strpos($output_values, substr($input, $i, 1)); |
|
940 | + if ($val < 0) { return ''; } # illegal character encountered |
|
941 | 941 | $p = (($p + $val) * $radix) % $modulus; |
942 | 942 | } |
943 | 943 | $checksum = ($modulus - $p + 1) % $modulus; |
944 | - return substr($output_values,$checksum,1); |
|
944 | + return substr($output_values, $checksum, 1); |
|
945 | 945 | } |
946 | 946 | |
947 | 947 | # Implement the national checksum systems based on ISO7064 MOD11-2 Algorithm |
948 | -function _iban_nationalchecksum_implementation_iso7064_mod11_2($iban,$mode,$drop_at_front=0,$drop_at_end=1) { |
|
949 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
948 | +function _iban_nationalchecksum_implementation_iso7064_mod11_2($iban, $mode, $drop_at_front = 0, $drop_at_end = 1) { |
|
949 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
950 | 950 | # first, extract the BBAN |
951 | 951 | $bban = iban_get_bban_part($iban); |
952 | 952 | # get the current and computed checksum |
953 | 953 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
954 | 954 | # drop characters from the front and end of the BBAN as requested |
955 | - $bban_less_checksum = substr($bban,$drop_at_front,strlen($bban)-$drop_at_end); |
|
955 | + $bban_less_checksum = substr($bban, $drop_at_front, strlen($bban) - $drop_at_end); |
|
956 | 956 | # calculate expected checksum |
957 | 957 | $expected_nationalchecksum = _iso7064_mod11_2($bban_less_checksum); |
958 | 958 | # return |
959 | - if($mode=='find') { |
|
959 | + if ($mode == 'find') { |
|
960 | 960 | return $expected_nationalchecksum; |
961 | 961 | } |
962 | - elseif($mode=='set') { |
|
963 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
962 | + elseif ($mode == 'set') { |
|
963 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
964 | 964 | } |
965 | - elseif($mode=='verify') { |
|
965 | + elseif ($mode == 'verify') { |
|
966 | 966 | return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); |
967 | 967 | } |
968 | 968 | } |
969 | 969 | |
970 | 970 | # Implement the national checksum systems based on Damm Algorithm |
971 | -function _iban_nationalchecksum_implementation_damm($iban,$mode) { |
|
972 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
971 | +function _iban_nationalchecksum_implementation_damm($iban, $mode) { |
|
972 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
973 | 973 | # first, extract the BBAN |
974 | 974 | $bban = iban_get_bban_part($iban); |
975 | 975 | # get the current and computed checksum |
976 | 976 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
977 | 977 | # drop trailing checksum characters |
978 | - $bban_less_checksum = substr($bban,0,strlen($bban)-strlen($nationalchecksum)); |
|
978 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - strlen($nationalchecksum)); |
|
979 | 979 | # calculate expected checksum |
980 | 980 | $expected_nationalchecksum = _damm($bban_less_checksum); |
981 | 981 | # return |
982 | - if($mode=='find') { |
|
982 | + if ($mode == 'find') { |
|
983 | 983 | return $expected_nationalchecksum; |
984 | 984 | } |
985 | - elseif($mode=='set') { |
|
986 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
985 | + elseif ($mode == 'set') { |
|
986 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
987 | 987 | } |
988 | - elseif($mode=='verify') { |
|
988 | + elseif ($mode == 'verify') { |
|
989 | 989 | return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); |
990 | 990 | } |
991 | 991 | } |
992 | 992 | |
993 | 993 | # Implement the national checksum systems based on Verhoeff Algorithm |
994 | -function _iban_nationalchecksum_implementation_verhoeff($iban,$mode,$strip_length_end,$strip_length_front=0) { |
|
995 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
994 | +function _iban_nationalchecksum_implementation_verhoeff($iban, $mode, $strip_length_end, $strip_length_front = 0) { |
|
995 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
996 | 996 | # first, extract the BBAN |
997 | 997 | $bban = iban_get_bban_part($iban); |
998 | 998 | # if necessary, drop this many leading characters |
999 | - $bban = substr($bban,$strip_length_front); |
|
999 | + $bban = substr($bban, $strip_length_front); |
|
1000 | 1000 | # drop the trailing checksum digit |
1001 | - $bban_less_checksum = substr($bban,0,strlen($bban)-$strip_length_end); |
|
1001 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - $strip_length_end); |
|
1002 | 1002 | # get the current and computed checksum |
1003 | 1003 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
1004 | 1004 | $expected_nationalchecksum = _verhoeff($bban_less_checksum); |
1005 | 1005 | # return |
1006 | - if($mode=='find') { |
|
1006 | + if ($mode == 'find') { |
|
1007 | 1007 | return $expected_nationalchecksum; |
1008 | 1008 | } |
1009 | - elseif($mode=='set') { |
|
1010 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
1009 | + elseif ($mode == 'set') { |
|
1010 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
1011 | 1011 | } |
1012 | - elseif($mode=='verify') { |
|
1012 | + elseif ($mode == 'verify') { |
|
1013 | 1013 | return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); |
1014 | 1014 | } |
1015 | 1015 | } |
@@ -1021,80 +1021,80 @@ discard block |
||
1021 | 1021 | # (Credit: php-iso7064 @ https://github.com/globalcitizen/php-iso7064) |
1022 | 1022 | function _iso7064_mod97_10_generated($input) { |
1023 | 1023 | $input = strtoupper($input); # normalize |
1024 | - if(!preg_match('/^[0123456789]+$/',$input)) { return ''; } # bad input |
|
1024 | + if (!preg_match('/^[0123456789]+$/', $input)) { return ''; } # bad input |
|
1025 | 1025 | $modulus = 97; |
1026 | 1026 | $radix = 10; |
1027 | 1027 | $output_values = '0123456789'; |
1028 | 1028 | $p = 0; |
1029 | - for($i=0; $i<strlen($input); $i++) { |
|
1030 | - $val = strpos($output_values,substr($input,$i,1)); |
|
1031 | - if($val < 0) { return ''; } # illegal character encountered |
|
1029 | + for ($i = 0; $i < strlen($input); $i++) { |
|
1030 | + $val = strpos($output_values, substr($input, $i, 1)); |
|
1031 | + if ($val < 0) { return ''; } # illegal character encountered |
|
1032 | 1032 | $p = (($p + $val) * $radix) % $modulus; |
1033 | 1033 | } |
1034 | -$p = ($p*$radix) % $modulus; |
|
1034 | +$p = ($p * $radix) % $modulus; |
|
1035 | 1035 | $checksum = ($modulus - $p + 1) % $modulus; |
1036 | 1036 | $second = $checksum % $radix; |
1037 | 1037 | $first = ($checksum - $second) / $radix; |
1038 | - return substr($output_values,$first,1) . substr($output_values,$second,1); |
|
1038 | + return substr($output_values, $first, 1).substr($output_values, $second, 1); |
|
1039 | 1039 | } |
1040 | 1040 | |
1041 | 1041 | # Implement the national checksum for an Montenegro (ME) IBAN |
1042 | 1042 | # (NOTE: Reverse engineered) |
1043 | -function _iban_nationalchecksum_implementation_me($iban,$mode) { |
|
1044 | - return _iban_nationalchecksum_implementation_mod97_10($iban,$mode); |
|
1043 | +function _iban_nationalchecksum_implementation_me($iban, $mode) { |
|
1044 | + return _iban_nationalchecksum_implementation_mod97_10($iban, $mode); |
|
1045 | 1045 | } |
1046 | 1046 | |
1047 | 1047 | # Implement the national checksum for an Macedonia (MK) IBAN |
1048 | 1048 | # (NOTE: Reverse engineered) |
1049 | -function _iban_nationalchecksum_implementation_mk($iban,$mode) { |
|
1050 | - return _iban_nationalchecksum_implementation_mod97_10($iban,$mode); |
|
1049 | +function _iban_nationalchecksum_implementation_mk($iban, $mode) { |
|
1050 | + return _iban_nationalchecksum_implementation_mod97_10($iban, $mode); |
|
1051 | 1051 | } |
1052 | 1052 | |
1053 | 1053 | # Implement the national checksum for an Netherlands (NL) IBAN |
1054 | 1054 | # This applies to most banks, but not to 'INGB', therefore we |
1055 | 1055 | # treat it specially here. |
1056 | 1056 | # (Original code: Validate_NL PEAR class, since extended) |
1057 | -function _iban_nationalchecksum_implementation_nl($iban,$mode) { |
|
1058 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1057 | +function _iban_nationalchecksum_implementation_nl($iban, $mode) { |
|
1058 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1059 | 1059 | $bank = iban_get_bank_part($iban); |
1060 | - if(strtoupper($bank) == 'INGB') { |
|
1060 | + if (strtoupper($bank) == 'INGB') { |
|
1061 | 1061 | return ''; |
1062 | 1062 | } |
1063 | 1063 | $account = iban_get_account_part($iban); |
1064 | 1064 | $checksum = 0; |
1065 | 1065 | for ($i = 0; $i < 10; $i++) { |
1066 | - $checksum += ((int)$account[$i] * (10 - $i)); |
|
1066 | + $checksum += ((int) $account[$i] * (10 - $i)); |
|
1067 | 1067 | } |
1068 | 1068 | $remainder = $checksum % 11; |
1069 | - if($mode=='verify') { |
|
1070 | - return ($remainder==0); # we return the result of mod11, if 0 it's good |
|
1069 | + if ($mode == 'verify') { |
|
1070 | + return ($remainder == 0); # we return the result of mod11, if 0 it's good |
|
1071 | 1071 | } |
1072 | - elseif($mode=='set') { |
|
1073 | - if($remainder==0) { |
|
1072 | + elseif ($mode == 'set') { |
|
1073 | + if ($remainder == 0) { |
|
1074 | 1074 | return $iban; # we return as expected if the checksum is ok |
1075 | 1075 | } |
1076 | 1076 | return ''; # we return unimplemented if the checksum is bad |
1077 | 1077 | } |
1078 | - elseif($mode=='find') { |
|
1078 | + elseif ($mode == 'find') { |
|
1079 | 1079 | return ''; # does not make sense for this 0-digit checksum |
1080 | 1080 | } |
1081 | 1081 | } |
1082 | 1082 | |
1083 | 1083 | # Implement the national checksum for an Portugal (PT) IBAN |
1084 | 1084 | # (NOTE: Reverse engineered) |
1085 | -function _iban_nationalchecksum_implementation_pt($iban,$mode) { |
|
1086 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1085 | +function _iban_nationalchecksum_implementation_pt($iban, $mode) { |
|
1086 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1087 | 1087 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
1088 | 1088 | $bban = iban_get_bban_part($iban); |
1089 | - $bban_less_checksum = substr($bban,0,strlen($bban)-2); |
|
1089 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - 2); |
|
1090 | 1090 | $expected_nationalchecksum = _iso7064_mod97_10_generated($bban_less_checksum); |
1091 | - if($mode=='find') { |
|
1091 | + if ($mode == 'find') { |
|
1092 | 1092 | return $expected_nationalchecksum; |
1093 | 1093 | } |
1094 | - elseif($mode=='set') { |
|
1095 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
1094 | + elseif ($mode == 'set') { |
|
1095 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
1096 | 1096 | } |
1097 | - elseif($mode=='verify') { |
|
1097 | + elseif ($mode == 'verify') { |
|
1098 | 1098 | return ($nationalchecksum == $expected_nationalchecksum); |
1099 | 1099 | } |
1100 | 1100 | } |
@@ -1103,33 +1103,33 @@ discard block |
||
1103 | 1103 | # (NOTE: Reverse engineered, including bank 'Narodna banka Srbije' (908) exception. For two |
1104 | 1104 | # separately published and legitimate looking IBANs from that bank, there appears to |
1105 | 1105 | # be a +97 offset on the checksum, so we simply ignore all checksums for this bank.) |
1106 | -function _iban_nationalchecksum_implementation_rs($iban,$mode) { |
|
1106 | +function _iban_nationalchecksum_implementation_rs($iban, $mode) { |
|
1107 | 1107 | $bank = iban_get_bank_part($iban); |
1108 | - if($bank == '908') { |
|
1108 | + if ($bank == '908') { |
|
1109 | 1109 | return ''; |
1110 | 1110 | } |
1111 | - return _iban_nationalchecksum_implementation_mod97_10($iban,$mode); |
|
1111 | + return _iban_nationalchecksum_implementation_mod97_10($iban, $mode); |
|
1112 | 1112 | } |
1113 | 1113 | |
1114 | 1114 | # Implement the national checksum for an Slovenia (SI) IBAN |
1115 | 1115 | # Note: It appears that the central bank does not use these |
1116 | 1116 | # checksums, thus an exception has been added. |
1117 | 1117 | # (NOTE: Reverse engineered) |
1118 | -function _iban_nationalchecksum_implementation_si($iban,$mode) { |
|
1118 | +function _iban_nationalchecksum_implementation_si($iban, $mode) { |
|
1119 | 1119 | $bank = iban_get_bank_part($iban); |
1120 | 1120 | # Bank of Slovenia does not use the legacy checksum scheme. |
1121 | 1121 | # Accounts in this namespace appear to be the central bank |
1122 | 1122 | # accounts for licensed local banks. |
1123 | - if($bank == '01') { |
|
1123 | + if ($bank == '01') { |
|
1124 | 1124 | return ''; |
1125 | 1125 | } |
1126 | - return _iban_nationalchecksum_implementation_mod97_10($iban,$mode); |
|
1126 | + return _iban_nationalchecksum_implementation_mod97_10($iban, $mode); |
|
1127 | 1127 | } |
1128 | 1128 | |
1129 | 1129 | # Implement the national checksum for Slovak Republic (SK) IBAN |
1130 | 1130 | # Source of algorithm: https://www.nbs.sk/_img/Documents/_Legislativa/_Vestnik/OPAT8-09.pdf |
1131 | 1131 | # Account number is currently verified only, it's possible to also add validation for bank code and account number prefix |
1132 | -function _iban_nationalchecksum_implementation_sk($iban,$mode) { |
|
1132 | +function _iban_nationalchecksum_implementation_sk($iban, $mode) { |
|
1133 | 1133 | if ($mode !== 'verify') { |
1134 | 1134 | return ''; |
1135 | 1135 | } |
@@ -1138,7 +1138,7 @@ discard block |
||
1138 | 1138 | $weights = array(6, 3, 7, 9, 10, 5, 8, 4, 2, 1); |
1139 | 1139 | |
1140 | 1140 | $sum = 0; |
1141 | - for ($i=0; $i < 10; $i++) { |
|
1141 | + for ($i = 0; $i < 10; $i++) { |
|
1142 | 1142 | $sum += $account[$i] * $weights[$i]; |
1143 | 1143 | } |
1144 | 1144 | |
@@ -1146,38 +1146,38 @@ discard block |
||
1146 | 1146 | } |
1147 | 1147 | |
1148 | 1148 | # Implement the national checksum for MOD97-10 countries |
1149 | -function _iban_nationalchecksum_implementation_mod97_10($iban,$mode) { |
|
1150 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1149 | +function _iban_nationalchecksum_implementation_mod97_10($iban, $mode) { |
|
1150 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1151 | 1151 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
1152 | 1152 | $bban = iban_get_bban_part($iban); |
1153 | - $bban_less_checksum = substr($bban,0,strlen($bban)-2); |
|
1153 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - 2); |
|
1154 | 1154 | $expected_nationalchecksum = _iso7064_mod97_10_generated($bban_less_checksum); |
1155 | - if($mode=='find') { |
|
1155 | + if ($mode == 'find') { |
|
1156 | 1156 | return $expected_nationalchecksum; |
1157 | 1157 | } |
1158 | - elseif($mode=='set') { |
|
1159 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
1158 | + elseif ($mode == 'set') { |
|
1159 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
1160 | 1160 | } |
1161 | - elseif($mode=='verify') { |
|
1161 | + elseif ($mode == 'verify') { |
|
1162 | 1162 | return ($nationalchecksum == $expected_nationalchecksum); |
1163 | 1163 | } |
1164 | 1164 | } |
1165 | 1165 | |
1166 | 1166 | # Implement the national checksum for an Timor-Lest (TL) IBAN |
1167 | 1167 | # (NOTE: Reverse engineered, but works on 2 different IBAN from official sources) |
1168 | -function _iban_nationalchecksum_implementation_tl($iban,$mode) { |
|
1169 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1168 | +function _iban_nationalchecksum_implementation_tl($iban, $mode) { |
|
1169 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1170 | 1170 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
1171 | 1171 | $bban = iban_get_bban_part($iban); |
1172 | - $bban_less_checksum = substr($bban,0,strlen($bban)-2); |
|
1172 | + $bban_less_checksum = substr($bban, 0, strlen($bban) - 2); |
|
1173 | 1173 | $expected_nationalchecksum = _iso7064_mod97_10_generated($bban_less_checksum); |
1174 | - if($mode=='find') { |
|
1174 | + if ($mode == 'find') { |
|
1175 | 1175 | return $expected_nationalchecksum; |
1176 | 1176 | } |
1177 | - elseif($mode=='set') { |
|
1178 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
1177 | + elseif ($mode == 'set') { |
|
1178 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
1179 | 1179 | } |
1180 | - elseif($mode=='verify') { |
|
1180 | + elseif ($mode == 'verify') { |
|
1181 | 1181 | return ($nationalchecksum == $expected_nationalchecksum); |
1182 | 1182 | } |
1183 | 1183 | } |
@@ -1185,9 +1185,9 @@ discard block |
||
1185 | 1185 | # Luhn Check |
1186 | 1186 | # (Credit: Adapted from @gajus' https://gist.github.com/troelskn/1287893#gistcomment-857491) |
1187 | 1187 | function _luhn($string) { |
1188 | - $checksum=''; |
|
1188 | + $checksum = ''; |
|
1189 | 1189 | foreach (str_split(strrev((string) $string)) as $i => $d) { |
1190 | - $checksum .= $i %2 !== 0 ? $d * 2 : $d; |
|
1190 | + $checksum .= $i % 2 !== 0 ? $d * 2 : $d; |
|
1191 | 1191 | } |
1192 | 1192 | return array_sum(str_split($checksum)) % 10; |
1193 | 1193 | } |
@@ -1195,33 +1195,33 @@ discard block |
||
1195 | 1195 | # Verhoeff checksum |
1196 | 1196 | # (Credit: Adapted from Semyon Velichko's code at https://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Verhoeff_Algorithm#PHP) |
1197 | 1197 | function _verhoeff($input) { |
1198 | - if($input == '' || preg_match('/[^0-9]/',$input)) { return ''; } # reject non-numeric input |
|
1198 | + if ($input == '' || preg_match('/[^0-9]/', $input)) { return ''; } # reject non-numeric input |
|
1199 | 1199 | $d = array( |
1200 | - array(0,1,2,3,4,5,6,7,8,9), |
|
1201 | - array(1,2,3,4,0,6,7,8,9,5), |
|
1202 | - array(2,3,4,0,1,7,8,9,5,6), |
|
1203 | - array(3,4,0,1,2,8,9,5,6,7), |
|
1204 | - array(4,0,1,2,3,9,5,6,7,8), |
|
1205 | - array(5,9,8,7,6,0,4,3,2,1), |
|
1206 | - array(6,5,9,8,7,1,0,4,3,2), |
|
1207 | - array(7,6,5,9,8,2,1,0,4,3), |
|
1208 | - array(8,7,6,5,9,3,2,1,0,4), |
|
1209 | - array(9,8,7,6,5,4,3,2,1,0) |
|
1200 | + array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), |
|
1201 | + array(1, 2, 3, 4, 0, 6, 7, 8, 9, 5), |
|
1202 | + array(2, 3, 4, 0, 1, 7, 8, 9, 5, 6), |
|
1203 | + array(3, 4, 0, 1, 2, 8, 9, 5, 6, 7), |
|
1204 | + array(4, 0, 1, 2, 3, 9, 5, 6, 7, 8), |
|
1205 | + array(5, 9, 8, 7, 6, 0, 4, 3, 2, 1), |
|
1206 | + array(6, 5, 9, 8, 7, 1, 0, 4, 3, 2), |
|
1207 | + array(7, 6, 5, 9, 8, 2, 1, 0, 4, 3), |
|
1208 | + array(8, 7, 6, 5, 9, 3, 2, 1, 0, 4), |
|
1209 | + array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0) |
|
1210 | 1210 | ); |
1211 | 1211 | $p = array( |
1212 | - array(0,1,2,3,4,5,6,7,8,9), |
|
1213 | - array(1,5,7,6,2,8,3,0,9,4), |
|
1214 | - array(5,8,0,3,7,9,6,1,4,2), |
|
1215 | - array(8,9,1,6,0,4,3,5,2,7), |
|
1216 | - array(9,4,5,3,1,2,6,8,7,0), |
|
1217 | - array(4,2,8,6,5,7,3,9,0,1), |
|
1218 | - array(2,7,9,3,8,0,6,4,1,5), |
|
1219 | - array(7,0,4,6,9,1,3,2,5,8) |
|
1212 | + array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), |
|
1213 | + array(1, 5, 7, 6, 2, 8, 3, 0, 9, 4), |
|
1214 | + array(5, 8, 0, 3, 7, 9, 6, 1, 4, 2), |
|
1215 | + array(8, 9, 1, 6, 0, 4, 3, 5, 2, 7), |
|
1216 | + array(9, 4, 5, 3, 1, 2, 6, 8, 7, 0), |
|
1217 | + array(4, 2, 8, 6, 5, 7, 3, 9, 0, 1), |
|
1218 | + array(2, 7, 9, 3, 8, 0, 6, 4, 1, 5), |
|
1219 | + array(7, 0, 4, 6, 9, 1, 3, 2, 5, 8) |
|
1220 | 1220 | ); |
1221 | - $inv = array(0,4,3,2,1,5,6,7,8,9); |
|
1221 | + $inv = array(0, 4, 3, 2, 1, 5, 6, 7, 8, 9); |
|
1222 | 1222 | $r = 0; |
1223 | - foreach(array_reverse(str_split($input)) as $n => $N) { |
|
1224 | - $r = $d[$r][$p[($n+1)%8][$N]]; |
|
1223 | + foreach (array_reverse(str_split($input)) as $n => $N) { |
|
1224 | + $r = $d[$r][$p[($n + 1) % 8][$N]]; |
|
1225 | 1225 | } |
1226 | 1226 | return $inv[$r]; |
1227 | 1227 | } |
@@ -1229,7 +1229,7 @@ discard block |
||
1229 | 1229 | # Damm checksum |
1230 | 1230 | # (Credit: https://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Damm_Algorithm#PHP) |
1231 | 1231 | function _damm($input) { |
1232 | - if($input=='' || preg_match('/[^0-9]/',$input)) { return ''; } # non-numeric input |
|
1232 | + if ($input == '' || preg_match('/[^0-9]/', $input)) { return ''; } # non-numeric input |
|
1233 | 1233 | // from http://www.md-software.de/math/DAMM_Quasigruppen.txt |
1234 | 1234 | $matrix = array( |
1235 | 1235 | array(0, 3, 1, 7, 5, 9, 8, 6, 4, 2), |
@@ -1244,35 +1244,35 @@ discard block |
||
1244 | 1244 | array(2, 5, 8, 1, 4, 3, 6, 7, 9, 0), |
1245 | 1245 | ); |
1246 | 1246 | $checksum = 0; |
1247 | - for ($i=0; $i<strlen($input); $i++) { |
|
1248 | - $character = substr($input,$i,1); |
|
1247 | + for ($i = 0; $i < strlen($input); $i++) { |
|
1248 | + $character = substr($input, $i, 1); |
|
1249 | 1249 | $checksum = $matrix[$checksum][$character]; |
1250 | 1250 | } |
1251 | 1251 | return $checksum; |
1252 | 1252 | } |
1253 | 1253 | |
1254 | 1254 | # Implement the national checksum for an Italian (IT) IBAN |
1255 | -function _iban_nationalchecksum_implementation_it($iban,$mode) { |
|
1256 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1255 | +function _iban_nationalchecksum_implementation_it($iban, $mode) { |
|
1256 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1257 | 1257 | $nationalchecksum = iban_get_nationalchecksum_part($iban); |
1258 | 1258 | $bban = iban_get_bban_part($iban); |
1259 | - $bban_less_checksum = substr($bban,1); |
|
1259 | + $bban_less_checksum = substr($bban, 1); |
|
1260 | 1260 | $expected_nationalchecksum = _italian($bban_less_checksum); |
1261 | - if($mode=='find') { |
|
1261 | + if ($mode == 'find') { |
|
1262 | 1262 | return $expected_nationalchecksum; |
1263 | 1263 | } |
1264 | - elseif($mode=='set') { |
|
1265 | - return _iban_nationalchecksum_set($iban,$expected_nationalchecksum); |
|
1264 | + elseif ($mode == 'set') { |
|
1265 | + return _iban_nationalchecksum_set($iban, $expected_nationalchecksum); |
|
1266 | 1266 | } |
1267 | - elseif($mode=='verify') { |
|
1267 | + elseif ($mode == 'verify') { |
|
1268 | 1268 | return (iban_get_nationalchecksum_part($iban) == $expected_nationalchecksum); |
1269 | 1269 | } |
1270 | 1270 | } |
1271 | 1271 | |
1272 | 1272 | # Implement the national checksum for a San Marino (SM) IBAN |
1273 | -function _iban_nationalchecksum_implementation_sm($iban,$mode) { |
|
1273 | +function _iban_nationalchecksum_implementation_sm($iban, $mode) { |
|
1274 | 1274 | // San Marino adheres to Italian rules. |
1275 | - return _iban_nationalchecksum_implementation_it($iban,$mode); |
|
1275 | + return _iban_nationalchecksum_implementation_it($iban, $mode); |
|
1276 | 1276 | } |
1277 | 1277 | |
1278 | 1278 | # Italian (and San Marino's) checksum |
@@ -1321,14 +1321,14 @@ discard block |
||
1321 | 1321 | # If a national checksum algorithm does not exist or remains unimplemented for this country, or the supplied $iban or $mode is invalid, '' is returned. |
1322 | 1322 | # (NOTE: We cannot collapse 'verify' mode and implement here via simple string comparison between 'find' mode output and the nationalchecksum part, |
1323 | 1323 | # because some countries have systems which do not map to this approach, for example the Netherlands has no checksum part yet an algorithm exists) |
1324 | -function _iban_nationalchecksum_implementation($iban,$mode) { |
|
1325 | - if($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1324 | +function _iban_nationalchecksum_implementation($iban, $mode) { |
|
1325 | + if ($mode != 'set' && $mode != 'find' && $mode != 'verify') { return ''; } # blank value on return to distinguish from correct execution |
|
1326 | 1326 | $iban = iban_to_machine_format($iban); |
1327 | 1327 | $country = iban_get_country_part($iban); |
1328 | - if(strlen($iban)!=iban_country_get_iban_length($country)) { return ''; } |
|
1329 | - $function_name = '_iban_nationalchecksum_implementation_' . strtolower($country); |
|
1330 | - if(function_exists($function_name)) { |
|
1331 | - return $function_name($iban,$mode); |
|
1328 | + if (strlen($iban) != iban_country_get_iban_length($country)) { return ''; } |
|
1329 | + $function_name = '_iban_nationalchecksum_implementation_'.strtolower($country); |
|
1330 | + if (function_exists($function_name)) { |
|
1331 | + return $function_name($iban, $mode); |
|
1332 | 1332 | } |
1333 | 1333 | return ''; |
1334 | 1334 | } |
@@ -3,24 +3,24 @@ |
||
3 | 3 | * Users who do not have 'composer' to manage dependencies, include this |
4 | 4 | * file to provide auto-loading of the classes in this library. |
5 | 5 | */ |
6 | -spl_autoload_register ( function ($class) { |
|
6 | +spl_autoload_register(function($class) { |
|
7 | 7 | /* |
8 | 8 | * PSR-4 autoloader, based on PHP Framework Interop Group snippet (Under MIT License.) |
9 | 9 | * https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md |
10 | 10 | */ |
11 | 11 | $prefix = "Mike42\\"; |
12 | - $base_dir = __DIR__ . "/src/Mike42/"; |
|
12 | + $base_dir = __DIR__."/src/Mike42/"; |
|
13 | 13 | |
14 | 14 | /* Only continue for classes in this namespace */ |
15 | - $len = strlen ( $prefix ); |
|
16 | - if (strncmp ( $prefix, $class, $len ) !== 0) { |
|
15 | + $len = strlen($prefix); |
|
16 | + if (strncmp($prefix, $class, $len) !== 0) { |
|
17 | 17 | return; |
18 | 18 | } |
19 | 19 | |
20 | 20 | /* Require the file if it exists */ |
21 | - $relative_class = substr ( $class, $len ); |
|
22 | - $file = $base_dir . str_replace ( '\\', '/', $relative_class ) . '.php'; |
|
23 | - if (file_exists ( $file )) { |
|
21 | + $relative_class = substr($class, $len); |
|
22 | + $file = $base_dir.str_replace('\\', '/', $relative_class).'.php'; |
|
23 | + if (file_exists($file)) { |
|
24 | 24 | require $file; |
25 | 25 | } |
26 | 26 | } ); |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | if (!is_resource($im)) { |
62 | 62 | throw new Exception("Failed to load image."); |
63 | 63 | } elseif (!EscposImage::isGdLoaded()) { |
64 | - throw new Exception(__FUNCTION__ . " requires 'gd' extension."); |
|
64 | + throw new Exception(__FUNCTION__." requires 'gd' extension."); |
|
65 | 65 | } |
66 | 66 | /* Make a string of 1's and 0's */ |
67 | 67 | $imgHeight = imagesy($im); |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | /* Faster to average channels, blend alpha and negate the image here than via filters (tested!) */ |
73 | 73 | $cols = imagecolorsforindex($im, imagecolorat($im, $x, $y)); |
74 | 74 | // 1 for white, 0 for black, ignoring transparency |
75 | - $greyness = (int)(($cols['red'] + $cols['green'] + $cols['blue']) / 3) >> 7; |
|
75 | + $greyness = (int) (($cols['red'] + $cols['green'] + $cols['blue']) / 3) >> 7; |
|
76 | 76 | // 1 for black, 0 for white, taking into account transparency |
77 | 77 | $black = (1 - $greyness) >> ($cols['alpha'] >> 6); |
78 | 78 | $imgData[$y * $imgWidth + $x] = $black; |
@@ -283,7 +283,7 @@ discard block |
||
283 | 283 | public static function load(string $profileName) |
284 | 284 | { |
285 | 285 | self::loadCapabilitiesDataFile(); |
286 | - if (! isset(self::$profiles[$profileName])) { |
|
286 | + if (!isset(self::$profiles[$profileName])) { |
|
287 | 287 | $suggestionsArray = self::suggestProfileName($profileName); |
288 | 288 | $suggestionsStr = implode(", ", $suggestionsArray); |
289 | 289 | throw new InvalidArgumentException("The CapabilityProfile '$profileName' does not exist. Try one that does exist, such as $suggestionsStr."); |
@@ -297,7 +297,7 @@ discard block |
||
297 | 297 | protected static function loadCapabilitiesDataFile() |
298 | 298 | { |
299 | 299 | if (self::$profiles === null) { |
300 | - $filename = dirname(__FILE__) . "/resources/capabilities.json"; |
|
300 | + $filename = dirname(__FILE__)."/resources/capabilities.json"; |
|
301 | 301 | $capabilitiesData = json_decode(file_get_contents($filename), true); |
302 | 302 | self::$profiles = $capabilitiesData['profiles']; |
303 | 303 | self::$encodings = $capabilitiesData['encodings']; |