Page 1 sur 1

Masque,filtrage d'un fichier

Posté : 27 mai 2006, 16:02
par hyperion
salut,
voilà, je suis un gros noob en php et j'aimerai faire un script qui puisse afficher un fichier en y faisant quelques modifications. Le fichier en question est celui-ci
(juste le début):
[DBestTimes.BestTimes]
BestMapTimes=AS-D2F[Multidodging]-V1-SE%TME:618%NMS:merêntiâ, {LôD}Storm, BlackCat
BestMapTimes=AS-7Co-MayanTemple-V01b%TME:283%NMS:{LôD}Knight (BE), »DmT]óö[slåyér«6 (NL), {MoD}Dark_Angel (GRB)

J'aimerai filtrer et réarranger ce fichier pour obtenir ceci:
AS-D2F[Multidodging]-V1 618 merêntiâ {LôD}Storm BlackCat
AS-7Co-MayanTemple-V01b 283 {LôD}Knight (BE) »DmT]óö[slåyér«6 (NL) {MoD}Dark_Angel (GRB)

seulement ya pleins de petits trucs qui m'enbètent:
j'arrive pas à enlever ça d'abord:
"[DBestTimes.BestTimes]"


j'ai fait ce script avec test2.ini=[DBestTimes.BestTimes] (juste ça)

Code : Tout sélectionner

<?php $fichier = "test2.ini"; $a = file_get_contents($fichier); $dat = str_replace("[DBestTimes.BestTimes]"," ",$a); echo $dat; //echo $dat ?>
ça m'affiche ça:
[DBestTimes.BestTimes] (ça garde l'expression au lieu de la supprimer :S )
Note, en hexa, avant le "[", ya "FF FE".

Ensuite , le deuxième problème c'est de changer les fins de lignes en saut de ligne et la encore j'ai pas reussi ..
et puis après le reste..enfin bon déjà les 2 premier problèmes du dessus réglés ça sera pas mal

Voilà si vous pouviez m'aider car là je galère lol

Posté : 27 mai 2006, 17:36
par Vaedan
Bonjour. Pourrais tu éditer ton message et le mettre en forme à l'aide de

Code : Tout sélectionner

et [php] ???

Posté : 28 mai 2006, 10:09
par hyperion
Bonjour. Pourrais tu éditer ton message et le mettre en forme à l'aide de

Code : Tout sélectionner

et [php] ???[/quote] k c fait

Posté : 28 mai 2006, 10:15
par Vaedan
Je te conseille de lire ton fichier avec parse_ini_file() et de le reconstituer.

Posté : 28 mai 2006, 12:31
par hyperion
j'ai essayé avec la fonction parse_ini_file avec ce code:

Code : Tout sélectionner

<?php $file="test2.ini"; $ini_array = parse_ini_file($file, TRUE); $dat_a=($ini_array["DBestTimes.BestTimes"]["BestMapTimes"]); $dat_b=explode("%",$dat_a); //isolement Carte/Temps/Joueurs echo $dat_a; echo '<br/>'; print_r($dat_b); echo '<br/>'; $dat_b[1] = str_replace("TME:","",$dat_b[1]); //suppression des données indésirables dans Temps et Joueurs $dat_b[2] = str_replace("NMS:","",$dat_b[2]); $dat_b[2] = str_replace(" ","",$dat_b[2]); print_r($dat_b); //isolement du nom de la carte $carte = $dat_b[0]; echo '<br/><br/>Carte: <br/>' .$carte; //Convertion du temps en secondes en Minutes et Secondes $minutes=floor($dat_b[1]/(60)); $secondes=$secondes=60*(number_format($dat_b[1]/(60),2)-floor($dat_b[1]/(60))); $temps = array_merge($minutes,$secondes); echo '<br/><br/>Temps:<br/>'; print_r($temps); //Insertion des noms de joueurs dans un tableau à 3 dimensions $joueurs=explode(",",$dat_b[2]); echo '<br/><br/>Joueurs: <br/>'; print_r($joueurs); $classement = array_merge($carte,$temps,$joueurs); echo '<br/><br/>Classement: Carte Minutes Secondes Joueur1 Joueur2 Joueur3<br/>'; print_r($classement); ?>
Ce code arrive à séparer correctement les variables avec des données avec des caractères simples, seulement quand test2.ini= ça:
[DBestTimes.BestTimes]
BestMapTimes=AS-7Co-MayanTemple-V01b%TME:283%NMS:{LôD}Knight (BE), »DmT]óö[slåyér«6 (NL), {MoD}Dark_Angel (GRB)

, ya des caractère que php n'aime pas et il arrive plus à séparer les variables:
Warning: Error parsing test2.ini on line 2 in c:\program files\easyphp1-8\www\read2.php on line 4

Notice: Undefined index: DBestTimes.BestTimes in c:\program files\easyphp1-8\www\read2.php on line 5

Array ( [0] => )

Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\read2.php on line 11

Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\read2.php on line 12
Array ( [0] => [1] => [2] => )

Carte:

Minutes:0

Temps:
Array ( [0] => 0 [1] => 0 )

Joueurs:
Array ( [0] => )

Classement: Carte Minutes Secondes Joueur1 Joueur2 Joueur3
Array ( [0] => [1] => 0 [2] => 0 [3] => )

comment faire, pour en amont, filtrer ces variables indésirables? (une fonction qui enlève les mauvais caractères?)

Posté : 30 mai 2006, 18:58
par hyperion
g reussi à faire fonctionner mon script correctement avec plusieurs lignes en le modifiant seulement celui-ci ne fonctionne pas avec des fichiers codés en UTF-16. (FF FE en tout début de fichier, puis après les données textes).
Ya t'il un moyen de convertir le fichier en faisant en sorte de supprimer ce codage?