Bonjour,

Je voudrais simplifier le code suivant en utilisant filter_var_array. D'une part je ne m'en sors pas, d'autre part, je me demande si le nouveau code sera réellement plus simple. Ce que j'ai essayé d'après l'exemple de la doc ne m'encourage pas, au contraire. De plus je ne comprends pas bien cet exemple.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
function setDefaultValue($item=NULL, $defValue=NULL) {
	return empty($item) ? $defValue: $item;
}
 
function convertDateFromEurToSQL($eur, $emptyValue) {
	if (empty($eur))
		return $emptyValue;			// Si la chaîne est vide, je retourne la chaîne par défaut
 
    $parts = preg_split('#[^\d]#u', $eur);
    if (count($parts) !== 3)
        return false;				// Si la chaîne ne comprend pas le bon nombre d'éléments, je signale une erreur
    list($d, $m, $y) = $parts;
    return (checkdate($m, $d, $y)) ?
        (new DateTime("{$y}-{$m}-{$d}"))->format('Y-m-d'):
        false;						// Si la date n'existe pas, je signale une erreur
}
 
$toSave['gender']	= setDefaultValue($toSave['gender'], '');
$toSave['last_name']	= setDefaultValue($toSave['last_name'], '');
$toSave['first_name']	= setDefaultValue($toSave['first_name'], '');
$toSave['middle_name']	= setDefaultValue($toSave['middle_name'], NULL);
$toSave['birth_date']	= convertDateFromEurToSQL($toSave['birth_date'], NULL);
$toSave['birth_place']	= setDefaultValue($toSave['birth_place'], NULL);
$toSave['christening_date']	= convertDateFromEurToSQL($toSave['christening_date'], NULL);
$toSave['death_date']	= convertDateFromEurToSQL($toSave['death_date'], NULL);
$toSave['death_place']	= setDefaultValue($toSave['death_place'], NULL);
$toSave['profession']	= setDefaultValue($toSave['profession'], NULL);
$toSave['comment']	= setDefaultValue($toSave['comment'], NULL);
$toSave['father_id']	= setDefaultValue($toSave['father_id'], NULL);
$toSave['mother_id']	= setDefaultValue($toSave['mother_id'], NULL);
$toSave['birth_order']	= setDefaultValue($toSave['birth_order'], NULL);