Php lecture et ecriture d'un fichier texte

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
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. 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
    1. <?

      $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
      1. 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

        Discussions similaires

        question pix mot caché

        7 réponses