1: | <?php
|
2: | |
3: | |
4: | |
5: | |
6: | |
7: | |
8: | |
9: | |
10: |
|
11: | function oc_validate_length(string $string, int $minimum, int $maximum): bool {
|
12: | return strlen(trim($string)) >= $minimum && strlen(trim($string)) <= $maximum;
|
13: | }
|
14: |
|
15: | |
16: | |
17: | |
18: | |
19: | |
20: | |
21: |
|
22: | function oc_validate_email(string $email): bool {
|
23: | if (oc_strrpos($email, '@') === false) {
|
24: | return false;
|
25: | }
|
26: |
|
27: | $local = oc_substr($email, 0, oc_strrpos($email, '@'));
|
28: |
|
29: | $domain = oc_substr($email, (oc_strrpos($email, '@') + 1));
|
30: |
|
31: | $email = $local . '@' . idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
|
32: |
|
33: | return filter_var($email, FILTER_VALIDATE_EMAIL);
|
34: | }
|
35: |
|
36: | |
37: | |
38: | |
39: | |
40: | |
41: | |
42: |
|
43: | function oc_validate_ip(string $ip): bool {
|
44: | return filter_var($ip, FILTER_VALIDATE_IP);
|
45: | }
|
46: |
|
47: | |
48: | |
49: | |
50: | |
51: | |
52: | |
53: |
|
54: | function oc_validate_filename(string $filename): bool {
|
55: | return !preg_match('/[^a-zA-Z\p{Cyrillic}0-9\.\-\_]+/u', $filename);
|
56: | }
|
57: |
|
58: | |
59: | |
60: | |
61: | |
62: | |
63: | |
64: |
|
65: | function oc_validate_url(string $url): bool {
|
66: | return filter_var($url, FILTER_VALIDATE_URL);
|
67: | }
|
68: |
|
69: | |
70: | |
71: | |
72: | |
73: | |
74: | |
75: |
|
76: | function oc_validate_seo_url(string $keyword): bool {
|
77: | return !preg_match('/[^\p{Latin}\p{Cyrillic}\p{Greek}0-9\/\.\-\_]+/u', $keyword);
|
78: | }
|
79: | |