Subversion Repositories cheapmusic

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
103 - 1
<?php
2
 
3
// mPDF 5.7
4
// Replace a section of an array with the elements in reverse
5
function array_splice_reverse(&$arr, $offset, $length) {
6
	$tmp = (array_reverse(array_slice($arr, $offset, $length)));
7
	array_splice($arr, $offset, $length, $tmp);
8
}
9
 
10
 
11
// mPDF 5.6.23
12
function array_insert(&$array, $value, $offset) {
13
	if (is_array($array)) {
14
		$array  = array_values($array);
15
		$offset = intval($offset);
16
		if ($offset < 0 || $offset >= count($array)) { array_push($array, $value); }
17
		else if ($offset == 0) { array_unshift($array, $value); }
18
		else {
19
			$temp  = array_slice($array, 0, $offset);
20
			array_push($temp, $value);
21
			$array = array_slice($array, $offset);
22
			$array = array_merge($temp, $array);
23
		}
24
	}
25
	else { $array = array($value); }
26
	return count($array);
27
}
28
 
29
function urlencode_part($url) {	// mPDF 5.6.02
30
	if (!preg_match('/^[a-z]+:\/\//i',$url)) { return $url; }
31
	$file=$url;
32
	$query='';
33
	if (preg_match('/[?]/',$url)) {
34
		$bits = preg_split('/[?]/',$url,2);
35
		$file=$bits[0];
36
		$query='?'.$bits[1];
37
	}
38
	$file = str_replace(array(" ","!","$","&","'","(",")","*","+",",",";","="),array("%20","%21","%24","%26","%27","%28","%29","%2A","%2B","%2C","%3B","%3D"),$file);
39
	return $file.$query;
40
}
41
 
42
 
43
function _strspn($str1, $str2, $start=null, $length=null) {
44
	$numargs = func_num_args();
45
	if ($numargs == 2) {
46
		return strspn($str1, $str2);
47
	}
48
	else if ($numargs == 3) {
49
		return strspn($str1, $str2, $start);
50
	}
51
	else {
52
		return strspn($str1, $str2, $start, $length);
53
	}
54
}
55
 
56
 
57
function _strcspn($str1, $str2, $start=null, $length=null) {
58
	$numargs = func_num_args();
59
	if ($numargs == 2) {
60
		return strcspn($str1, $str2);
61
	}
62
	else if ($numargs == 3) {
63
		return strcspn($str1, $str2, $start);
64
	}
65
	else {
66
		return strcspn($str1, $str2, $start, $length);
67
	}
68
}
69
 
70
function _fgets (&$h, $force=false) {
71
	$startpos = ftell($h);
72
	$s = fgets($h, 1024);
73
	if ($force && preg_match("/^([^\r\n]*[\r\n]{1,2})(.)/",trim($s), $ns)) {
74
		$s = $ns[1];
75
		fseek($h,$startpos+strlen($s));
76
	}
77
	return $s;
78
}
79
 
80
 
81
// For PHP4 compatability
82
if(!function_exists('str_ireplace')) {
83
  function str_ireplace($search,$replace,$subject) {
84
	$search = preg_quote($search, "/");
85
	return preg_replace("/".$search."/i", $replace, $subject);
86
  }
87
}
88
if(!function_exists('htmlspecialchars_decode')) {
89
	function htmlspecialchars_decode ($str) {
90
		return strtr($str, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
91
	}
92
}
93
 
94
function PreparePreText($text,$ff='//FF//') {
95
	$text = htmlspecialchars($text);
96
	if ($ff) { $text = str_replace($ff,'</pre><formfeed /><pre>',$text); }
97
	return ('<pre>'.$text.'</pre>');
98
}
99
 
100
if(!function_exists('strcode2utf')){
101
  function strcode2utf($str,$lo=true) {
102
	//converts all the &#nnn; and &#xhhh; in a string to Unicode
103
	// mPDF 5.7
104
	if ($lo) {
105
		$str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_lo_callback', $str);
106
		$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_lo_callback', $str);
107
	}
108
	else {
109
		$str = preg_replace_callback('/\&\#([0-9]+)\;/m', 'code2utf_callback', $str);
110
		$str = preg_replace_callback('/\&\#x([0-9a-fA-F]+)\;/m', 'codeHex2utf_callback', $str);
111
	}
112
	return $str;
113
  }
114
}
115
function code2utf_callback($matches) {
116
	return code2utf($matches[1], 0);
117
}
118
function code2utf_lo_callback($matches) {
119
	return code2utf($matches[1], 1);
120
}
121
function codeHex2utf_callback($matches) {
122
	return codeHex2utf($matches[1], 0);
123
}
124
function codeHex2utf_lo_callback($matches) {
125
	return codeHex2utf($matches[1], 1);
126
}
127
 
128
if(!function_exists('code2utf')){
129
  function code2utf($num,$lo=true){
130
	//Returns the utf string corresponding to the unicode value
131
	if ($num<128) {
132
		if ($lo) return chr($num);
133
		else return '&#'.$num.';';
134
	}
135
	if ($num<2048) return chr(($num>>6)+192).chr(($num&63)+128);
136
	if ($num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
137
	if ($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
138
	return '?';
139
  }
140
}
141
 
142
 
143
if(!function_exists('codeHex2utf')){
144
  function codeHex2utf($hex,$lo=true){
145
	$num = hexdec($hex);
146
	if (($num<128) && !$lo) return '&#x'.$hex.';';
147
	return code2utf($num,$lo);
148
  }
149
}
150
 
151
 
152
?>