Page 1 sur 1

probleme avec ereg();

Posté : 06 janv. 2009, 13:36
par hakazizi
Je ne comprend pas pourquoi sa ne fonctionne pas quelque soit le code postal debutant ou non par 44 je n'entre pas dans ma condition...
je pense que cela vient de la fonction ereg(); mais peut-etre que je me trompe
je n'ai aucun message d'erreur.
<?php
$pays=strToLower($sql['pays']);
$code_postal=$sql['code_postal'];
if($pays=='france' AND ereg("(44{2})([0-9]{3})",$code_postal))
{
echo'<option value="3">Présentation des modèles à domicile (uniquement Nantes et son aglomeration)</option>';
}
?>
Merci

Posté : 06 janv. 2009, 13:50
par Calimero
Ca m'étonnerait que cela vienne de la fonction ereg() (qui fonctionne très bien, même si elle est marquée comme obsolète dans la doc) mais plutôt de ton expression régulière.

Si tu n'arrives pas à la corriger, essaye de la remplacer par un code équivalent sans expression régulière avec par exemple substr() (très facile dans ce cas).

Posté : 06 janv. 2009, 14:35
par Berzemus
ouaip, les fonctions preg_* sont plus conseillés.

Et ton problème vient de "44{2}"

En gros, tu demandes un 4, et un autre 4 mais répété 2 fois. Cette condition ne valide donc que '444'.

Pour valider '44', soit tu enlèves le {2}, soit tu enlèves le premier 4.

Posté : 06 janv. 2009, 14:48
par hakazizi
merci pour les reponse sa fonctionne tb mais surtout pour les explications.