n(s+)/m", "] => ", $output); $output = '
' . $label . ' => ' . $output . '
'; if ($echo) { echo $output; return null; } return $output; } } if (!function_exists('dump_exit')) { /** * Dump and exit */ function dump_exit($var, string $label = 'Dump', bool $echo = true): void { dump($var, $label, $echo); exit; } } if (!function_exists('mysql2text')) { function mysql2text(?string $message): string { $regeleinden = ['\r\n', '\r', '\n']; $message = str_replace($regeleinden, chr(13), $message ?? ''); $message = stripslashes($message); return $message; } } if (!function_exists('mysql2html')) { function mysql2html(?string $message): string { $regeleinden = ['\r\n', '\r', '\n']; $message = str_replace($regeleinden, "
", $message ?? ''); $message = stripslashes($message); return $message; } } if (!function_exists('textarea2html')) { function textarea2html(?string $message): string { $regeleinden = [chr(13)]; $message = str_replace($regeleinden, "
", $message ?? ''); $message = stripslashes($message); return $message; } } if (!function_exists('date2mysql')) { function date2mysql(?string $date): ?string { if (!check_date($date)) { return null; } return date('Y-m-d', strtotime($date)); } } if (!function_exists('mysql2date')) { function mysql2date(?string $date): string { if (!check_date($date)) { return ''; } return date('d-m-Y', strtotime($date)); } } if (!function_exists('mysql2dateWithTime')) { function mysql2dateWithTime(?string $date): string { if (!check_date($date)) { return ''; } return date('d-m-Y H:i:s', strtotime($date)); } } if (!function_exists('check_date')) { function check_date(?string $date): bool { if (is_null($date) || strlen($date) < 6) { return false; } return true; } } if (!function_exists('mysql2timestamp')) { function mysql2timestamp(string $date): int { $a = strptime($date, '%Y-%m-%d'); $timestamp = mktime(0, 0, 0, $a['tm_mon'] + 1, $a['tm_mday'], $a['tm_year'] + 1900); return $timestamp; } } if (!function_exists('readTextFromStorage')) { function readTextFromStorage(?string $text): string { return base64_decode($text ?? ''); } } if (!function_exists('cleanTextForStorage')) { function cleanTextForStorage(?string $text): string { $text = str_replace('/r/n', '', $text ?? ''); $text = str_replace('\r\n', '', $text); $text = str_replace('/n', '', $text); $text = str_replace('\n', '', $text); $text = stripslashes($text); return base64_encode($text); } } if (!function_exists('setTextareaForStorage')) { function setTextareaForStorage(?string $text): string { $text = setTextArea($text); return base64_encode($text); } } if (!function_exists('setTextArea')) { function setTextArea(?string $text): string { $text = str_replace('/r/n', chr(13), $text ?? ''); $text = str_replace('\r\n', chr(13), $text); $text = str_replace('/n', chr(13), $text); $text = str_replace('\n', chr(13), $text); $text = str_replace('\r', chr(13), $text); $text = str_replace('/r', chr(13), $text); $text = str_replace('\n\n', chr(13) . chr(13), $text); $text = stripslashes($text); return $text; } } if (!function_exists('setTextAreaHtml')) { function setTextAreaHtml(?string $text): string { $text = str_replace('/r/n', '
', $text ?? ''); $text = str_replace('\r\n', '
', $text); $text = str_replace('/n', '
', $text); $text = str_replace('\n', '
', $text); $text = str_replace('\r', '
', $text); $text = str_replace('/r', '
', $text); $text = str_replace('\n\n', '

', $text); $text = stripslashes($text); return $text; } } if (!function_exists('checkBsn')) { function checkBsn(string $bsn): bool { return true; } } if (!function_exists('isNotNullOrEmpty')) { /** * Validate an object property */ function isNotNullOrEmpty($in, ?string $property = null, bool $zeroAllowed = false): bool { if ($property === null) { if (is_object($in) && count((array)$in) === 0) { return false; } $isNotEmpty = $zeroAllowed ? !empty($in) : $in === 0 || $in === '0' || !empty($in); if (is_string($in)) { return $isNotEmpty && strtoupper($in) !== 'NULL' && strtoupper($in) !== 'FALSE' && strtoupper($in) !== 'UNDEFINED'; } return $isNotEmpty; } if (!is_object($in)) { throw new Exception('Provided test $in must be a class instance(object) or a valid classname(string)'); } if (!property_exists($in, $property)) { return false; } $prop = $in->{$property}; $isNotEmpty = $zeroAllowed ? !empty($prop) : $prop === 0 || $prop === '0' || !empty($prop); if (is_string($prop)) { return $isNotEmpty && strtoupper($prop) !== 'NULL' && strtoupper($prop) !== 'FALSE' && strtoupper($prop) !== 'UNDEFINED'; } return $isNotEmpty; } } if (!function_exists('isNotNullOrEmptyOrZero')) { function isNotNullOrEmptyOrZero($in, ?string $property = null): bool { return isNotNullOrEmpty($in, $property, true); } } if (!function_exists('isNullOrEmpty')) { function isNullOrEmpty($in, ?string $property = null): bool { return !isNotNullOrEmpty($in, $property); } } if (!function_exists('isNullOrEmptyOrZero')) { function isNullOrEmptyOrZero($in, ?string $property = null): bool { return !isNotNullOrEmpty($in, $property, true); } } if (!function_exists('parseNotNullField')) { function parseNotNullField($in): string { if (isNullOrEmpty($in)) { return ''; } return (string)$in; } } if (!function_exists('unique_multidim_array')) { function unique_multidim_array(array $array, string $key): array { $temp_array = []; $key_array = []; foreach ($array as $val) { $keyValue = is_array($val) ? $val[$key] : $val->$key; if (!in_array($keyValue, $key_array)) { $key_array[] = $keyValue; $temp_array[] = $val; } } return $temp_array; } } if (!function_exists('validate_password_strength')) { /** * Validate password strength * Password must contain: * - At least 8 characters * - At least 1 uppercase letter * - At least 1 lowercase letter * - At least 1 number * - At least 1 special character */ function validate_password_strength(string $password): bool { if (strlen($password) < 8) { return false; } if (!preg_match('/[A-Z]/', $password)) { return false; } if (!preg_match('/[a-z]/', $password)) { return false; } if (!preg_match('/[0-9]/', $password)) { return false; } if (!preg_match('/[^A-Za-z0-9]/', $password)) { return false; } return true; } } if (!function_exists('get_password_requirements_nl')) { /** * Get password validation requirements in Dutch */ function get_password_requirements_nl(): array { return [ 'Minimaal 8 karakters', 'Minimaal 1 hoofdletter', 'Minimaal 1 kleine letter', 'Minimaal 1 cijfer', 'Minimaal 1 speciaal teken (!@#$%^&* etc.)' ]; } }