СДЕЛАТЬ это
В XAMPP включено расширение intl, но вы должны раскомментировать расширение php_intl.dll в php.ini и перезапустить сервер через панель управления XAMPP. В WAMP расширение по умолчанию «активировано» по умолчанию, но не работает. Чтобы заставить его работать, вы должны пойти в папку php (по умолчанию) C: \ wamp \ bin \ php \ php {version}, скопировать все файлы, которые выглядят как icu * .dll, и вставить их в каталог apache bin C: \ WAMP \ Bin \ Apache \ апача {версия} \ Bin. Затем перезапустите все службы, и все будет в порядке.
, если вы используете XAMPP, выполните следующие действия: 1. выключите XAMPP 2. Модифицированный php.ini находится в c /: xampp / php / php.ini 3. intl extension, но вы должны раскомментировать расширение php_intl.dll в php.ini и перезапустить сервер с помощью панели управления XAMPP.
Честно говоря, я думаю, что у вас есть самое элегантное решение для того, что вы пытаетесь сделать.
Вы уже используете оптимизированный код. Но вы можете оптимизировать его немного больше для отображения сообщения об ошибке. Как показано ниже:
$invalidFieldName = '';
$invalidFieldLength = 100;
if (strlen($cname) > 100) {
$invalidFieldName = 'CNAME';
} elseif (strlen($cowner) > 100) {
$invalidFieldName = 'COWNER';
} elseif (strlen($cemail) > 200) {
$invalidFieldName = 'CEMAIL';
$invalidFieldLength = 200;
} elseif (strlen($cpassword) > 100) {
$invalidFieldName = 'CPASSWORD';
}
if ($invalidFieldName != '') {
echo $invalidFieldName." should be greater than ".$invalidFieldLength;
}
Я не совсем уверен, поможет ли это вам, но я надеюсь, что это поможет вам.
Вы можете использовать цикл, чтобы уменьшить количество строк. Вот оптимизированное решение, даже если у вас есть более 10 полей для проверки:
Объявите массив полей и проведите через него цикл
$fields = array("cname" => 100, "cowner" => 100, "cemail" => 200, "cpassword" => 100); // key as field name and value as maximum limit - new values can be added here.
foreach($fields as $field => $length) {
if(strlen(${$field}) > $length) {
die("$field field can only contain $length characters");
}
}
Редактировать: Вы также можете сохранить все ошибки в массиве, а затем распечатать все ошибки на своей странице.
$errors = array();
foreach($fields as $field => $length) {
if(strlen(${$field}) > $length) {
$errors[] = "$field field can only contain $length characters";
}
}
print_r($errors);