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 :

Récupérer le dernier élément entre slashes [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 35
    Points
    35
    Par défaut Récupérer le dernier élément entre slashes
    bonjour,

    les regex me sont encore inconnues malgré un intérêt grandissant.
    je souhaiterai extraire la dernière partie d'une chaine.
    Par exemple dans:

    http://www.developpez.net/forums/

    je ne voudrai garder que -> forums

    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Hello,

    essaie avec ce masque là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $url     = 'http://www.developpez.net/forums/test/je/test/';
    $masque  = '`\/([a-z0-9._-]{0,})\/?$`iSm';
     
    preg_match($masque, $url, $return);
    echo $return[1]; // return test avec ou sans slash à la fin.
    ?>
    Bon courage ^^

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    un poil moins gourmand:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reg="#([^/]*)/$#";
    $chaine="http://www.developpez.net/forums/";
    preg_match($reg,$chaine,$res);
    echo $res[1];

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    bonsoir,

    je ne suis pas surpris de votre réactivité, merci
    j'ai besoin de cette regex afin de contrôler un champs de formulaire nommé nom_doc (avec inclusion de ce nouvel élément dans une base de données)

    ma question peut vous surprendre et peut en dérouter certains mais à quel moment, à quel endroit, dois-je inclure cette regex dans mon code ?

    ------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
     
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ajoutdoc")) {
      $insertSQL = sprintf("INSERT INTO documents (nom_doc, icone_memoID, memo_crea, memo_com, memo_exe, memo_info, marqueID, clientID, tempsH_crea, tempsMN_crea, tempsH_exe, tempsMN_exe, tempsH_info, tempsMN_info) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['nom_doc'], "text"),
                           GetSQLValueString($_POST['icone_memoID'], "text"),
                           GetSQLValueString($_POST['memo_crea'], "text"),
                           GetSQLValueString($_POST['memo_com'], "text"),
                           GetSQLValueString($_POST['memo_exe'], "text"),
                           GetSQLValueString($_POST['memo_info'], "text"),
                           GetSQLValueString($_POST['marqueID'], "int"),
                           GetSQLValueString($_POST['clientID'], "int"),
                           GetSQLValueString($_POST['tempsH_crea'], "text"),
                           GetSQLValueString($_POST['tempsMN_crea'], "text"),
                           GetSQLValueString($_POST['tempsH_exe'], "text"),
                           GetSQLValueString($_POST['tempsMN_exe'], "text"),
                           GetSQLValueString($_POST['tempsH_info'], "text"),
                           GetSQLValueString($_POST['tempsMN_info'], "text"));
      mysql_select_db($database_interface_c14, $interface_c14);
      $Result1 = mysql_query($insertSQL, $interface_c14) or die(mysql_error());
     
      $insertGoTo = "../index.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    merci

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    ici tu concatènes ta requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $insertSQL = sprintf("INSERT INTO documents (
    donc manifestement juste avant ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    bonjour,

    pas assez familiarisé avec ces concaténations
    j'ai besoin d'une solution, d'une syntaxe plus explicite qui seraient bien venues

    merci pour votre patience

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    la concaténation est bonne ...
    tu construist le string de la requete, ça c'est correct...
    totu ce que tu dois faire c'est juste avant de construire le string verifier si les données sont au bon format au moyen d'un test if ... et de la regexp
    si les données ne sont pas au bon format tu renvoies sur le form avec un message d'alerte, si elle sont correctes tu poursuis ...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    bonjour,

    [c'est juste avant de construire le string vérifier si les données sont au bon format au moyen d'un test if ... et de la regexp]

    C'est encore trop abstrait pour moi. Je souhaiterai une explication par l'exemple.
    Comme un dessin vaut mieux qu'un grand discours, peux-tu me fournir un exemple de ce test if... ?

    merci

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Ben avant de construire ta chaine de requete avec les données du form...
    fais un teste sur les données du form ..
    SI les données sont correctes tu construis la chaine de requete, sinon tu retourne sur le form

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

Discussions similaires

  1. Récupérer dernier élément d'une List
    Par loupdu45 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 07/01/2012, 02h57
  2. Récupérer l'avant dernier élément d'une table
    Par markoBasa dans le forum SQL
    Réponses: 1
    Dernier message: 22/08/2008, 09h37
  3. [RegEx] récupérer un élément entre certains caractères
    Par malk0 dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2008, 15h44
  4. Réponses: 10
    Dernier message: 09/06/2006, 17h02
  5. Comment récupérer l'index du dernier élément inséré ?
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 22h41

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