Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/vendor/endroid/qr-code/src/Writer/Result/ |
Upload File : |
<?php declare(strict_types=1); namespace Endroid\QrCode\Writer\Result; use Endroid\QrCode\Color\ColorInterface; use Endroid\QrCode\Matrix\MatrixInterface; final class ConsoleResult extends AbstractResult { private const TWO_BLOCKS = [ 0 => ' ', 1 => "\xe2\x96\x80", 2 => "\xe2\x96\x84", 3 => "\xe2\x96\x88", ]; private string $colorEscapeCode; public function __construct( MatrixInterface $matrix, ColorInterface $foreground, ColorInterface $background ) { parent::__construct($matrix); $this->colorEscapeCode = sprintf( "\e[38;2;%d;%d;%dm\e[48;2;%d;%d;%dm", $foreground->getRed(), $foreground->getGreen(), $foreground->getBlue(), $background->getRed(), $background->getGreen(), $background->getBlue() ); } public function getMimeType(): string { return 'text/plain'; } public function getString(): string { $matrix = $this->getMatrix(); $side = $matrix->getBlockCount(); $marginLeft = $this->colorEscapeCode.self::TWO_BLOCKS[0].self::TWO_BLOCKS[0]; $marginRight = self::TWO_BLOCKS[0].self::TWO_BLOCKS[0]."\e[0m".PHP_EOL; $marginVertical = $marginLeft.str_repeat(self::TWO_BLOCKS[0], $side).$marginRight; $qrCodeString = $marginVertical; for ($rowIndex = 0; $rowIndex < $side; $rowIndex += 2) { $qrCodeString .= $marginLeft; for ($columnIndex = 0; $columnIndex < $side; ++$columnIndex) { $combined = $matrix->getBlockValue($rowIndex, $columnIndex); if ($rowIndex + 1 < $side) { $combined |= $matrix->getBlockValue($rowIndex + 1, $columnIndex) << 1; } $qrCodeString .= self::TWO_BLOCKS[$combined]; } $qrCodeString .= $marginRight; } $qrCodeString .= $marginVertical; return $qrCodeString; } }