Symfony\Polyfill\Mbstring

Mbstring::mb_internal_trim │ private static │ CF7 1.0

Метод класса: 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() 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);
}