[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/ -> utf8.php (source)

   1  <?php
   2  
   3  /**
   4   * UTF8 helper functions
   5   *
   6   * This file now only intitializes the UTF-8 capability detection and defines helper
   7   * functions if needed. All actual code is in the \dokuwiki\Utf8 classes
   8   *
   9   * @author     Andreas Gohr <andi@splitbrain.org>
  10   */
  11  
  12  use dokuwiki\Utf8\Clean;
  13  use dokuwiki\Utf8\Conversion;
  14  use dokuwiki\Utf8\PhpString;
  15  use dokuwiki\Utf8\Unicode;
  16  
  17  /**
  18   * check for mb_string support
  19   */
  20  if (!defined('UTF8_MBSTRING')) {
  21      if (function_exists('mb_substr') && !defined('UTF8_NOMBSTRING')) {
  22          define('UTF8_MBSTRING', 1);
  23      } else {
  24          define('UTF8_MBSTRING', 0);
  25      }
  26  }
  27  
  28  /**
  29   * Check if PREG was compiled with UTF-8 support
  30   *
  31   * Without this many of the functions below will not work, so this is a minimal requirement
  32   */
  33  if (!defined('UTF8_PREGSUPPORT')) {
  34      define('UTF8_PREGSUPPORT', (bool)@preg_match('/^.$/u', 'ñ'));
  35  }
  36  
  37  /**
  38   * Check if PREG was compiled with Unicode Property support
  39   *
  40   * This is not required for the functions below, but might be needed in a UTF-8 aware application
  41   */
  42  if (!defined('UTF8_PROPERTYSUPPORT')) {
  43      define('UTF8_PROPERTYSUPPORT', (bool)@preg_match('/^\pL$/u', 'ñ'));
  44  }
  45  
  46  
  47  if (UTF8_MBSTRING) {
  48      mb_internal_encoding('UTF-8');
  49  }
  50  
  51  
  52  if (!function_exists('utf8_isASCII')) {
  53      /** @deprecated 2019-06-09 */
  54      function utf8_isASCII($str)
  55      {
  56          dbg_deprecated(Clean::class . '::isASCII()');
  57          return Clean::isASCII($str);
  58      }
  59  }
  60  
  61  
  62  if (!function_exists('utf8_strip')) {
  63      /** @deprecated 2019-06-09 */
  64      function utf8_strip($str)
  65      {
  66          dbg_deprecated(Clean::class . '::strip()');
  67          return Clean::strip($str);
  68      }
  69  }
  70  
  71  if (!function_exists('utf8_check')) {
  72      /** @deprecated 2019-06-09 */
  73      function utf8_check($str)
  74      {
  75          dbg_deprecated(Clean::class . '::isUtf8()');
  76          return Clean::isUtf8($str);
  77      }
  78  }
  79  
  80  if (!function_exists('utf8_basename')) {
  81      /** @deprecated 2019-06-09 */
  82      function utf8_basename($path, $suffix = '')
  83      {
  84          dbg_deprecated(PhpString::class . '::basename()');
  85          return PhpString::basename($path, $suffix);
  86      }
  87  }
  88  
  89  if (!function_exists('utf8_strlen')) {
  90      /** @deprecated 2019-06-09 */
  91      function utf8_strlen($str)
  92      {
  93          dbg_deprecated(PhpString::class . '::strlen()');
  94          return PhpString::strlen($str);
  95      }
  96  }
  97  
  98  if (!function_exists('utf8_substr')) {
  99      /** @deprecated 2019-06-09 */
 100      function utf8_substr($str, $offset, $length = null)
 101      {
 102          dbg_deprecated(PhpString::class . '::substr()');
 103          return PhpString::substr($str, $offset, $length);
 104      }
 105  }
 106  
 107  if (!function_exists('utf8_substr_replace')) {
 108      /** @deprecated 2019-06-09 */
 109      function utf8_substr_replace($string, $replacement, $start, $length = 0)
 110      {
 111          dbg_deprecated(PhpString::class . '::substr_replace()');
 112          return PhpString::substr_replace($string, $replacement, $start, $length);
 113      }
 114  }
 115  
 116  if (!function_exists('utf8_ltrim')) {
 117      /** @deprecated 2019-06-09 */
 118      function utf8_ltrim($str, $charlist = '')
 119      {
 120          dbg_deprecated(PhpString::class . '::ltrim()');
 121          return PhpString::ltrim($str, $charlist);
 122      }
 123  }
 124  
 125  if (!function_exists('utf8_rtrim')) {
 126      /** @deprecated 2019-06-09 */
 127      function utf8_rtrim($str, $charlist = '')
 128      {
 129          dbg_deprecated(PhpString::class . '::rtrim()');
 130          return PhpString::rtrim($str, $charlist);
 131      }
 132  }
 133  
 134  if (!function_exists('utf8_trim')) {
 135      /** @deprecated 2019-06-09 */
 136      function utf8_trim($str, $charlist = '')
 137      {
 138          dbg_deprecated(PhpString::class . '::trim()');
 139          return PhpString::trim($str, $charlist);
 140      }
 141  }
 142  
 143  if (!function_exists('utf8_strtolower')) {
 144      /** @deprecated 2019-06-09 */
 145      function utf8_strtolower($str)
 146      {
 147          dbg_deprecated(PhpString::class . '::strtolower()');
 148          return PhpString::strtolower($str);
 149      }
 150  }
 151  
 152  if (!function_exists('utf8_strtoupper')) {
 153      /** @deprecated 2019-06-09 */
 154      function utf8_strtoupper($str)
 155      {
 156          dbg_deprecated(PhpString::class . '::strtoupper()');
 157          return PhpString::strtoupper($str);
 158      }
 159  }
 160  
 161  if (!function_exists('utf8_ucfirst')) {
 162      /** @deprecated 2019-06-09 */
 163      function utf8_ucfirst($str)
 164      {
 165          dbg_deprecated(PhpString::class . '::ucfirst()');
 166          return PhpString::ucfirst($str);
 167      }
 168  }
 169  
 170  if (!function_exists('utf8_ucwords')) {
 171      /** @deprecated 2019-06-09 */
 172      function utf8_ucwords($str)
 173      {
 174          dbg_deprecated(PhpString::class . '::ucwords()');
 175          return PhpString::ucwords($str);
 176      }
 177  }
 178  
 179  if (!function_exists('utf8_deaccent')) {
 180      /** @deprecated 2019-06-09 */
 181      function utf8_deaccent($str, $case = 0)
 182      {
 183          dbg_deprecated(Clean::class . '::deaccent()');
 184          return Clean::deaccent($str, $case);
 185      }
 186  }
 187  
 188  if (!function_exists('utf8_romanize')) {
 189      /** @deprecated 2019-06-09 */
 190      function utf8_romanize($str)
 191      {
 192          dbg_deprecated(Clean::class . '::romanize()');
 193          return Clean::romanize($str);
 194      }
 195  }
 196  
 197  if (!function_exists('utf8_stripspecials')) {
 198      /** @deprecated 2019-06-09 */
 199      function utf8_stripspecials($str, $repl = '', $additional = '')
 200      {
 201          dbg_deprecated(Clean::class . '::stripspecials()');
 202          return Clean::stripspecials($str, $repl, $additional);
 203      }
 204  }
 205  
 206  if (!function_exists('utf8_strpos')) {
 207      /** @deprecated 2019-06-09 */
 208      function utf8_strpos($haystack, $needle, $offset = 0)
 209      {
 210          dbg_deprecated(PhpString::class . '::strpos()');
 211          return PhpString::strpos($haystack, $needle, $offset);
 212      }
 213  }
 214  
 215  if (!function_exists('utf8_tohtml')) {
 216      /** @deprecated 2019-06-09 */
 217      function utf8_tohtml($str, $all = false)
 218      {
 219          dbg_deprecated(Conversion::class . '::toHtml()');
 220          return Conversion::toHtml($str, $all);
 221      }
 222  }
 223  
 224  if (!function_exists('utf8_unhtml')) {
 225      /** @deprecated 2019-06-09 */
 226      function utf8_unhtml($str, $enties = false)
 227      {
 228          dbg_deprecated(Conversion::class . '::fromHtml()');
 229          return Conversion::fromHtml($str, $enties);
 230      }
 231  }
 232  
 233  if (!function_exists('utf8_to_unicode')) {
 234      /** @deprecated 2019-06-09 */
 235      function utf8_to_unicode($str, $strict = false)
 236      {
 237          dbg_deprecated(Unicode::class . '::fromUtf8()');
 238          return Unicode::fromUtf8($str, $strict);
 239      }
 240  }
 241  
 242  if (!function_exists('unicode_to_utf8')) {
 243      /** @deprecated 2019-06-09 */
 244      function unicode_to_utf8($arr, $strict = false)
 245      {
 246          dbg_deprecated(Unicode::class . '::toUtf8()');
 247          return Unicode::toUtf8($arr, $strict);
 248      }
 249  }
 250  
 251  if (!function_exists('utf8_to_utf16be')) {
 252      /** @deprecated 2019-06-09 */
 253      function utf8_to_utf16be($str, $bom = false)
 254      {
 255          dbg_deprecated(Conversion::class . '::toUtf16be()');
 256          return Conversion::toUtf16be($str, $bom);
 257      }
 258  }
 259  
 260  if (!function_exists('utf16be_to_utf8')) {
 261      /** @deprecated 2019-06-09 */
 262      function utf16be_to_utf8($str)
 263      {
 264          dbg_deprecated(Conversion::class . '::fromUtf16be()');
 265          return Conversion::fromUtf16be($str);
 266      }
 267  }
 268  
 269  if (!function_exists('utf8_bad_replace')) {
 270      /** @deprecated 2019-06-09 */
 271      function utf8_bad_replace($str, $replace = '')
 272      {
 273          dbg_deprecated(Clean::class . '::replaceBadBytes()');
 274          return Clean::replaceBadBytes($str, $replace);
 275      }
 276  }
 277  
 278  if (!function_exists('utf8_correctIdx')) {
 279      /** @deprecated 2019-06-09 */
 280      function utf8_correctIdx($str, $i, $next = false)
 281      {
 282          dbg_deprecated(Clean::class . '::correctIdx()');
 283          return Clean::correctIdx($str, $i, $next);
 284      }
 285  }