preg_match of FILTER_VALIDATE_

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick

Patrick

07/04/2008 20:12:00
Quote Anchor link
Ik kwam FILTER_VALIDATE_..... tegen per toeval. Ik was naar iets anders op zoek.
Ik heb de preg_match die ik gebruikte, veranderd in de filter-functie
Het lijkt te werken, met een paar testjes die gedaan heb.

Maar wat is beter, veiliger, betrouwbaarder, etc.?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
    // input van formulier checken
    function check_field ($inhoud, $type) {
        trim($inhoud); // eventuele spaties verwijderen
        switch ($type) {
            // controleer een e-mailadres met reguliere expressie
            case T_EMAIL:
                if (empty($inhoud) || filter_var($inhoud, FILTER_VALIDATE_EMAIL) === FALSE) {
                    // i.p.v. !preg_match("~(\s|^)([-a-z_][-a-z0-9._]*@[-a-z0-9_]+(?:\.[-a-z0-9_]+)+)\b~si", $inhoud)
                    return false;
                    }

                else {
                    return true;
                    }

                break;
            // controleer een URL met reguliere expressie
            case T_URL:
                if (empty($inhoud) || filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
                    // i.p.v. !preg_match("~(\s|^)((?:[a-z][-a-z0-9+&@#/%?=\~_|!:,.;]+)\.(?:[a-z]{2,6}))\b~si", $inhoud)
                    return false;
                    }

                else {
                    return true;
                    }

                break;
                default:

                    return false;
            }
        }

?>
 
PHP hulp

PHP hulp

12/01/2025 03:51:00
 
GaMer B

GaMer B

07/04/2008 20:34:00
Quote Anchor link
Wat info over filters: klik. Verder:
Wat is het verschil tussen filters en preg_match()?
Filters staan vast (de regels althans) en bij een preg_match maak je zelf een 'variabele' regel waaraan de preg_match zich gaat houden.

Wat is veiliger? Filters of preg_match()?
Beiden. Voor de ene taak is filters beter (of even goed) en voor de andere taak is preg_match() beter (of even goed). Voor email validatie is preg_match() wat handiger, omdat je het enorm kunt uitbreiden. Bij de email filter staat het hard-coded in de PHP ingebouwd, dus daar kun je niets aan veranderen. Je kunt wel weer een call_back_function gebruiken, maar dan is preg_match() weer wat directer.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.