private function contains(array $needles, string $type, string $haystack = NULL, string $filename = NULL) : bool {
if (empty($needles)) return FALSE;
if ($filename)
$haystack = file_get_contents($filename);
$now_what = function(string $needle) use ($haystack, $type) : array {
$has_needle = str_contains($haystack, $needle);
if ($type === 'any' && $has_needle)
return ['done' => TRUE, 'return' => TRUE];
if ($type === 'all' && !$has_needle)
return ['done' => TRUE, 'return' => FALSE];
return ['done' => FALSE];
};
foreach ($needles as $needle) {
$check = $now_what($needle);
if ($check['done'])
return $check['return'];
}
return TRUE;
}
function containsAny(array $needles, string $haystack = NULL, string $filename = NULL) : bool {
return self::contains($needles, 'any', $haystack, $filename);
}
function containsAll(array $needles, string $haystack = NULL, string $filename = NULL) : bool {
return self::contains($needles, 'all', $haystack, $filename);
}