Я использую приведенный ниже код кода для проверки уникального имени пользователя.Подтвердить уникальное имя пользователя, используя PHP preg_grep
function validateRepositoryUnique($field, $list, &$valid) {
if (preg_grep('/^'.preg_quote($field->value).'$/i', $list) == -1) {
$valid = false;
$field->valid = false;
$field->error = '"' . $field->value . '" already exists.';
return false;
}
return true;
}
Пример.
$filed->value = "test";
$list = array('test','test1','Test');
Однако я прошел «тест» в значении $ filed->. булево значение хранится показывая bool(true)
когда я сделал var_dump(validateRepositoryUnique($field, $list, &$valid));
И все, что я введен «тест», «ABC», «а», логическое сохранил возвращаемое значение bool(true)
.
Мое намерение состоит в том, чтобы текст, найденный в массиве, возвратил значение $valid
в значение false и распечатал ошибку.
Извинения за мой плохой английский и мои основные знания языка программирования PHP.
Считаете ли вы использование in_array()? – ryantxr
Я не пробовал, но, похоже, он не может проверить чувствительность к регистру и правильный формат, который я хотел. –