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 une valeur à la suite d'une chaine [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut Récupérer une valeur à la suite d'une chaine
    J'aimerais récupérer la valeur du champ HOSTNAME dans ce texte.
    Ce texte est tiré d'un mail outlook

    SYSTEM_ID=094892384214
    HOSTNAME=RTF-GHB-S203
    SNMP_LOCATION=Salle AlphaProduction

    Avec des limitations des deux cotés je sais faire, mais ici, je n'ai qu'un retour à la ligne ... \r ou \n ne fontionne pas. Il existe une solution ?

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, on dirait que cette structure est celle d'un fichier INI, tu peux utiliser la fonction parse_ini_file
    Dans ton cas, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $ini = parse_ini_file('mon_fichier.ini');
    echo $ini['HOSTNAME'];
    ?>
    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 164
    Points
    164
    Par défaut
    si le texte est tiré d'un e-mail, ce n'est pas un fichier ini.

    j'avais écrit une fonction qui se trouve dans les commentaires de la fonction ereg sur le manuel de php en ligne à l'époque. elle sert à retirer des portions de textes dans un document et retourne l'info sous forme de tableau.

    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
    function Return_Substrings($text, $sopener, $scloser)
                   {
                   $result = array();
     
                   $noresult = substr_count($text, $sopener);
                   $ncresult = substr_count($text, $scloser);
     
                   if ($noresult < $ncresult)
                           $nresult = $noresult;
                   else
                           $nresult = $ncresult;
     
                   unset($noresult);
                   unset($ncresult);
     
                   for ($i=0;$i<$nresult;$i++) 
                           {
                           $pos = strpos($text, $sopener) + strlen($sopener);
     
                           $text = substr($text, $pos, strlen($text));
     
                           $pos = strpos($text, $scloser);
     
                           $result[] = substr($text, 0, $pos);
     
                           $text = substr($text, $pos + strlen($scloser), strlen($text));
                           }
     
                   return $result;
                   }
    Après quelques temps, une autre personne avait améliorer cette fonction :

    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
    function returnSubstrings($text, $openingMarker, $closingMarker) {
       $openingMarkerLength = strlen($openingMarker);
       $closingMarkerLength = strlen($closingMarker);
     
       $result = array();
       $position = 0;
       while (($position = strpos($text, $openingMarker, $position)) !== false) {
         $position += $openingMarkerLength;
         if (($closingMarkerPosition = strpos($text, $closingMarker, $position)) !== false) {
           $result[] = substr($text, $position, $closingMarkerPosition - $position);
           $position = $closingMarkerPosition + $closingMarkerLength;
         }
       }
       return $result;
      }
    si le premier cas ne fonctionne pas, tu pourrais peut-être créer une fonction sur base de ces exemples.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Points : 61
    Points
    61
    Par défaut un solution possible
    si j'ai bien compris ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $string="SYSTEM_ID=094892384214
     HOSTNAME=RTF-GHB-S203
     SNMP_LOCATION=Salle AlphaProduction";
     
     $strposHOST=strpos($string,"HOSTNAME=");
     echo substr($string,$strposHOST+strlen("HOSTNAME="),strpos($string,"SNMP_LOCATION=") - ($strposHOST+strlen("HOSTNAME=")));
    ?>
    voila , tu me dirras si ca te convient

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  2. [2000] Récupérer la valeur de retour d'une procédure stockée
    Par drinkmilk dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/08/2006, 09h46
  3. comparer une valeur de formulaire et une chaine de caractere.
    Par minirom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/08/2006, 10h53
  4. Comment récupérer la valeur de Expr1 dans une requête ?
    Par Tchupacabra dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 15h16
  5. Question très bête : récupérer la valeur de retour d'une fct
    Par pekka77 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/10/2005, 17h57

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