Php lecture et ecriture d'un fichier texte
layeures
Messages postés
286
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Php lecture et ecriture d'un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
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
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
<?
$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
$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
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>'; ?>