]/', '', $path); if ('' === $path) { $path = '/'; } return mb_substr($path, 0, self::MAX_LENGTH); } /** * 妥当なUTF-8か。mbstring が無い環境でも動くよう preg にフォールバックする。 */ private static function isValidUtf8(string $value): bool { if (function_exists('mb_check_encoding')) { return mb_check_encoding($value, 'UTF-8'); } return 1 === preg_match('//u', $value); } }