40 lines
1.0 KiB
PHP
40 lines
1.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Prüft, ob eine Suchanfrage gültig ist.
|
|
*
|
|
* Erlaubt werden Buchstaben, Zahlen, Umlaute, typische Satzzeichen und Leerzeichen.
|
|
* Die Länge muss zwischen 1 und 50 Zeichen liegen.
|
|
*
|
|
* @param string $query Zu prüfender Suchbegriff
|
|
*
|
|
* @return bool true wenn die Suche gültig ist, sonst false
|
|
*/
|
|
function searchQueryValidator($query)
|
|
{
|
|
$query = trim($query);
|
|
|
|
// Mindestens 1 Zeichen, maximal 50 Zeichen
|
|
$length = mb_strlen($query);
|
|
if ($length < 1 || $length > 50) {
|
|
return false;
|
|
}
|
|
|
|
// Erlaubt Buchstaben (inkl. Umlaut/ß), Zahlen, Leerzeichen sowie ?, !, ., -, _
|
|
$searchPattern = '/^[a-zA-Z0-9äöüÄÖÜß\s?!.,\-_]+$/u';
|
|
|
|
return preg_match($searchPattern, $query) === 1;
|
|
}
|
|
|
|
/**
|
|
* Prüft, ob das gewählte Treffer-Limit erlaubt ist.
|
|
*
|
|
* @param int|string $limit Das zu prüfende Limit
|
|
*
|
|
* @return bool true wenn das Limit 10, 20, 50 oder 100 ist, sonst false
|
|
*/
|
|
function searchLimitValidator($limit)
|
|
{
|
|
$allowedLimits = [10, 20, 50, 100];
|
|
return in_array((int)$limit, $allowedLimits, true);
|
|
} |