le 29/09/2007 à 10:13
medmidou
Salut tout le monde
Je veux effectuer plusieurs modifications sur un fichier texte à travers une interface en PHP.
Alors j'ai utilisé ce code et ça marche très bien :
Le problème maintenant ce que je veux effectuer trois autres traitements et je n'ai pas su comment?
D’abord voici le fichier texte, elle contient des centaines de blocs comme celui là :
1. Comment je peux enlever la première et la dernière ligne (les lignes en gras) à l'aide des expression régulières ou autre chose si c'est possible.
2. Comment je peux enlever les espaces a la fin de chaque ligne,j'ai utiliser cette expression régulière mais le problème qu'elle m'enlève même les sauts de ligne :
3. Comment je peux enlever les sauts de lignes vides
Merci d'avance pour l'aide
Je veux effectuer plusieurs modifications sur un fichier texte à travers une interface en PHP.
Alors j'ai utilisé ce code et ça marche très bien :
<?php
$fichier="fichier.txt";
if (file_exists($fichier))
{
if($ouvre=fopen("$fichier","r")) /
{
while (!feof ($ouvre))
{
$lecture = fgets($ouvre, 512);
$donnee=explode("<br>",$lecture);
$combien=count($donnee)-1;
for ($i=0;$i<=$combien;$i++)
{
if (preg_match("#p0*#",$donnee[$i])){$donnee[$i]=preg_replace("#p0*#","/",$donnee[$i]);}
if (preg_match("#[A-Z]-9#",$donnee[$i])){$donnee[$i]=preg_replace("#-9#","9",$donnee[$i]);}
if (preg_match("#/r01s1b0*#",$donnee[$i])){$donnee[$i]=preg_replace("#/r01s1b0*#","-",$donnee[$i]);}
$liste_modif.=$donnee[$i]."";
}
}
}
else
{
echo "L'ouverture du fichier '$fichier' a echoué !!";
exit();
}
}
else
{
echo "Le fichier '$fichier' n'existe pas !!";
exit();
}
fclose($ouvre); // fermeture
$ouvre=fopen("texte.txt","w+");
fwrite($ouvre,$liste_modif);
echo "<center><b>Modification réussie </b></center>";
fclose($ouvre);
?>
Le problème maintenant ce que je veux effectuer trois autres traitements et je n'ai pas su comment?
D’abord voici le fichier texte, elle contient des centaines de blocs comme celui là :
================================================================================
PATH Abis TUN_1006
================================================================================
***** MAIN ROUTE *******
TUN9000-4/8c1
TUN9000-15/1
TUN9043-16/2
TUN9043-15/12
TUN9009-1/2
TUN9009-2/24c01
***** SPARE ROUTE *******
TUN9043-16/2
TUN9043-15/11
TUN9009-1/1
TUN9009-2/24c01
================================================================================
PATH Abis BAR_1017_2
================================================================================
***** MAIN ROUTE *******
TUN9001-2/17c01
TUN9001-1/2
TUN9043-15/5
TUN9043-3/17c1
PATH Abis TUN_1006
================================================================================
***** MAIN ROUTE *******
TUN9000-4/8c1
TUN9000-15/1
TUN9043-16/2
TUN9043-15/12
TUN9009-1/2
TUN9009-2/24c01
***** SPARE ROUTE *******
TUN9043-16/2
TUN9043-15/11
TUN9009-1/1
TUN9009-2/24c01
================================================================================
PATH Abis BAR_1017_2
================================================================================
***** MAIN ROUTE *******
TUN9001-2/17c01
TUN9001-1/2
TUN9043-15/5
TUN9043-3/17c1
1. Comment je peux enlever la première et la dernière ligne (les lignes en gras) à l'aide des expression régulières ou autre chose si c'est possible.
2. Comment je peux enlever les espaces a la fin de chaque ligne,j'ai utiliser cette expression régulière mais le problème qu'elle m'enlève même les sauts de ligne :
if (preg_match("#[[:space:]]*$#",$donnee[$i])){$donnee[$i]=preg_replace("#[[:space:]]*$#","",$donnee[$i]);}
3. Comment je peux enlever les sauts de lignes vides
Merci d'avance pour l'aide