medmidou

Inscris le 29/09/2007 à 10:12
  • Nombre de sujets
    1
  • Nombre de messages
    3
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
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 :
<?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




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

Ses derniers messages sur les forums

forum
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 :
<?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




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

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours