Completed
Push — master ( 23805b...5c0366 )
by Yannick
31:36
created
require/class.Common.php 1 patch
Indentation   +156 added lines, -156 removed lines patch added patch discarded remove patch
@@ -7,13 +7,13 @@  discard block
 block discarded – undo
7 7
 	//protected $cookies = array();
8 8
 	
9 9
 	/**
10
-	* Get data from form result
11
-	* @param String $url form URL
12
-	* @param String $type type of submit form method (get or post)
13
-	* @param String|Array $data values form post method
14
-	* @param Array $headers header to submit with the form
15
-	* @return String the result
16
-	*/
10
+	 * Get data from form result
11
+	 * @param String $url form URL
12
+	 * @param String $type type of submit form method (get or post)
13
+	 * @param String|Array $data values form post method
14
+	 * @param Array $headers header to submit with the form
15
+	 * @return String the result
16
+	 */
17 17
 	public function getData($url, $type = 'get', $data = '', $headers = '',$cookie = '',$referer = '',$timeout = '',$useragent = '') {
18 18
 		global $globalProxy, $globalForceIPv4;
19 19
 		$ch = curl_init();
@@ -148,10 +148,10 @@  discard block
 block discarded – undo
148 148
 	}
149 149
 
150 150
 	/**
151
-	* Convert a HTML table to an array
152
-	* @param String $data HTML page
153
-	* @return Array array of the tables in HTML page
154
-	*/
151
+	 * Convert a HTML table to an array
152
+	 * @param String $data HTML page
153
+	 * @return Array array of the tables in HTML page
154
+	 */
155 155
 	public function table2array($data) {
156 156
 		if (!is_string($data)) return array();
157 157
 		if ($data == '') return array();
@@ -185,10 +185,10 @@  discard block
 block discarded – undo
185 185
 	}
186 186
 	
187 187
 	/**
188
-	* Convert <p> part of a HTML page to an array
189
-	* @param String $data HTML page
190
-	* @return Array array of the <p> in HTML page
191
-	*/
188
+	 * Convert <p> part of a HTML page to an array
189
+	 * @param String $data HTML page
190
+	 * @return Array array of the <p> in HTML page
191
+	 */
192 192
 	public function text2array($data) {
193 193
 		$html = str_get_html($data);
194 194
 		if ($html === false) return array();
@@ -203,14 +203,14 @@  discard block
 block discarded – undo
203 203
 	}
204 204
 
205 205
 	/**
206
-	* Give distance between 2 coordonnates
207
-	* @param Float $lat latitude of first point
208
-	* @param Float $lon longitude of first point
209
-	* @param Float $latc latitude of second point
210
-	* @param Float $lonc longitude of second point
211
-	* @param String $unit km else no unit used
212
-	* @return Float Distance in $unit
213
-	*/
206
+	 * Give distance between 2 coordonnates
207
+	 * @param Float $lat latitude of first point
208
+	 * @param Float $lon longitude of first point
209
+	 * @param Float $latc latitude of second point
210
+	 * @param Float $lonc longitude of second point
211
+	 * @param String $unit km else no unit used
212
+	 * @return Float Distance in $unit
213
+	 */
214 214
 	public function distance($lat, $lon, $latc, $lonc, $unit = 'km') {
215 215
 		if ($lat == $latc && $lon == $lonc) return 0;
216 216
 		$dist = rad2deg(acos(sin(deg2rad(floatval($lat)))*sin(deg2rad(floatval($latc)))+ cos(deg2rad(floatval($lat)))*cos(deg2rad(floatval($latc)))*cos(deg2rad(floatval($lon)-floatval($lonc)))))*60*1.1515;
@@ -228,25 +228,25 @@  discard block
 block discarded – undo
228 228
 	}
229 229
 
230 230
 	/**
231
-	* Give plunge between 2 altitudes and distance
232
-	* @param Float $initial_altitude altitude of first point in m
233
-	* @param Float $final_altitude altitude of second point in m
234
-	* @param String $distance distance between two points in m
235
-	* @return Float plunge
236
-	*/
231
+	 * Give plunge between 2 altitudes and distance
232
+	 * @param Float $initial_altitude altitude of first point in m
233
+	 * @param Float $final_altitude altitude of second point in m
234
+	 * @param String $distance distance between two points in m
235
+	 * @return Float plunge
236
+	 */
237 237
 	public function plunge($initial_altitude,$final_altitude,$distance) {
238 238
 		$plunge = rad2deg(asin(($final_altitude-$initial_altitude)/$distance));
239 239
 		return $plunge;
240 240
 	}
