Ecrire dans un fichier .txt a la ligne X, Php

Fermé
lDarkRaven Messages postés 72 Date d'inscription mercredi 29 mai 2013 Statut Membre Dernière intervention 3 février 2016 - Modifié par lDarkRaven le 12/10/2015 à 14:54
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 - 12 oct. 2015 à 21:27
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 :

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:

1 réponse

jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
12 oct. 2015 à 21:27
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
0