3v4l.org

run code in 500+ PHP versions simultaneously
<?php header('Content-Type: application/json; charset=utf-8'); mb_internal_encoding('UTF-8'); if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success' => false, 'errors' => ['request' => 'Изисква се POST заявка']], JSON_UNESCAPED_UNICODE); exit; } $contentType = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : ''; if (stripos($contentType, 'application/json') !== false) { $raw = file_get_contents('php://input'); $data = json_decode($raw, true); if (!is_array($data)) { $data = []; } } else { $data = $_POST; } $errors = []; if (!isset($data['name']) || trim((string)$data['name']) === '') { $errors['name'] = 'Името на предмета е задължително поле'; } else { $name = trim((string)$data['name']); $len = mb_strlen($name); if ($len < 2) { $errors['name'] = 'Името на предмета трябва да е с дължина поне 2 символа, а вие сте въвели ' . $len; } else if ($len > 150) { $errors['name'] = 'Името на предмета трябва да е с дължина най-много 150 символа, а вие сте въвели ' . $len; } } if (!isset($data['teacher']) || trim((string)$data['teacher']) === '') { $errors['teacher'] = 'Името на преподавателя е задължително поле'; } else { $teacher = trim((string)$data['teacher']); $len = mb_strlen($teacher); if ($len < 3) { $errors['teacher'] = 'Името на преподавателя трябва да е с дължина поне 3 символа, а вие сте въвели ' . $len; } else if ($len > 200) { $errors['teacher'] = 'Името на преподавателя трябва да е с дължина най-много 200 символа, а вие сте въвели ' . $len; } } if (!isset($data['description']) || trim((string)$data['description']) === '') { $errors['description'] = 'Описанието е задължително поле'; } else { $description = trim((string)$data['description']); $len = mb_strlen($description); if ($len < 10) { $errors['description'] = 'Описанието трябва да е с дължина поне 10 символа, а вие сте въвели ' . $len; } } $validGroups = ['М', 'ПМ', 'ОКН', 'ЯКН']; if (!isset($data['group']) || trim((string)$data['group']) === '') { $errors['group'] = 'Групата е задължително поле'; } else { $group = trim((string)$data['group']); if (!in_array($group, $validGroups, true)) { $errors['group'] = 'Невалидна група, изберете една от М, ПМ, ОКН и ЯКН'; } } if (!isset($data['credits']) || $data['credits'] === '') { $errors['credits'] = 'Кредитите са задължително поле'; } else { $credits = $data['credits']; if (is_string($credits)) { $credits = trim($credits); } if (!is_int($credits) && !(is_string($credits) && ctype_digit($credits))) { $errors['credits'] = 'Кредитите трябва да са цяло положително число'; } else { $creditsInt = (int)$credits; if ($creditsInt <= 0) { $errors['credits'] = 'Кредитите трябва да са цяло положително число'; } } } if (empty($errors)) { echo json_encode(['success' => true], JSON_UNESCAPED_UNICODE); } else { echo json_encode(['success' => false, 'errors' => $errors], JSON_UNESCAPED_UNICODE); } header('Content-Type: application/json; charset=utf-8'); mb_internal_encoding('UTF-8'); if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo json_encode(['success' => false, 'errors' => ['request' => 'Изисква се POST заявка']], JSON_UNESCAPED_UNICODE); exit; } $contentType = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : ''; if (stripos($contentType, 'application/json') !== false) { $raw = file_get_contents('php://input'); $data = json_decode($raw, true); if (!is_array($data)) { $data = []; } } else { $data = $_POST; } $errors = []; if (!isset($data['name']) || trim((string)$data['name']) === '') { $errors['name'] = 'Името на предмета е задължително поле'; } else { $name = trim((string)$data['name']); $len = mb_strlen($name); if ($len < 2) { $errors['name'] = 'Името на предмета трябва да е с дължина поне 2 символа, а вие сте въвели ' . $len; } else if ($len > 150) { $errors['name'] = 'Името на предмета трябва да е с дължина най-много 150 символа, а вие сте въвели ' . $len; } } if (!isset($data['teacher']) || trim((string)$data['teacher']) === '') { $errors['teacher'] = 'Името на преподавателя е задължително поле'; } else { $teacher = trim((string)$data['teacher']); $len = mb_strlen($teacher); if ($len < 3) { $errors['teacher'] = 'Името на преподавателя трябва да е с дължина поне 3 символа, а вие сте въвели ' . $len; } else if ($len > 200) { $errors['teacher'] = 'Името на преподавателя трябва да е с дължина най-много 200 символа, а вие сте въвели ' . $len; } } if (!isset($data['description']) || trim((string)$data['description']) === '') { $errors['description'] = 'Описанието е задължително поле'; } else { $description = trim((string)$data['description']); $len = mb_strlen($description); if ($len < 10) { $errors['description'] = 'Описанието трябва да е с дължина поне 10 символа, а вие сте въвели ' . $len; } } $validGroups = ['М', 'ПМ', 'ОКН', 'ЯКН']; if (!isset($data['group']) || trim((string)$data['group']) === '') { $errors['group'] = 'Групата е задължително поле'; } else { $group = trim((string)$data['group']); if (!in_array($group, $validGroups, true)) { $errors['group'] = 'Невалидна група, изберете една от М, ПМ, ОКН и ЯКН'; } } if (!isset($data['credits']) || $data['credits'] === '') { $errors['credits'] = 'Кредитите са задължително поле'; } else { $credits = $data['credits']; if (is_string($credits)) { $credits = trim($credits); } if (!is_int($credits) && !(is_string($credits) && ctype_digit($credits))) { $errors['credits'] = 'Кредитите трябва да са цяло положително число'; } else { $creditsInt = (int)$credits; if ($creditsInt <= 0) { $errors['credits'] = 'Кредитите трябва да са цяло положително число'; } } } if (empty($errors)) { echo json_encode(['success' => true], JSON_UNESCAPED_UNICODE); } else { echo json_encode(['success' => false, 'errors' => $errors], JSON_UNESCAPED_UNICODE); }
Output for 8.2.31, 8.3.0 - 8.3.31, 8.4.1 - 8.4.22, 8.5.0 - 8.5.7
Warning: Undefined array key "REQUEST_METHOD" in /in/dqJ0u on line 6 {"success":false,"errors":{"request":"Изисква се POST заявка"}}

preferences:
44.68 ms | 756 KiB | 3 Q