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 :

Supprimer les ^ et les 6 caractère qui suivent [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    Par défaut Supprimer les ^ et les 6 caractère qui suivent
    Bonjour,
    (je ne suis pas sur de l'emplacement du topic)

    Comme le dit le titre, je cherche a supprimer les ^ et les 6 caractère qui suivent.

    un exemple
    A valuable medicinal herb which ^000088counteracts the effects of poison^000000.
    ^ffffff_^000000
    je veut donc ici supprimé les ^000088 , ^000000 , ^ffffff .

    Comment procéder ?

    Merci.

    Edit : Voici ce que j'ai pu commencer :
    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
     
    <?php
     
    require_once("conf.php");
     
    // connexion a la base de donnee
    $connexion = mysql_connect($host,$user,$mdp) or die (mysql_error());
     
    $db = mysql_select_db($db) or die (mysql_error());
     
    $rq = mysql_query("SELECT * FROM `item_db_desc2`") or die (mysql_error());
     
    while ($li = mysql_fetch_assoc($rq)) {
     
    $id = $li['id'];
     
    $desc = $li['desc'];
     
    // si le caractere ^ est dans $desc
    if(stristr($desc, '^') !== FALSE) {
     
    echo "il est la<br />";
    // je sépare en deux le contenu au niveau du ^
    $in = explode ('^', $desc, 1);
     
     
    $apres = substr($in[1], 6 );
     
    $finiapres = str_replace($apres, "" , $in[1]);
     
    $ins = $in[0].$finiapres ; 
     
    if(stristr($desc, '^') !== FALSE) { echo"mais pas supprime <br />".$in[0]; }
     
    $upd = mysql_query("UPDATE `item_db_desc2` SET `desc`='".mysql_real_escape_string($ins)."' WHERE id=$id ") or die (mysql_error());
     
     
     
    }
     
    }
     
    ?>
    seulement j'ai un souci avec le explode, j'ai dans $in[0] toute mon text et dans $in[1] , j' n'ai rien.

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    En faisant un preg_replace avec le regex suivant, ca devrait fonctionner :

    Je suis parti du principe que les 6 caractères étaient des caractères exprimant une valeur héxadécimale, de 0 à 9 et de A à F.

  3. #3
    Membre éclairé 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
    Par défaut
    Je suis parti du principe que les 6 caractères étaient des caractères exprimant une valeur héxadécimale, de 0 à 9 et de A à F.
    oui c'est exact, mais il ne va pas supprimé le reste?
    enfin je ne sais pas utiliser preg_match,

    comment faire?

    j'avoue que j'aimerai bien que tu m'esplique un peu ca fonction, je n'arrive pas vraiment a comprendre sur php.net

    Merci.

    edit : mon explode déconne
    seulement j'ai un souci avec le explode, j'ai dans $in[0] toute mon text et dans $in[1] , j' n'ai rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $in = explode ("^", $desc,1);

  4. #4
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
      $str = "A valuable medicinal herb which ^000088counteracts the effects of poison^000000.^ffffff_^000000";
      $res = preg_replace('/\^[0-9a-fA-F]{6}/', '', $str);
      echo $res;
    ?>
    et le résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A valuable medicinal herb which counteracts the effects of poison._
    1er argument, le regex recherché, 2ième la valeur qui va remplacer le pattern trouvé, 3ième argument, une variable pour récupérer le résultat.

  5. #5
    Membre éclairé 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
    Par défaut
    ha kan meme ...

    Je ne savais pas tout ca .... tres intéressant ...

    Que veut dire ceci concrètement ?
    [0-9a-fA-F]
    Au sinon merci

  6. #6
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    0-9 -> un caractère compris entre 0 et 9
    a-f -> (ou) un caractère compris entre a et f
    A-F -> (ou) un caractère compris entre A et F




    {6} -> et ceci pour 6 caractères

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/03/2010, 00h02
  2. Réponses: 25
    Dernier message: 30/09/2007, 10h13
  3. Réponses: 1
    Dernier message: 30/03/2007, 16h38
  4. [CSV] Supprimer les caractères qui gênent
    Par sami_c dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2006, 08h41
  5. les caractères qui posent problème ..
    Par questionneuse dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 18/07/2006, 14h26

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