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 :

Couper une balise avec substr [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    recherche d'emploi
    Inscrit en
    Avril 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : recherche d'emploi

    Informations forums :
    Inscription : Avril 2022
    Messages : 88
    Points : 48
    Points
    48
    Par défaut Couper une balise avec substr
    Bonjour,
    Grace à vos aides, j'ai appris beaucoup.
    Maintenant je vais un peu corser les choses.
    Je sais couper une chaine à partir d'une position. Et tout ce qui est avant la position est enregistré dans une balise.
    Mais je sais pas faire l'inverse.
    C'est à dire==>> tout ce qui est après la position le copier dans une balise.
    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
     
    <?PHP
        $_SESSION['Balises3'] ='[RDV_NON][RDV_BAL][RSDP_NON]';
        $_SESSION['Balises2'] = "[ADC_START][SDP]1[GUICHET]2[DEM]3[USER_CMDB_DIF_NON]
        4[DEM_PDT_PCF < ASSET_XXX> < TPX_-1>]6[PRT_PRP < ASSET_ XXX < TPX_1>]7 [SFW_TLD < TPX_1 > ][NO COMMENT]10";
         $baliseStart ='4';
        $nature = $_SESSION['Balises2'];
        // Traitement du début de la chaine.
        $pos = strpos($nature, $baliseStart);
        $_SESSION['BalisesStart'] = substr($nature,0,$pos);
        echo 'BaliseStart ==>'.$_SESSION['BalisesStart'] ;// Donne [ADC_START][SDP]1[GUICHET]2[DEM]3[USER_CMDB_DIF_NON] \:D/ 
     
        //Traitement de fin de chaine.
     
        $baliseEnd ='4';
        $pos = strpos($nature, $baliseEnd);
        $_SESSION['BalisesEnd'] = substr($nature,-1,$pos);
        echo 'BaliseEnd ==>'.$_SESSION['BalisesEnd'] ; // Doit donner 4[DEM_PDT_PCF < ASSET_XXX> < TPX_-1>]6[PRT_PRP < ASSET_ 
                                                                                                                XXX < TPX_1>]7 [SFW_TLD < TPX_1 > ][NO COMMENT]10  |*() 
     
        // Concaténation des chaines.
        // $_SESSION['BaliseNew'] = $_SESSION['BalisesStart']. $_SESSION['Balises3'].$_SESSION['BalisesEnd'] ;
        // $_SESSION["Balises2"] = $_SESSION["BaliseNew"];
        //echo $_SESSION['Balises2'];
        ?>

    Merci.

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    j'ai pas compris le nom de tes variables, mais ce code doit pas être loin de ce que tu cherches :

    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
     
     
    <?PHP
        $_SESSION['Balises3'] ='[RDV_NON][RDV_BAL][RSDP_NON]';
        $_SESSION['Balises2'] = "[ADC_START][SDP]1[GUICHET]2[DEM]3[USER_CMDB_DIF_NON]
        4[DEM_PDT_PCF < ASSET_XXX> < TPX_-1>]6[PRT_PRP < ASSET_ XXX < TPX_1>]7 [SFW_TLD < TPX_1 > ][NO COMMENT]10";
         $baliseStart ='4';
        $nature = $_SESSION['Balises2'];
        // Traitement du début de la chaine.
        $pos = strpos($nature, $baliseStart);
        $_SESSION['BalisesStart'] = substr($nature,0,$pos);
        echo 'BaliseStart ==>'.$_SESSION['BalisesStart'] ;// Donne [ADC_START][SDP]1[GUICHET]2[DEM]3[USER_CMDB_DIF_NON] \:D/ 
     
        //Traitement de fin de chaine.
        $nature_inversee = strrev($nature); //on inverse la string
     
        $baliseEnd ='4';
     
        $pos = strpos($nature_inversee, $baliseEnd); //position du caractère 4 ds la string inversée
        $_SESSION['BalisesEnd'] = substr($nature_inversee,0, $pos);
        $_SESSION['BalisesEnd'] = strrev( $_SESSION['BalisesEnd']);
        echo 'BaliseEnd ==>'.$_SESSION['BalisesEnd'] ; /* Doit donner 4[DEM_PDT_PCF < ASSET_XXX> < TPX_-1>]6[PRT_PRP < ASSET_
                                                                                                                XXX < TPX_1>]7 [SFW_TLD < TPX_1 > ][NO COMMENT]10  |*() */
     
        // Concaténation des chaines.
        // $_SESSION['BaliseNew'] = $_SESSION['BalisesStart']. $_SESSION['Balises3'].$_SESSION['BalisesEnd'] ;
        // $_SESSION["Balises2"] = $_SESSION["BaliseNew"];
        //echo $_SESSION['Balises2'];
        ?>
    J'ai pas mis de commentaire à partir de la ligne 20 car j'ai vu que c'est ce qu'il fallait faire mais je capte pas le fonctionnement de substr...
    Les modifs sont de la ligne 15 à 21.
    La clé, c'est d'utiliser strrev pour inverser la string.

  3. #3
    Membre du Club
    Homme Profil pro
    recherche d'emploi
    Inscrit en
    Avril 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : recherche d'emploi

    Informations forums :
    Inscription : Avril 2022
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Bonjour LaurentSc,

    Je venais de comprendre la clé 'strrev', et grâce à ton code, j'en ai eu la validation.
    Merci beaucoup.

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

Discussions similaires

  1. [JDOM] Trouver une balise avec JDOM
    Par garzouille dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 15/05/2007, 12h13
  2. [Dates] Modifier une date avec 'substr'
    Par R'SKaP dans le forum Langage
    Réponses: 4
    Dernier message: 01/06/2006, 12h40
  3. Réponses: 2
    Dernier message: 11/05/2006, 15h12
  4. [XSLT] - Comment selectionner une balise avec un nom variable ?
    Par bchabot dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2006, 09h59
  5. couper une connection avec un serveur corba
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 31/05/2002, 10h11

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