Php lecture et ecriture d'un fichier texte

Fermé
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 - 18 juin 2009 à 20:30
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 juin 2009 à 16:58
Bonjour,

le probleme que j ai est que j ai cree un fichier pour modfier un fichier teste au millieu du texte mes probleme ca ne marche pas voici le code :

<?


$fp=fopen("texte.txt","r+");
$fpa=fopen("texte.txt","a+");
fseek($fp, 2); //replace le pointeur
fputs($fpa,"\n");
fputs($fpa,"cette portion de texte.");
$fichier_texte=fgets($fpa,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne

fclose($fpa);
fclose($fp);



echo"$fichier_texte"; // affiche les donne

?>

MERCI D'AVANCE DE VOTRE AIDE
A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 juin 2009 à 21:05
pourquoi ouvres tu deux canaux par fopen vers le même fichier texte.txt ?

surtout si tu utilises le premier canal pour déplacer le pointeur et que tu utilises le deuxième pour ecrire dans le fichier

fias simplement une seule fois fopen et utilises toujours ce canal
0
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 3
18 juin 2009 à 21:19
<?


$fp=fopen("texte.txt","a+");

fseek($fp, 5); //replace le pointeur
fputs($fp,"\n");
fputs($fp,"cette portion de texte.", 10);
$fichier_texte=fgets($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne

fclose($fp);

?>
voila je viens de tester tous les code posssible est je ne trouve pas la solution comment inserer un texte au millieu d'un texte
ce code ne marche pas

que faire
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 juin 2009 à 16:58
une autre solution radicalement différente mais qui fonctionne chez moi:

<?php
$fichier='texte.txt'; //attention tu dois mettre le chemin relatif par rapport au script php
$array_fichier=file($fichier); //on obtient un array du contenu du fichier ligne par ligne
//avec la fonction file pas besoin de fopen et fclose
$num_ligne=4; //numéro de la ligne à insérer à partir de 0 !!!
$contenu_a_rajouter=array(); //cela doit être un array !!
$contenu_a_rajouter[0]="cette portion de texte\n"; //chaque ligne terminée par \n

if($num_ligne < sizeof($array_fichier)){ //on verifie que la ligne a inserer n'est pas en dehors des limites di fichier
	//on scinde l'array en deux
	$array_avant=array_slice($array_fichier,0,$num_ligne);
	$array_apres=array_slice($array_fichier,$num_ligne);
	
	//on rajoute les differents array
	$array_final=array_merge($array_avant,$contenu_a_rajouter,$array_apres);
	//on réecrit dans le fichier
	
	if(file_put_contents($fichier,$array_final)){echo "Ecriture reussie !<br />";}
	
}else{	
	echo "numero en dehors taille fichier";
}

//relecture
$array_lu=file($fichier);
echo '<pre>';
print_r($array_lu);
echo '</pre>';

?>
0