<?php
$intj = 5;
$arrformfields[$intj][3] = 'ok';
$arrformfields[$intj][18] = 'ok2';
${$arrformfields[$intj][3]} = '200000';
${$arrformfields[$intj][18]} = 4;
$value = '1990;';
$arrvalidrules = explode(';', $value);
// On vérifie qu'il n'y bien que deux valeurs.
if (count($arrvalidrules) == 2) {
$arrvarlabels = array('intyearstart', 'intyearend');
foreach ($arrvarlabels as $key => $label) // On va définir l'année de départ et de fin.
{
if ($arrvalidrules[$key]!='') // On a définit une valeur dans la règle.
{
if (is_numeric($arrvalidrules[$key])) // Valeur numérique fixe.
{
${$label} = intval($arrvalidrules[$key]);
}
else if (strpos($arrvalidrules[$key], 'Y') === 0) // Valeur selon l'année actuelle.
{
${$label} = date('Y');
if (($intsignpos = strpos($arrvalidrules[$key], '+')) !== false) // On vérifie si on souhaite faire une adition.
{
${$label} += intval(trim(substr($arrvalidrules[$key], $intsignpos+1)));
}
else if (($intsignpos = strpos($arrvalidrules[$key], '-')) !== false) // On vérifie si on souhaite faire une soustraction.
{
${$label} -= intval(trim(substr($arrvalidrules[$key], $intsignpos+1)));
}
}
else // On a saisit une valeur erroné (du texte) on définit la valeur comme par défaut.
{
${$label} = ($key == 0 ? str_pad(0, ${$arrformfields[$intj][18]}, '0') : null);
}
}
else // Définition de la valeur par défaut (annéeDeb = 0, annéeFin = null).
{
${$label} = ($key == 0 ? str_pad(0, ${$arrformfields[$intj][18]}, '0') : null);
}
}
if ($intyearend !== null) {
if (
(($intyearstart > $intyearend) && (${$arrformfields[$intj][3]} < $intyearend OR ${$arrformfields[$intj][3]} > $intyearstart))
OR
${$arrformfields[$intj][3]} < $intyearstart OR ${$arrformfields[$intj][3]} > $intyearend
)
{
if ($intyearstart > $intyearend) { // L'année de début > à la fin, on change les valeurs.
$intswitch = $intyearstart;
$intyearstart = $intyearend;
$intyearend = $intswitch;
}
//"Le champ '".$arrformfields[$intj][1]."' est invalide, la valeur doit être comprise entre ".$intyearstart." et ".$intyearend." !<br />";
echo "FAUX\n\n";
}
}
else if (${$arrformfields[$intj][3]} < $intyearstart) {
//"Le champ '".$arrformfields[$intj][1]."' est invalide, la valeur doit être comprise entre ".$intyearstart." et ".$intyearend." !<br />";
echo "FAUX\n\n";
}
}
echo 'Date : '.$intyearstart.' - '.$intyearend;