diff options
Diffstat (limited to 'inc/utf8.php')
-rw-r--r-- | inc/utf8.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/inc/utf8.php b/inc/utf8.php index 7b7c19c6b..c944667f7 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -17,6 +17,25 @@ if(!defined('UTF8_MBSTRING')){ } } +/** + * Check if PREG was compiled with UTF-8 support + * + * Without this many of the functions below will not work, so this is a minimal requirement + */ +if(!defined('UTF8_PREGSUPPORT')){ + define('UTF8_PREGSUPPORT', (bool) @preg_match('/^.$/u', 'ñ')); +} + +/** + * Check if PREG was compiled with Unicode Property support + * + * This is not required for the functions below, but might be needed in a UTF-8 aware application + */ +if(!defined('UTF8_PROPERTYSUPPORT')){ + define('UTF8_PROPERTYSUPPORT', (bool) @preg_match('/^\pL$/u', 'ñ')); +} + + if(UTF8_MBSTRING){ mb_internal_encoding('UTF-8'); } if(!function_exists('utf8_isASCII')){ @@ -78,6 +97,32 @@ if(!function_exists('utf8_check')){ } } +if(!function_exists('utf8_basename')){ + /** + * A locale independent basename() implementation + * + * works around a bug in PHP's basename() implementation + * + * @see basename() + * @link https://bugs.php.net/bug.php?id=37738 + * @param string $path A path + * @param string $suffix If the name component ends in suffix this will also be cut off + * @return string + */ + function utf8_basename($path, $suffix=''){ + $path = trim($path,'\\/'); + $rpos = max(strrpos($path, '/'), strrpos($path, '\\')); + if($rpos) $path = substr($path, $rpos+1); + + $suflen = strlen($suffix); + if($suflen && (substr($path, -$suflen) == $suffix)){ + $path = substr($path, 0, -$suflen); + } + + return $path; + } +} + if(!function_exists('utf8_strlen')){ /** * Unicode aware replacement for strlen() |