MDL-49515 libraries: Update FPDI to 1.5.4
[moodle.git] / mod / assign / feedback / editpdf / fpdi / filters / FilterASCIIHexDecode.php
1 <?php\r
2 //\r
3 //  FPDI - Version 1.5.4\r
4 //\r
5 //    Copyright 2004-2015 Setasign - Jan Slabon\r
6 //\r
7 //  Licensed under the Apache License, Version 2.0 (the "License");\r
8 //  you may not use this file except in compliance with the License.\r
9 //  You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 //  Unless required by applicable law or agreed to in writing, software\r
14 //  distributed under the License is distributed on an "AS IS" BASIS,\r
15 //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 //  See the License for the specific language governing permissions and\r
17 //  limitations under the License.\r
18 //\r
19 \r
20 /**\r
21  * Class FilterASCIIHexDecode\r
22  */\r
23 class FilterASCIIHexDecode\r
24 {\r
25     /**\r
26      * Converts an ASCII hexadecimal encoded string into it's binary representation.\r
27      *\r
28      * @param string $data The input string\r
29      * @return string\r
30      */\r
31     public function decode($data)\r
32     {\r
33         $data = preg_replace('/[^0-9A-Fa-f]/', '', rtrim($data, '>'));\r
34         if ((strlen($data) % 2) == 1) {\r
35             $data .= '0';\r
36         }\r
37 \r
38         return pack('H*', $data);\r
39     }\r
40 \r
41     /**\r
42      * Converts a string into ASCII hexadecimal representation.\r
43      *\r
44      * @param string $data The input string\r
45      * @param boolean $leaveEOD\r
46      * @return string\r
47      */\r
48     public function encode($data, $leaveEOD = false)\r
49     {\r
50         return current(unpack('H*', $data)) . ($leaveEOD ? '' : '>');\r
51     }\r
52 }