Symfony\Polyfill\Mbstring
Mbstring::mb_internal_trim
Метод класса: Mbstring{}
Хуков нет.
Возвращает
string|false.
Использование
$result = Mbstring::mb_internal_trim( $regex, $string, ?string $characters, ?string $encoding, $function );
- $regex(строка) (обязательный)
- .
- $string(строка) (обязательный)
- .
- ?string $characters(обязательный)
- .
- ?string $encoding(обязательный)
- .
- $function(строка) (обязательный)
- .
Код Mbstring::mb_internal_trim() Mbstring::mb internal trim CF7 6.2.4.1
private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function)
{
if (null === $encoding) {
$encoding = self::mb_internal_encoding();
} elseif (!self::assertEncoding($encoding, $function.'(): Argument #3 ($encoding) must be a valid encoding, "%s" given')) {
return false;
}
if ('' === $characters) {
return $string;
}
if ('UTF-8' === self::getEncoding($encoding)) {
$encoding = null;
if (!preg_match('//u', $string) || (null !== $characters && !preg_match('//u', $characters))) {
return self::mb_trim_invalid_utf8($string, $characters, $function);
}
} else {
$string = self::iconv($encoding, 'UTF-8', $string);
if (null !== $characters) {
$characters = self::iconv($encoding, 'UTF-8', $characters);
}
}
if (null === $characters) {
$characters = "\\0 \f\n\r\t\v\u{00A0}\u{1680}\u{2000}\u{2001}\u{2002}\u{2003}\u{2004}\u{2005}\u{2006}\u{2007}\u{2008}\u{2009}\u{200A}\u{2028}\u{2029}\u{202F}\u{205F}\u{3000}\u{0085}\u{180E}";
} else {
$characters = preg_quote($characters);
}
$string = preg_replace(\sprintf($regex, $characters), '', $string);
if (null === $encoding) {
return $string;
}
return self::iconv('UTF-8', $encoding, $string);
}