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 :

substr() et prise de tete


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Par défaut substr() et prise de tete
    bonjour

    j'essai de faire un script pour recuperer des elements dans une chaine suivant ces caracteres / et ;

    voici ma chaine: free2/2010-06-22/DPT;free/2015-06-22/I2;

    ce que je veux : recuperer la chaine entre les ; et ensuite recuper mes trois chaines entre les / le tout dans une boucle afin d'en faire une fonction

    soit a la fin
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $var1:free2
    $var2:2010-06-22
    $var3:DPT;
    
    $var1:free
    $var2:2015-06-22
    $var3:I2;

    si vous savez comment faire...moi je seche !!
    merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Par défaut
    Je en suis pas expert mais en utilisant la fonction split() 2 fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    tableau de chaine=split(";" , la chaine complète)
    Pour chaque element de tableau
         tableau element=split("/", Element)
    Fin Pour chaque

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    bonjour,

    explode(";", $machaine) puis explode("/", $array[0]) ?

  4. #4
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Les expressions régulières sont faites pour ça. Utilise la fonction preg_match_all :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(preg_match_all('!(.*)/([0-9]{4}-[0-9]{2}-[0-9]{2})(.*);!', $chaine, $match) {
    foreach($match as $m) {
        list($tout, $var1,$var2,$var3) = $m; // par exemple
    }
    }

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Par défaut
    merci halleck

    par contre un truc tout con pour recupere seulement en boucle les element avant le ; je fais comment

    j'ai essayer ca mias ca marche pas !

    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
    echo "\nROW=".$row8="free2:2010-06-22:DPT;free3:2015-06-22:I2;";
                                    preg_match_all('/(.*);/', $row8, $matches, PREG_SET_ORDER);
                                    foreach ($matches as $valz) {
                                        echo "\nmatched: " . $valz[0] . "\n";
                                        print_r($valz);
                                        $mz=array($valz[0],$valz[1],$valz[2],$valz[3]);
                                        preg_match_all('!(.*):([0-9]{4}-[0-9]{2}-[0-9]{2}):(.*);!', $valz[0], $matches2, PREG_SET_ORDER);
                                        foreach ($matches2 as $valz2) {
                                        echo "\nmatched2: " . $valz2[0] . "\n";
                                        echo "part 21: " . $valz2[1] . "\n";
                                        echo "part 22: " . $valz2[2] . "\n";
                                        echo "part 23: " . $valz2[3] . "\n";
                                        print_r($valz2);
                                        $mz2=array($valz2[0],$valz2[1],$valz2[2],$valz2[3]);
                                        }
     
                                    }

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

Discussions similaires

  1. [RegEx] prise de tete
    Par cerede2000 dans le forum Langage
    Réponses: 2
    Dernier message: 19/01/2007, 11h28
  2. Réponses: 8
    Dernier message: 24/04/2006, 01h14
  3. [JTABLE] suppression d'une ligne (prise de tete)
    Par uraxyd dans le forum Composants
    Réponses: 1
    Dernier message: 14/12/2005, 19h19
  4. Dns Apache Routeur Et prise de tete
    Par vampyrx dans le forum Développement
    Réponses: 2
    Dernier message: 06/07/2005, 12h20

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