. * * Consult LICENSE file for details ************************************************/ if (!function_exists("quoted_printable_encode")) { /** * Process a string to fit the requirements of RFC2045 section 6.7. Note that * this works, but replaces more characters than the minimum set. For readability * the spaces and CRLF pairs aren't encoded though. * * @param string $string string to be encoded * * @see http://www.php.net/manual/en/function.quoted-printable-encode.php#106078 */ function quoted_printable_encode($string) { $lp = 0; $ret = ''; $hex = "0123456789ABCDEF"; $length = strlen($str); $str_index = 0; while ($length--) { if ((($c = $str[$str_index++]) == "\015") && ($str[$str_index] == "\012") && $length > 0) { $ret .= "\015"; $ret .= $str[$str_index++]; $length--; $lp = 0; } else { if (ctype_cntrl($c) || (ord($c) == 0x7f) || (ord($c) & 0x80) || ($c == '=') || (($c == ' ') && ($str[$str_index] == "\015"))) { if (($lp += 3) > PHP_QPRINT_MAXL) { $ret .= '='; $ret .= "\015"; $ret .= "\012"; $lp = 3; } $ret .= '='; $ret .= $hex[ord($c) >> 4]; $ret .= $hex[ord($c) & 0xf]; } else { if ((++$lp) > PHP_QPRINT_MAXL) { $ret .= '='; $ret .= "\015"; $ret .= "\012"; $lp = 1; } $ret .= $c; } } } return $ret; } } if (!function_exists("apache_request_headers")) { /** * When using other webservers or using php as cgi in apache * the function apache_request_headers() is not available. * This function parses the environment variables to extract * the necessary headers for Z-Push */ function apache_request_headers() { $headers = array(); foreach ($_SERVER as $key => $value) if (substr($key, 0, 5) == 'HTTP_') $headers[strtr(substr($key, 5), '_', '-')] = $value; return $headers; } } if (!function_exists("hex2bin")) { /** * Complementary function to bin2hex() which converts a hex entryid to a binary entryid. * Since PHP 5.4 an internal hex2bin() implementation is available. * * @param string $data the hexadecimal string * * @returns string */ function hex2bin($data) { return pack("H*", $data); } } ?>