241 241
 
242 242
 	/**
243
-	* Give azimuth between 2 coordonnates
244
-	* @param Float $lat latitude of first point
245
-	* @param Float $lon longitude of first point
246
-	* @param Float $latc latitude of second point
247
-	* @param Float $lonc longitude of second point
248
-	* @return Float Azimuth
249
-	*/
243
+	 * Give azimuth between 2 coordonnates
244
+	 * @param Float $lat latitude of first point
245
+	 * @param Float $lon longitude of first point
246
+	 * @param Float $latc latitude of second point
247
+	 * @param Float $lonc longitude of second point
248
+	 * @return Float Azimuth
249
+	 */
250 250
 	public function azimuth($lat, $lon, $latc, $lonc) {
251 251
 		$azimuth = rad2deg(atan(($latc - $lat)/($lonc - $lon)));
252 252
 		return 360+$azimuth;
@@ -254,11 +254,11 @@  discard block
 block discarded – undo
254 254
 	
255 255
 	
256 256
 	/**
257
-	* Check is distance realistic
258
-	* @param int $timeDifference the time between the reception of both messages
259
-	* @param float $distance distance covered
260
-	* @return whether distance is realistic
261
-	*/
257
+	 * Check is distance realistic
258
+	 * @param int $timeDifference the time between the reception of both messages
259
+	 * @param float $distance distance covered
260
+	 * @return whether distance is realistic
261
+	 */
262 262
 	public function withinThreshold ($timeDifference, $distance) {
263 263
 		$x = abs($timeDifference);
264 264
 		$d = abs($distance);
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
 	}
277 277
 
278 278
 	public function isInteger($input){
279
-	    return(ctype_digit(strval($input)));
279
+		return(ctype_digit(strval($input)));
280 280
 	}
281 281
 
282 282
 
@@ -307,11 +307,11 @@  discard block
 block discarded – undo
307 307
 	}
308 308
 	
309 309
 	/**
310
-	* Copy folder contents
311
-	* @param       string   $source    Source path
312
-	* @param       string   $dest      Destination path
313
-	* @return      bool     Returns true on success, false on failure
314
-	*/
310
+	 * Copy folder contents
311
+	 * @param       string   $source    Source path
312
+	 * @param       string   $dest      Destination path
313
+	 * @return      bool     Returns true on success, false on failure
314
+	 */
315 315
 	public function xcopy($source, $dest)
316 316
 	{
317 317
 		$files = glob($source.'*.*');
@@ -323,20 +323,20 @@  discard block
 block discarded – undo
323 323
 	}
324 324
 	
325 325
 	/**
326
-	* Check if an url exist
327
-	* @param	String $url url to check
328
-	* @return	bool Return true on succes false on failure
329
-	*/
326
+	 * Check if an url exist
327
+	 * @param	String $url url to check
328
+	 * @return	bool Return true on succes false on failure
329
+	 */
330 330
 	public function urlexist($url){
331 331
 		$headers=get_headers($url);
332 332
 		return stripos($headers[0],"200 OK")?true:false;
333 333
 	}
334 334
 	
335 335
 	/**
336
-	* Convert hexa to string
337
-	* @param	String $hex data in hexa
338
-	* @return	String Return result
339
-	*/
336
+	 * Convert hexa to string
337
+	 * @param	String $hex data in hexa
338
+	 * @return	String Return result
339
+	 */
340 340
 	public function hex2str($hex) {
341 341
 		$str = '';
342 342
 		$hexln = strlen($hex);
@@ -345,10 +345,10 @@  discard block
 block discarded – undo
345 345
 	}
346 346
 	
347 347
 	/**
348
-	* Convert hexa color to rgb
349
-	* @param	String $hex data in hexa
350
-	* @return	String Return result
351
-	*/
348
+	 * Convert hexa color to rgb
349
+	 * @param	String $hex data in hexa
350
+	 * @return	String Return result
351
+	 */
352 352
 	public function hex2rgb($hex) {
353 353
 		$hex = str_replace('#','',$hex);
354 354
 		return sscanf($hex, "%02x%02x%02x"); 
@@ -426,9 +426,9 @@  discard block
 block discarded – undo
426 426
 	}
427 427
 	
428 428
 	/**
429
-	* Returns list of available locales
430
-	*
431
-	* @return array
429
+	 * Returns list of available locales
430
+	 *
431
+	 * @return array
432 432
 	 */
433 433
 	public function listLocaleDir()
