1<?php 2 3namespace dokuwiki\Utf8; 4 5/** 6 * Provides static access to the UTF-8 conversion tables 7 * 8 * Lazy-Loads tables on first access 9 */ 10class Table 11{ 12 /** 13 * Get the upper to lower case conversion table 14 * 15 * @return array 16 */ 17 public static function upperCaseToLowerCase() 18 { 19 static $table = null; 20 if ($table === null) $table = include __DIR__ . '/tables/case.php'; 21 return $table; 22 } 23 24 /** 25 * Get the lower to upper case conversion table 26 * 27 * @return array 28 */ 29 public static function lowerCaseToUpperCase() 30 { 31 static $table = null; 32 if ($table === null) { 33 $uclc = self::upperCaseToLowerCase(); 34 $table = array_flip($uclc); 35 } 36 return $table; 37 } 38 39 /** 40 * Get the lower case accent table 41 * @return array 42 */ 43 public static function lowerAccents() 44 { 45 static $table = null; 46 if ($table === null) { 47 $table = include __DIR__ . '/tables/loweraccents.php'; 48 } 49 return $table; 50 } 51 52 /** 53 * Get the lower case accent table 54 * @return array 55 */ 56 public static function upperAccents() 57 { 58 static $table = null; 59 if ($table === null) { 60 $table = include __DIR__ . '/tables/upperaccents.php'; 61 } 62 return $table; 63 } 64 65 /** 66 * Get the romanization table 67 * @return array 68 */ 69 public static function romanization() 70 { 71 static $table = null; 72 if ($table === null) { 73 $table = include __DIR__ . '/tables/romanization.php'; 74 } 75 return $table; 76 } 77 78 /** 79 * Get the special chars as a concatenated string 80 * @return string 81 */ 82 public static function specialChars() 83 { 84 static $string = null; 85 if ($string === null) { 86 $table = include __DIR__ . '/tables/specials.php'; 87 // FIXME should we cache this to file system? 88 $string = Unicode::toUtf8($table); 89 } 90 return $string; 91 } 92} 93