IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expression régulière preg-match


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut Expression régulière preg-match
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!preg_match('#^[www]+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
    Me refuse systématiquement mon caractère fin de chaîne: $

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comment ça "refuse" ?

    Au passage [www]c'est "w ou w ou w" donc c'est w tout court

    Et pour valider une url, tu as les filtres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filter_var($chaine, FILTER_VALIDATE_URL)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (filter_var(filter_var($Variable[$iLangue][19], FILTER_SANITIZE_URL), FILTER_VALIDATE_URL) === false) {
    ! Certes, cela fonctionne, mais mon contrôle se fait sur l'url sans 'http://' ==> 'www.w3schools.com', voilà pourquoi j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!preg_match('#^www+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
    Je souhaite comprendre pourquoi mon $ n'est pas accepté.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    FILTER_VALIDATE_URL fonctionne sans http ; et même, au pire, il suffit de l'ajouter en début de chaîne.

    Tu n'as toujours pas expliqué ton problème avec le $
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (filter_var(filter_var($Variable[$iLangue][19], FILTER_SANITIZE_URL), FILTER_VALIDATE_URL) === false) {
    Rajoute http:// s'il est absent.

    Ce que je souhaite c'est tester 'www.w3schools.com' avec mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!preg_match('#^www+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
    Qui fonction sans le $ fin de chaîne.

    ? Mais pourquoi fonctionne-t-il sans ' $ ' fin de chaîne et pas avec, alors que normalement il doit être présent.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne sais pas ce que tu fais mais chez moi ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo preg_match('#^w+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#','www.w3schools.com');
    // 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression régulière avec matches()
    Par sunwallis dans le forum Langage
    Réponses: 13
    Dernier message: 01/05/2010, 11h50
  2. [REGEX] expression régulière qui match tout les nombres sauf un
    Par neuromencien dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 28/05/2008, 08h21
  3. Réponses: 2
    Dernier message: 10/11/2006, 11h03
  4. Expressions régulières Java (matchs insuffisants)
    Par jemore dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2006, 19h55
  5. Réponses: 7
    Dernier message: 27/07/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo