Ecrire dans un fichier .txt a la ligne X, Php
lDarkRaven
Messages postés
72
Date d'inscription
Statut
Membre
Dernière intervention
-
jubasse Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
jubasse Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche actuellement à écrire dans un fichier plusieurs lignes à différente emplacements.
J'arrive actuellement à ciblé la ligne et à écrire la première et la deuxième phrase que je veut au bonne endroit. Exemple :
Ma question est comment faire passer la phrase 3, a la ligne suivant comme ceci (sans effacer le "Test Ecriture") :
Petite précision qui peut avoir son importance, des données sont déjà écrite dans le fichier, je cherche à les remplacer.
Données déjà écrite :
Pour ce qui est de mon code :
J'ai essayer, je pense toutes les combinaisons pour les $lignes[], déjà, pour faire passer la phrase 2 a la ligne j'ai du choisir la ligne 4 plutôt que la 3 sinon tous s'écrivait a la suite.
En espérant que vous puissiez m'aider.
Bonne journée à vous.
Je cherche actuellement à écrire dans un fichier plusieurs lignes à différente emplacements.
J'arrive actuellement à ciblé la ligne et à écrire la première et la deuxième phrase que je veut au bonne endroit. Exemple :
Test Ecriture
Je suis la première phrase, je suis donc en premier
Je suis la deuxième phrase Je suis la troisième phrase
Ma question est comment faire passer la phrase 3, a la ligne suivant comme ceci (sans effacer le "Test Ecriture") :
Test Ecriture
Je suis la première phrase, je suis donc en premier
Je suis la deuxième phrase
Je suis la troisième phrase
Petite précision qui peut avoir son importance, des données sont déjà écrite dans le fichier, je cherche à les remplacer.
Données déjà écrite :
Test Ecriture
Je suis la phrase a remplacer
Pour ce qui est de mon code :
$file ="//.....txt";
$fileopen=(fopen("$file",'r+'));
$chaine = '';
while(!feof($fileopen))
{
$chaine .= fgets($fileopen, 4096);
}
$lignes = explode("\n", $chaine);
$lignes[2] = "Je suis la première phrase, je suis donc en premier ";
$lignes[4] = "Je suis la deuxième phrase ";
$lignes[6] = "Je suis la troisième phrase ";
$chaine = '';
foreach($lignes as $ligne)
{
$chaine .= $ligne."\n";
}
fseek($fileopen, 0);
fputs($fileopen, $chaine);
fclose($fileopen);
J'ai essayer, je pense toutes les combinaisons pour les $lignes[], déjà, pour faire passer la phrase 2 a la ligne j'ai du choisir la ligne 4 plutôt que la 3 sinon tous s'écrivait a la suite.
En espérant que vous puissiez m'aider.
Bonne journée à vous.
A voir également:
- Ecrire dans un fichier .txt a la ligne X, Php
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Forcer la suppression d'un fichier - Guide
1 réponse
Salut !
à la place d'un explode tu peux essayer de faire un preg_match sur les 'J' majuscules avec une regex qui test la majuscule puis d'autre caractères au milieu tu entoure le tout avec une parenthèse pour capturer tes matchs.
tu peux regarder sur ce post https://openclassrooms.com/forum/sujet/regex-extraire-mot-commencant-par-une-majuscule
à la place d'un explode tu peux essayer de faire un preg_match sur les 'J' majuscules avec une regex qui test la majuscule puis d'autre caractères au milieu tu entoure le tout avec une parenthèse pour capturer tes matchs.
tu peux regarder sur ce post https://openclassrooms.com/forum/sujet/regex-extraire-mot-commencant-par-une-majuscule