94 lines
2.0 KiB
PHP
94 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace dokuwiki\Utf8;
|
||
|
|
||
|
/**
|
||
|
* Provides static access to the UTF-8 conversion tables
|
||
|
*
|
||
|
* Lazy-Loads tables on first access
|
||
|
*/
|
||
|
class Table
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* Get the upper to lower case conversion table
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function upperCaseToLowerCase()
|
||
|
{
|
||
|
static $table = null;
|
||
|
if ($table === null) $table = include __DIR__ . '/tables/case.php';
|
||
|
return $table;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the lower to upper case conversion table
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function lowerCaseToUpperCase()
|
||
|
{
|
||
|
static $table = null;
|
||
|
if ($table === null) {
|
||
|
$uclc = self::upperCaseToLowerCase();
|
||
|
$table = array_flip($uclc);
|
||
|
}
|
||
|
return $table;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the lower case accent table
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function lowerAccents()
|
||
|
{
|
||
|
static $table = null;
|
||
|
if ($table === null) {
|
||
|
$table = include __DIR__ . '/tables/loweraccents.php';
|
||
|
}
|
||
|
return $table;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the lower case accent table
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function upperAccents()
|
||
|
{
|
||
|
static $table = null;
|
||
|
if ($table === null) {
|
||
|
$table = include __DIR__ . '/tables/upperaccents.php';
|
||
|
}
|
||
|
return $table;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the romanization table
|
||
|
* @return array
|
||
|
*/
|
||
|
public static function romanization()
|
||
|
{
|
||
|
static $table = null;
|
||
|
if ($table === null) {
|
||
|
$table = include __DIR__ . '/tables/romanization.php';
|
||
|
}
|
||
|
return $table;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the special chars as a concatenated string
|
||
|
* @return string
|
||
|
*/
|
||
|
public static function specialChars()
|
||
|
{
|
||
|
static $string = null;
|
||
|
if ($string === null) {
|
||
|
$table = include __DIR__ . '/tables/specials.php';
|
||
|
// FIXME should we cache this to file system?
|
||
|
$string = Unicode::toUtf8($table);
|
||
|
}
|
||
|
return $string;
|
||
|
}
|
||
|
}
|