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 la partie de la chaîne avant le marqueur


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut Récupérer la partie de la chaîne avant le marqueur
    Bonjour,
    je voudrait récupéré une chaine de mot qui est dans une phrase, cette phrase étant déja dans une variable,
    je connai déja "strstr" mais celui ci me donne que la partie apres et non avant .
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo  strstr("user@FAI.fr",'@');  // va affiché @FAI.fr
    tandi que moi je voudrait récupéré la partie avant le "@".

    Merci.

  2. #2
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    hello,
    tu peux utiliser la fonction explode()
    A++

  3. #3
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    c'etait un exemple ^^
    mes phrases sont des lognue phrase, donc je peu pas les couper selon les espace qu'il sépare les mots, étant donné que ce n'est jamais la meme phrase, je ne peut pas s'avoir le nombre d'espace qu'il va il y avoir,
    exemple :
    1045#
    A ceremonial mask used by an ancient shaman.
    Weight : 1
    #
    je voudrais récuperer seulement ce qui précède le mot weight.
    Merci.

  4. #4
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    oki,
    regarde ce que fait la fonction file().
    ça peut t interesser. Sinon fo que tu fasses de la regexp !!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    peut être une piste : avec strspn tu vas pouvoir avoir la longueur de ta chaîne avant une certaine occurrence, enfin ce n'est pas vraiment une occurrence je te laisse aller voir cette fonction. Si tu as la longueur de ta chaîne tu pourra te débrouiller après. Sinon à part en utilisant des tableaux ce qui va être lourd je n'ai pas souvenir de fonctions qui fasse directement ça

  6. #6
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Bonjour,
    ca ne m'arrange toujours pas ^^
    j ene connai pas la longueur de ma phrase, donc je ne sais jamais a quel occurance je doit m'arreter ...

    Merci.

  7. #7
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    J'ai une petite solution , seulement ca déconne ^^
    voici le codee
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    //On met le contenu du fichier texte dans un tableau
    //Chaque ligne du fichier correspond à une case du tableau
    $array_fichier_source = file('fichier_source.txt');
     
    //On compte le nombre de lignes
    $nb_lignes_array = count($array_fichier_source);
     
    $connexion = mysql_connect("localhost","root","") or die (mysql_error());
    $db = mysql_select_db("sitev03");
     
    for ( $i = 0 ; $i < $nb_lignes_array ; $i++ )
    {
       //On cherche d'abord le numéro.
       //Un numéro est repéré car il est seul sur sa ligne et est suivi d'un #
       //Donc on teste qu'un # est présent sur la ligne, mais pas en première position
       if ( strpos( $array_fichier_source[$i] , '#' ) != 0 )
       {
           //On stocke le numéro
           //On extrait la chaîne qui va du début de la ligne jusqu'à la position du dernier #
           $numero = substr( $array_fichier_source[$i] , 0 , strrpos ( $array_fichier_source[$i] , '#' ) );
     
           $j = $i + 1;
           $phrase = '';
     
           //Tant que l'on ne rencontre pas un autre #, on stocke le contenu de la phrase associée
          while( strpos ( $array_fichier_source[$j] , '#' ) === false )
          {
              $phrase .= $array_fichier_source[$j];
              $j++;
          }
    	 	 $ch = strpos($phrase,'Class');
    	 if ($ch !==false) {
    	 $no = strrev($phrase);
       $enleve = stristr($phrase ,'ssalC');
       $oui = strrev($phrase); }
       else {
     
       $no = strrev($phrase);
       $enleve = stristr($phrase ,'thgieW');
       $oui = strrev($phrase); } 
     
     
    $requete = 'INSERT INTO `data` ( `num` , `desc` ) 
    VALUES ("'.$numero.'", "'.mysql_real_escape_string($phrase).'")';
     
     
    	mysql_query($requete) or die("Erreur MYSQL : $requete<br/>".mysql_error());
     
       }
    }
     ?>
    en fait j'inverse le sens de ma phrase avec strrev , donc par exemple bonjour devien ruojnob , donc apres ca je fait un stristr pour faire soter totu ce qui il y apres , "ce qu eje voulai a l'origine) seulement parfois il y a le mot Class que je veu aussi dégager, donc j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ch = strpos($phrase,'Class');
    	 if ($ch !==false) {
    seulement il ne marche pas ... ce qu'il y a apres reste , ca ne se supprime pas ; comment faire ?
    Merci.

Discussions similaires

  1. Récupérer une partie d’une chaîne de caractères
    Par pheonix00fr dans le forum Excel
    Réponses: 2
    Dernier message: 18/12/2014, 17h34
  2. récupérer une sous-chaîne à partie d'une chaîne
    Par aroua dans le forum Général Java
    Réponses: 8
    Dernier message: 18/04/2008, 15h36
  3. Réponses: 3
    Dernier message: 01/08/2007, 11h49
  4. Récupérer une partie d'une chaine de caractère
    Par Cyborg289 dans le forum Langage
    Réponses: 5
    Dernier message: 07/07/2005, 14h06
  5. récupérer la partie décimale d’un champ
    Par maouazzani dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/04/2004, 16h10

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