2012-05-16 4 views
0

Вот простой код, который я использую для проверки минимум 3 символов. Я хотел бы сделать исключение, если запрос является полностью числовым (код также имеет возможность поиска по идентификаторам case, длина которых меньше 3 символов).Фильтр поиска: минимальные символы

<?php 

if (strlen($_POST['Search'])>=3) { 

include 'search.php'; 

} else { 

$message = '3+ characters, please'; 

} 

?> 

Спасибо за помощь :)

ответ

1

Вы должны написать что-то вроде этого:

// make sure no notices are emitted if the input is not as expected 
$search = isset($_POST['Search']) ? $_POST['Search'] : null; 

if (!ctype_digit($search)) { 
    // it's all digits 
} 
else if (strlen($search) < 3) { 
    // error: less than three characters 
} 
else { 
    // default case 
} 

Не стесняйтесь объединять ветви по умолчанию, а случай «всех цифр» должен пересылаться на тот же код.

Важно: Используйте толькоctype_digit для проверки, если на входе все цифры. is_numeric вернется true для других типов ввода, а также:

Числовые строки состоят из необязательного знака, любое число цифр, опционально дробная часть и опционально экспоненциальной части. Таким образом, + 0123.45e6 является действительным числовым значением. Шестнадцатеричная нотация (0xFF) допускается также , но только без знака, десятичной и экспоненциальной частей.

1

Если я вас правильно понял:

<?php 

if (is_numeric($_POST['Search']) || strlen($_POST['Search'])>=3) { 

?> 
2

Используйте это:

if (strlen($_POST['Search'])>=3 ||is_numeric($_POST['Search'])) { 
    //Do stuff 
} else 
//do other stuff 
Смежные вопросы