[php] regex PCRE avec une apostrophe

je n'arrive pas a faire accepter une apostrophe
si la regex est inclue entre deux guillemet simples et que j'echappe l'apostrophe, ça marche pas.
si la regex est inclu entre deux guillemets doubles, sans échapper l'apostrophe, il y a un message d'erreur à cause des guillemets doubles.
la regex est defini à l'interieur d'une classe, si elle ne l'est pas, je n'ai pas de problémes avec les guillemets doubles.
merci d'avance pour vos lumiéres
Configuration: Linux Suse
Firefox 2.0.0.2

1 réponse

  1. Bizarre.

    Faudrait voir l'expression régulière.
    0
    1. Bonjour et merci pour la réponse
      voici:
      '/^[ a-zA-Zéèêôâîûäüöëï]+([ \'-]?[ a-zA-Zéèêôâîûäüöëï]+){0,2}$/i';

      mais on peut utiliser une forme plus simple comme exemple, celle-ci , le probléme est le même
      '/^[ a-zA-Zéèêôâîûäüöëï\'-]+$/i';

      si elle est defini comme ça à l'intérieur d'une classe ça marche pour par exemple "d'artagnan"
      par contre si "d'artagnan" est dans un $_POST ça ne marche pas, magic_quotes_gpc, etant à ON dans le php.ini, j'ai éssayé stripslashes() sur le $_POST avant de le comparer au modéle, mais ça ne marche pas non plu.

      d'autres part si le modéle est défini dans une simple fonction (pas dans une classe), je n'echappe pas l'apostrophe et je n'ai pas de message d'erreur pour les guillemets ouvrant/fermant. et ça marche
      function valid($nom)
      	{if( !preg_match("/^[ a-zA-Zéèêôâîûäüöëï]+(['-]?[ a-zA-Zéèêôâîûäüöëï]+){0,2}$/i", $adress) ){
      		
      		return false;}		
      	return true;
      		}	
      		
      echo valid("D'artagnan");


      je n'ai pas éssayé la simple fonction aprés un post.
      0
    2. il y avait une erreur dans le message, le nom de l'argument n'etait pas le même entre le () et les {}
      c'est
      function valid($nom)
      	{if( !preg_match("/^[ a-zA-Zéèêôâîûäüöëï]+(['-]?[ a-zA-Zéèêôâîûäüöëï]+){0,2}$/i", $nom) ){
      		
      		return false;}		
      	return true;
      		}	
      		
      echo valid("D'artagnan");


      d'autres part j'ai essayé le post avec magic_quotes_gpc=off; ça ne change rien.
      0