public function validate($input) : bool
{
if (is_array($this->haystack)) {
return in_array($input, $this->haystack, $this->identical);
}
if (!is_string($this->haystack)) {
return false;
}
if (empty($input)) {
return false;
}
$enc = mb_detect_encoding($input);
if ($this->identical) {
return mb_strpos($this->haystack, $input, 0, $enc) !== false;
}
return mb_stripos($this->haystack, $input, 0, $enc) !== false;
}