Если вам нужно проверить, что строка полностью состоит из букв, вы можете использовать ctype_alpha()
.
Код: ( Demo )
$string = 'asdgadsfg';
if (ctype_alpha($string)) {
echo "all alphabetical";
} else {
echo "not entirely alphabetical";
}
Вывод:
all alphabetical
Если вам необходимо проверить, является ли переданное значение like
, hate
или [что-то еще];создать массив «белого списка» для поиска значения.
Код: ( Демо )
$string = 'like';
$whitelist = ['like', 'hate'];
if (in_array($string, $whitelist)) {
echo "valid: $string";
} else {
echo "invalid: $string";
}
Вывод:
valid: like
Дополнительные советы:
if(isset($_GET['username']) && isset($_GET['action']))
можно записать более просто как:
if (isset($_GET['username'], $_GET['action'])) {
Вы не должны выполнять экранирование до тех пор, пока данные не будут применены к запросу.не случайно манипулируйте своими данными и не путайте себя.Честно говоря, я всегда использую подготовленные операторы для создания запроса с данными, предоставленными пользователем, поэтому я рекомендую вам изучить эту тему.
В своем регулярном выражении вам не нужно прятать точку внутрикласс символов, поэтому класс символов может выглядеть следующим образом: [a-z0-9.]
Если вы также хотите разрешить заглавные буквы, вы можете добавить i
после конечного разделителя шаблона (%
), чтобы он выглядел как %^[a-z0-9.]{4,69}$%i
или %^[a-z\d.]{4,69}$%i
.
_lower
- это странная вещь, добавляемая к имени вашей переменной, потому что вы не вызываете никаких функций, которые приводят строку в нижний регистр.