PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 18.4
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v18.4
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / vendor_prefixed / chillerlan / php-qrcode / src / Data / Number.php

Number.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 18.4, at vendor_prefixed/chillerlan/php-qrcode/src/Data/Number.php

70 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class Number
5 *
6 * @filesource Number.php
7 * @created 26.11.2015
8 * @package QRCode
9 * @author Smiley <smiley@chillerlan.net>
10 * @copyright 2015 Smiley
11 * @license MIT
12 */
13 namespace YoastSEO_Vendor\chillerlan\QRCode\Data;
14
15 use YoastSEO_Vendor\chillerlan\QRCode\QRCode;
16 /**
17 * Numeric mode: decimal digits 0 through 9
18 */
19 class Number extends \YoastSEO_Vendor\chillerlan\QRCode\Data\QRDataAbstract
20 {
21 /**
22 * @inheritdoc
23 */
24 protected $datamode = \YoastSEO_Vendor\chillerlan\QRCode\QRCode::DATA_NUMBER;
25 /**
26 * @inheritdoc
27 */
28 protected $lengthBits = [10, 12, 14];
29 /**
30 * @inheritdoc
31 */
32 protected function write($data)
33 {
34 $i = 0;
35 while ($i + 2 < $this->strlen) {
36 $this->bitBuffer->put($this->parseInt(\substr($data, $i, 3)), 10);
37 $i += 3;
38 }
39 if ($i < $this->strlen) {
40 if ($this->strlen - $i === 1) {
41 $this->bitBuffer->put($this->parseInt(\substr($data, $i, $i + 1)), 4);
42 } elseif ($this->strlen - $i === 2) {
43 $this->bitBuffer->put($this->parseInt(\substr($data, $i, $i + 2)), 7);
44 }
45 // @codeCoverageIgnoreEnd
46 }
47 }
48 /**
49 * @param string $string
50 *
51 * @return int
52 * @throws \chillerlan\QRCode\Data\QRCodeDataException
53 */
54 protected function parseInt($string)
55 {
56 $num = 0;
57 $map = \str_split('0123456789');
58 $len = \strlen($string);
59 for ($i = 0; $i < $len; $i++) {
60 $c = \ord($string[$i]);
61 if (!\in_array($string[$i], $map, \true)) {
62 throw new \YoastSEO_Vendor\chillerlan\QRCode\Data\QRCodeDataException('illegal char: "' . $string[$i] . '" [' . $c . ']');
63 }
64 $c = $c - \ord('0');
65 $num = $num * 10 + $c;
66 }
67 return $num;
68 }
69 }
70