blob: 672e60df148ad500c7ea5dfcd1cc364101248889 [file] [log] [blame]
<?php
namespace LdapRecord\Models\Attributes;
class MbString
{
/**
* Get the integer value of a specific character.
*
* @param $string
*
* @return int
*/
public static function ord($string)
{
if (static::isLoaded()) {
$result = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
if (is_array($result)) {
return $result[1];
}
}
return ord($string);
}
/**
* Get the character for a specific integer value.
*
* @param $int
*
* @return string
*/
public static function chr($int)
{
if (static::isLoaded()) {
return mb_convert_encoding(pack('n', $int), 'UTF-8', 'UTF-16BE');
}
return chr($int);
}
/**
* Split a string into its individual characters and return it as an array.
*
* @param string $value
*
* @return string[]
*/
public static function split($value)
{
return preg_split('/(?<!^)(?!$)/u', $value);
}
/**
* Detects if the given string is UTF 8.
*
* @param $string
*
* @return string|false
*/
public static function isUtf8($string)
{
if (static::isLoaded()) {
return mb_detect_encoding($string, 'UTF-8', $strict = true);
}
return $string;
}
/**
* Checks if the mbstring extension is enabled in PHP.
*
* @return bool
*/
public static function isLoaded()
{
return extension_loaded('mbstring');
}
}