434 434
 	{
@@ -527,100 +527,100 @@  discard block
 block discarded – undo
527 527
 	public function remove_accents($string) {
528 528
 		if ( !preg_match('/[\x80-\xff]/', $string) ) return $string;
529 529
 		$chars = array(
530
-		    // Decompositions for Latin-1 Supplement
531
-		    chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
532
-		    chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
533
-		    chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
534
-		    chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
535
-		    chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
536
-		    chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
537
-		    chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
538
-		    chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
539
-		    chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
540
-		    chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
541
-		    chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
542
-		    chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
543
-		    chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
544
-		    chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
545
-		    chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
546
-		    chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
547
-		    chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
548
-		    chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
549
-		    chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
550
-		    chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
551
-		    chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
552
-		    chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
553
-		    chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
554
-		    chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
555
-		    chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
556
-		    chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
557
-		    chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
558
-		    chr(195).chr(191) => 'y',
559
-		    // Decompositions for Latin Extended-A
560
-		    chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
561
-		    chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
562
-		    chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
563
-		    chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
564
-		    chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
565
-		    chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
566
-		    chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
567
-		    chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
568
-		    chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
569
-		    chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
570
-		    chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
571
-		    chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
572
-		    chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
573
-		    chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
574
-		    chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
575
-		    chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
576
-		    chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
577
-		    chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
578
-		    chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
579
-		    chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
580
-		    chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
581
-		    chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
582
-		    chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
583
-		    chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
584
-		    chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
585
-		    chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
586
-		    chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
587
-		    chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
588
-		    chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
589
-		    chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
590
-		    chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
591
-		    chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
592
-		    chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
593
-		    chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
594
-		    chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
595
-		    chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
596
-		    chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
597
-		    chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
598
-		    chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
599
-		    chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
600
-		    chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
601
-		    chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
602
-		    chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
603
-		    chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
604
-		    chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
605
-		    chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
606
-		    chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
607
-		    chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
608
-		    chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
609
-		    chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
610
-		    chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
611
-		    chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
612
-		    chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
613
-		    chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
614
-		    chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
615
-		    chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
616
-		    chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
617
-		    chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
618
-		    chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
619
-		    chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
620
-		    chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
621
-		    chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
622
-		    chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
623
-		    chr(197).chr(190) => 'z', chr(197).chr(191) => 's'
530
+			// Decompositions for Latin-1 Supplement
531
+			chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
532
+			chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
533
+			chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
534
+			chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
535
+			chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
536
+			chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
537
+			chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
538
+			chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
539
+			chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
540
+			chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
541
+			chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
542
+			chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
543
+			chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
544
+			chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
545
+			chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
546
+			chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
547
+			chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
548
+			chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
549
+			chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
550
+			chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
551
+			chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
552
+			chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
553
+			chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
554
+			chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
555
+			chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
556
+			chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
557
+			chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
558
+			chr(195).chr(191) => 'y',
559
+			// Decompositions for Latin Extended-A
560
+			chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
561
+			chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
562
+			chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
563
+			chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
564
+			chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
565
+			chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
566
+			chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
567
+			chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
568
+			chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
569
+			chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
570
+			chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
571
+			chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
572
+			chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
573
+			chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
574
+			chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
575
+			chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
576
+			chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
577
+			chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
578
+			chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
579
+			chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
580
+			chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
581
+			chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
582
+			chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
583
+			chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
584
+			chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
585
+			chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
586
+			chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
587
+			chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
588
+			chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
589
+			chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
590
+			chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
591
+			chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
592
+			chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
593
+			chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
594
+			chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
595
+			chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
596
+			chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
597
+			chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
598
+			chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
599
+			chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
600
+			chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
601
+			chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
602
+			chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
603
+			chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
604
+			chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
605
+			chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
606
+			chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
607
+			chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
608
+			chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
609
+			chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
610
+			chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
611
+			chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
612
+			chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
613
+			chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
614
+			chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
615
+			chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
616
+			chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
617
+			chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
618
+			chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
619
+			chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
620
+			chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
621
+			chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
622
+			chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
623
+			chr(197).chr(190) => 'z', chr(197).chr(191) => 's'
624 624
 		);
625 625
 		$string = strtr($string, $chars);
626 626
 		return $string;
Please login to merge, or discard this patch.