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 des mots et en colorer certains


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut Supprimer des mots et en colorer certains
    Bonjour a tous!
    Ce code permet de faire a peu pres ce que je veux:

    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
    $message = "[Node 1]<br /> 
    Motherland:0<br /> 
    CenterX:570<br />     
    CenterY:423<br /> 
    Type:2<br /> 
    Neighbourgs:6<br /> 	
    1:139 0<br /> 	
    2:138 0<br />
    3:181 0<br />	
    4:193 16<br /> 	
    5:141 16<br /> 	
    6:182 16<br /> 
    Label:MAGDEBOURG "; 
    echo 'Texte original :<br />',$message,'<br />';
    ?>
     
     
     
    <?php
    $message=preg_replace('`\Motherland:([^[]+)\Neighbourgs:`s',//Il faut prendre les mots avec leur encadrement s'il le sont dans le texte ne fonctionne qu'avec les mots non coupés
                          '<font color="#FF0000"><b>$1</b></font>',
                          $message);
     echo '<br />Le résultat de cette regex :<br />'. $message.'<br /><br />';
    ?>
    Il elimine les deux mots liste dans la regex, colore et met en gras les mots placés entre ceux eliminés :

    Le résultat de cette regex :
    [Node 1]

    CenterX:570
    CenterY:423
    Type:2

    1:139 0
    2:138 0
    3:181 0
    4:193 16
    5:141 16
    6:182 16
    Label:MAGDEBOURG


    Mais je voudrais le faire sur tout un fichier txt, et retirer aussi tous les chiffres apres la ligne Type:2:

    Voici le code que j' utilise, mais je ne parviens pas au resultats escompté et chaque ligne est lue separement, ce qui me convient pas j'aimerais garder la liste composée comme au depart :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    // Un filtre de ligne de commande Unix pour convertir les lettres
    // en majuscule de début des paragraphe en minuscules
    $fp = fopen("CmpSaxe1813.txt", "r") or die("Impossible de lire la ligne de commande");//On ouvre le fichier 
    while (!feof($fp)) {
        $line = fgets($fp, 4096);
        $line = preg_replace('`\Motherland:([^[]+)\Neighbourgs:`s',//On elimine les deux mots
                          '<font color="#FF0000"><b>$1</b></font>',//On colore les mots placées entre les deux mot a supprimer
    					  $line);
     
     echo '<br />Le résultat de cette regex :<br />'.$line.'<br /><br />';
    }
    fclose($fp);
    ?>
    Et j'obtiens un texte sans coloration, sans mis en gras et avec :

    Le résultat de cette regex :
    [Header]


    Le résultat de cette regex :
    Bkground:CmpSaxe1813


    Le résultat de cette regex :
    Nb nodes:605


    Le résultat de cette regex :


    Le résultat de cette regex :
    [Node 1]


    Rien n'a agit,
    et en enlevant la phrase de presentation "Le résultat de cette regex :" devant echo cela donne, correct pour la presentation mais pas dans le resultat, une aide serait la bienvenue, merci.

    [Node 2]
    Motherland:0
    Center X:1426
    Center Y:325
    Type:2
    Neighbourgs:5
    1:562 18
    2:559 18
    3:558 16
    4:565 16
    5:563 16
    Label:STETTIN

    [Node 3]
    Motherland:0
    Center X:1286
    Center Y:540
    Type:2
    Neighbourgs:5
    1:577 2
    2:581 16
    3:580 16
    4:554 16
    5:555 16
    Label:KUSTRIN

    Les chiffres qui sont variable selon les nodes, sous Neighbourgs:5 doivent etre supprimés,

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    apres verification je me vois contraint de faire une liste composée ainsi:
    Sachant que le peux avoir + de 600 a + de 8 000 nodes,

    Header
    Bkground:CmpSaxe1813
    Nb nodes:605

    [Node 1]
    Center X:570
    Center Y:423


    [Node 2]
    Center X:1426
    Center Y:325


    [Node 3]
    Center X:1286
    Center Y:540


    [Node 4]
    Center X:1225
    Center Y:854

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour, je ne trouve pas ou j'ai pu faire l'erreur,
    j'ai fait une rectification a la ligne fgets, mais ca change rien.

Discussions similaires

  1. Supprimer des mots dans une chaine de caractères
    Par Sanceray3 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2009, 11h04
  2. supprimer des mots d'un taille définite dans un memo
    Par farid0031 dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/05/2009, 23h10
  3. Réponses: 2
    Dernier message: 06/06/2008, 16h49
  4. [RegEx] supprimer des mots dans une phrase
    Par anarchoi dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2007, 09h44
  5. comment supprimer des mots d'un texte
    Par visteur dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2006, 15h11

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