=5.5.0
if(!function_exists('imagepalettetotruecolor')) {
function imagepalettetotruecolor(&$src) {
if(imageistruecolor($src)) {
return(true);
}
$dst = imagecreatetruecolor(imagesx($src), imagesy($src));
imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
imagedestroy($src);
$src = $dst;
return(true);
}
}
// mPDF 5.7
// Replace a section of an array with the elements in reverse
function array_splice_reverse(&$arr, $offset, $length) {
$tmp = (array_reverse(array_slice($arr, $offset, $length)));
array_splice($arr, $offset, $length, $tmp);
}
// mPDF 5.7.4 URLs
function urldecode_parts($url) {
$file=$url;
$query='';
if (preg_match('/[?]/',$url)) {
$bits = preg_split('/[?]/',$url,2);
$file=$bits[0];
$query='?'.$bits[1];
}
$file = rawurldecode($file);
$query = urldecode($query);
return $file.$query;
}
function _strspn($str1, $str2, $start=null, $length=null) {
$numargs = func_num_args();
if ($numargs == 2) {
return strspn($str1, $str2);
}
else if ($numargs == 3) {
return strspn($str1, $str2, $start);
}
else {
return strspn($str1, $str2, $start, $length);
}
}
function _strcspn($str1, $str2, $start=null, $length=null) {
$numargs = func_num_args();
if ($numargs == 2) {
return strcspn($str1, $str2);
}
else if ($numargs == 3) {
return strcspn($str1, $str2, $start);
}
else {
return strcspn($str1, $str2, $start, $length);
}
}
function _fgets (&$h, $force=false) {
$startpos = ftell($h);
$s = fgets($h, 1024);
if ($force && preg_match("/^([^\r\n]*[\r\n]{1,2})(.)/",trim($s), $ns)) {
$s = $ns[1];
fseek($h,$startpos+strlen($s));
}
return $s;
}
// For PHP4 compatability
if(!function_exists('str_ireplace')) {
function str_ireplace($search,$replace,$subject) {
$search = preg_quote($search, "/");
return preg_replace("/".$search."/i", $replace, $subject);
}
}
if(!function_exists('htmlspecialchars_decode')) {
function htmlspecialchars_decode ($str) {
return strtr($str, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
}
}
function PreparePreText($text,$ff='//FF//') {
$text = htmlspecialchars($text);
if ($ff) { $text = str_replace($ff,'
',$text); } return (''.$text.''); } if(!function_exists('strcode2utf')){ function strcode2utf($str,$lo=true) { //converts all the nnn; and hhh; in a string to Unicode // mPDF 5.7 if ($lo) { $str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_lo_callback', $str); $str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_lo_callback', $str); } else { $str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_callback', $str); $str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_callback', $str); } return $str; } } function code2utf_callback($matches) { return code2utf($matches[1], 0); } function code2utf_lo_callback($matches) { return code2utf($matches[1], 1); } function codeHex2utf_callback($matches) { return codeHex2utf($matches[1], 0); } function codeHex2utf_lo_callback($matches) { return codeHex2utf($matches[1], 1); } if(!function_exists('code2utf')){ function code2utf($num,$lo=true){ //Returns the utf string corresponding to the unicode value if ($num<128) { if ($lo) return chr($num); else return ''.$num.';'; } if ($num<2048) return chr(($num>>6)+192).chr(($num&63)+128); if ($num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128); if ($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128); return '?'; } } if(!function_exists('codeHex2utf')){ function codeHex2utf($hex,$lo=true){ $num = hexdec($hex); if (($num<128) && !$lo) return ''.$hex.';'; return code2utf($num,$lo); } }