J'essaie d'utiliser une instruction if pour déterminer si une certaine variable dans PHP ($ phone) correspond à une expression régulière. Il y a trois options différentes - soit il le passe correctement, c'est une valeur plutôt correcte et nécessite juste de légères modifications, et finalement, c'est une valeur erronée et devrait retourner à la page précédente avec un message d'erreur. Voici ce que j'ai jusqu'à présent:Une fonction pour tester une expression régulière et changer le texte si elle ne correspond pas
EDIT: La valeur attendue de $ phone est soit 123-456-7890, 1234567890, soit (123) 456-7890. L'entrée souhaitée pour la base de données est 123-456-7890
if (preg_match("/^\d{3}-\d{3}-\d{4}$/", $phone)) {
// This is the 100% correct version
}
else if (preg_match("/^\d{10}$/", $phone)) {
$phone = preg_replace("/^(.{3})/", "-", $phone);
$phone = preg_replace("/^(.{6})/", "-", $phone);
// This is one of the mostly correct - this does not seem to work. I got a value of -37 when I tried to use it
}
else if (preg_match("/^\(\d{3}\) \d{3}-\d{4}$/", $phone)) {
// Have not tried anything here, because the problems here are similar to the else if statement above
}
else {
header('Location: '.$admin.'?error=phone');
// This should direct back to the previous page with an error message.
}
EDIT 2: Ok j'ai le cas et les ifs d'autre travail, mais l'autre ne redirige pas revenir à l'insertion de la page ou la prévention dans le base de données. Comment puis-je faire cela?
Mmmm, vous devriez nous dire au moins ce qui est l'entrée ('de phone' de $) et ce qui est la sortie attendue ... –