Bonjour a tous!
Ce code permet de faire a peu pres ce que je veux:
Il elimine les deux mots liste dans la regex, colore et met en gras les mots placés entre ceux eliminés :
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 />'; ?>
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 :
Et j'obtiens un texte sans coloration, sans mis en gras et avec :
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); ?>
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,
Partager