Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 310 and 311] [Versions 310 and 400] [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]

   1  <?php
   2  /**
   3   * This file is part of FPDI
   4   *
   5   * @package   setasign\Fpdi
   6   * @copyright Copyright (c) 2019 Setasign - Jan Slabon (https://www.setasign.com)
   7   * @license   http://opensource.org/licenses/mit-license The MIT License
   8   */
   9  
  10  namespace setasign\Fpdi\PdfParser\Filter;
  11  
  12  /**
  13   * Class for handling ASCII hexadecimal encoded data
  14   *
  15   * @package setasign\Fpdi\PdfParser\Filter
  16   */
  17  class AsciiHex implements FilterInterface
  18  {
  19      /**
  20       * Converts an ASCII hexadecimal encoded string into its binary representation.
  21       *
  22       * @param string $data The input string
  23       * @return string
  24       */
  25      public function decode($data)
  26      {
  27          $data = \preg_replace('/[^0-9A-Fa-f]/', '', \rtrim($data, '>'));
  28          if ((\strlen($data) % 2) === 1) {
  29              $data .= '0';
  30          }
  31  
  32          return \pack('H*', $data);
  33      }
  34  
  35      /**
  36       * Converts a string into ASCII hexadecimal representation.
  37       *
  38       * @param string $data The input string
  39       * @param boolean $leaveEOD
  40       * @return string
  41       */
  42      public function encode($data, $leaveEOD = false)
  43      {
  44          $t = \unpack('H*', $data);
  45          return \current($t)
  46              . ($leaveEOD ? '' : '>');
  47      }
  48  }