Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402] [Versions 400 and 402]

   1  <?php
   2  /**
   3   * Stream filter class to convert binary data into hexadecimal.
   4   *
   5   * Usage:
   6   *   stream_filter_register('horde_bin2hex', 'Horde_Stream_Filter_Bin2hex');
   7   *   stream_filter_[app|pre]pend($stream, 'horde_bin2hex',
   8   *                               [ STREAM_FILTER_[READ|WRITE|ALL] ]);
   9   *
  10   * Copyright 2011-2017 Horde LLC (http://www.horde.org/)
  11   *
  12   * See the enclosed file LICENSE for license information (LGPL). If you
  13   * did not receive this file, see http://www.horde.org/licenses/lgpl21.
  14   *
  15   * @author   Michael Slusarz <slusarz@horde.org>
  16   * @category Horde
  17   * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
  18   * @package  Stream_Filter
  19   */
  20  class Horde_Stream_Filter_Bin2hex extends php_user_filter
  21  {
  22      /**
  23       * @see stream_filter_register()
  24       */
  25      #[ReturnTypeWillChange]
  26      public function filter($in, $out, &$consumed, $closing)
  27      {
  28          while ($bucket = stream_bucket_make_writeable($in)) {
  29              $bucket->data = bin2hex($bucket->data);
  30              $consumed += $bucket->datalen;
  31              stream_bucket_append($out, $bucket);
  32          }
  33  
  34          return PSFS_PASS_ON;
  35      }
  36  
  37  }