Need to hex encode data for non-8 Bit Clean safe transport.

For even moderately large data this can expend an immense amount of effort.

<?php
function hexencode($data) {
    $ascii = unpack("C*", $data);
    $retval = '';
    foreach ($ascii as $v) {
        $retval .= sprintf("%02x", $v);
    }
    return $retval;
}

function hexdecode($data) {
    $len = strlen($data);
    $retval = '';
    for($i=0; $i < $len; $i+= 2) {
        $retval .= pack("C", hexdec(
                substr($data, $i, 2)
            )
        );
    }
    return $retval;
}
?>