5 // Copyright 2004-2014 Setasign - Jan Slabon
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
21 * Class FilterASCIIHexDecode
23 class FilterASCIIHexDecode
26 * Converts an ASCII hexadecimal encoded string into it's binary representation.
28 * @param string $data The input string
31 public function decode($data)
33 $data = preg_replace('/[^0-9A-Fa-f]/', '', rtrim($data, '>'));
34 if ((strlen($data) %
2) == 1) {
38 return pack('H*', $data);
42 * Converts a string into ASCII hexadecimal representation.
44 * @param string $data The input string
45 * @param boolean $leaveEOD
48 public function encode($data, $leaveEOD = false)
50 return current(unpack('H*', $data)) . ($leaveEOD ?
'' : '>');