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 / AlphaNum.php

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

57 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class AlphaNum
5 *
6 * @filesource AlphaNum.php
7 * @created 25.11.2015
8 * @package chillerlan\QRCode\Data
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 * Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
18 */
19 class AlphaNum extends \YoastSEO_Vendor\chillerlan\QRCode\Data\QRDataAbstract
20 {
21 const CHAR_MAP = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*', '+', '-', '.', '/', ':'];
22 /**
23 * @inheritdoc
24 */
25 protected $datamode = \YoastSEO_Vendor\chillerlan\QRCode\QRCode::DATA_ALPHANUM;
26 /**
27 * @inheritdoc
28 */
29 protected $lengthBits = [9, 11, 13];
30 /**
31 * @inheritdoc
32 */
33 protected function write($data)
34 {
35 for ($i = 0; $i + 1 < $this->strlen; $i += 2) {
36 $this->bitBuffer->put($this->getCharCode($data[$i]) * 45 + $this->getCharCode($data[$i + 1]), 11);
37 }
38 if ($i < $this->strlen) {
39 $this->bitBuffer->put($this->getCharCode($data[$i]), 6);
40 }
41 }
42 /**
43 * @param string $chr
44 *
45 * @return int
46 * @throws \chillerlan\QRCode\Data\QRCodeDataException
47 */
48 protected function getCharCode($chr)
49 {
50 $i = \array_search($chr, $this::CHAR_MAP);
51 if ($i !== \false) {
52 return $i;
53 }
54 throw new \YoastSEO_Vendor\chillerlan\QRCode\Data\QRCodeDataException('illegal char: "' . $chr . '" [' . \ord($chr) . ']');
55 }
56 }
57