Используя в форме отправки данных паттерн даты, получаем удобное значение даты в виде одной строковой переменной. С помощью функции explode() преобразуем её в массив и присваиваем в переменную. Используя функцию date(), присваиваем в другую переменную текущую дату и разбиваем её тем же способом. Полученные элементы двух массивов мы сравниваем друг с другом в соответствие с их временными значениями. Если текущая дата больше по всем трем значениям, вычитаем из текущего года год рождения и присваиваем в новую переменную, отвечающую за возраст. Иначе из разницы вычитаем еще единицу, так как день рождения в текущем году еще не наступил. После получения возраста проверяем его на поставленные критерии и выводим статус человека на экран.
Текст программы.
<html>
<head>
<title>zadanie1</title>
</head>
<body>
<?php
if (isset($_POST['data'])){
date_default_timezone_set('UTC');
$data = $_POST['data'];
$data = explode("-", $data);
$today = date("d.m.Y");
$today = explode(".", $today);
$age = 0;
if ($today[2] > $data[0]){
if ($today[1] >= $data[1]){
if ($today[0] >= $data[2]){
$age += $today[2] - $data[0];
} else {
$age += $today[2] - $data[0] - 1;
}
} else {
$age += $today[2] - $data[0] - 1;
}
}
switch(true){
case($age <= 6 && $age >= 0): {
echo "Дитя, его возраст ".$age;
break;
}
case($age <= 16 && $age >= 7): {
echo "Школьник, его возраст ".$age;
break;
}
case($age <= 22 && $age >= 17): {
echo "Студент, его возраст ".$age;
break;
}
case($age <= 60 && $age >= 23): {
echo "Большой человек, его возраст ".$age;
break;
}
default:{
echo "Отдыхающий, его возраст ".$age;
break;
}
}
} else {
print <<< HERE
<form method ="post">
<input type="date" name="data" pattern="[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}"><br>
<input type='submit' name="Submit" value='Отправить'>
</form>
HERE;
}
?>
</body>
</html>
Тестовый пример
Задание для выполнения.
Составить программу, определяющую является ли введенный шестизначный номер «счастливым» (совпадает ли у него сумма трех начальных и трех конечных цифр). Для выделения отдельных цифр во введенном номере можно использовать операции mod и div.
Описание алгоритма программы.
Создаем переменную, в которую передаем шестизначное число. Разбиваем его на 6 элементов символьного массива с помощью функции str_split(). Организуем цикл от 1 до 3-х, чтобы сосчитать сумму первых трех цифр в первый элемент массива. Организуем второй цикл от 4-х до 6-ти, чтобы сосчитать сумму последних трех цифр во второй элемент массива. После операций в циклах мы сравниваем первый элемент массива и второй элемент массива. Если они равны, номер будет счастливым, иначе - нет.
Текст программы.
<html>
<head>
<title>zadanie1</title>
</head>
<body>
<?php
if (isset($_POST['numer'])){
$num = $_POST['numer'];
$num = str_split($num);
for ($i = 1; $i < 3; $i++){
$num[0] += $num[$i];}
for ($i = 4; $i < 6; $i++){
$num[3] += $num[$i];}
if ($num[3] == $num[0]){
echo "Номер счастливый.";
} else {
echo "Номер не является счастливым. ";}
} else {
print <<< HERE
<form method ="post">
<input type="text" name="numer" pattern="[0-9]{6}"><br>
<input type='submit' name="Submit" value='Отправить'>
</form>
HERE;}
?>
</body>
</html>
4. Тестовый пример