Php fseek et fputs
Fermé
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
-
19 juin 2009 à 09:08
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 - 19 juin 2009 à 15:07
layeures Messages postés 286 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 22 juin 2018 - 19 juin 2009 à 15:07
12 réponses
freto
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
161
19 juin 2009 à 09:17
19 juin 2009 à 09:17
Bonjour.
Quand tu dis ce code ne marche pas, que se passe t il vraiment? Une erreur? Le fichier s'affiche mais sans le texte ajouté?
Sinon, au lieu d'utiliser fputs (qui est un alias de fwrite), essaie fwrite (même variables pour les paramètres).
Pour l'écriture de la chaine, tu sais qu'il va s'arreter avant la fin de la chaine (du fait que tu lui dit: ecrit "cette portion de texte.", mais tu lui indique une taille de 10, donc il ne va écrire que "cette port"
Quand tu dis ce code ne marche pas, que se passe t il vraiment? Une erreur? Le fichier s'affiche mais sans le texte ajouté?
Sinon, au lieu d'utiliser fputs (qui est un alias de fwrite), essaie fwrite (même variables pour les paramètres).
Pour l'écriture de la chaine, tu sais qu'il va s'arreter avant la fin de la chaine (du fait que tu lui dit: ecrit "cette portion de texte.", mais tu lui indique une taille de 10, donc il ne va écrire que "cette port"
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 10:43
19 juin 2009 à 10:43
voila je vien de modifier le code est probleme
ca m'affiche a l'ecran : fp, 5); //replace le pointeur
<?
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"\n");
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fgets($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
ca m'affiche a l'ecran : fp, 5); //replace le pointeur
<?
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"\n");
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fgets($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
freto
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
161
19 juin 2009 à 10:52
19 juin 2009 à 10:52
En gros, sa t'affiche une partie de ton code.
J'ai djà eu ce problème mais arghhhh!!!! Je ne sais plus d'où sa venait.
Sa va peut être me revenir. En attendant, précise un peu si ton code est appelé depuis un autre fichier via un include ou un require, et copie / colle tout le code qu'il y a autour de cette petite partie que tu nous a montré (juste le fichier, pas toute l'appli).
Pour ce faire, n'oublie pas d'encadrer tout le code quand tu le mettra ici par une balise < code > < / code> (le petit bouton au dessus de l'éditeur à coté de S )
Plus d'infos ici pour le copier coller de code
J'ai djà eu ce problème mais arghhhh!!!! Je ne sais plus d'où sa venait.
Sa va peut être me revenir. En attendant, précise un peu si ton code est appelé depuis un autre fichier via un include ou un require, et copie / colle tout le code qu'il y a autour de cette petite partie que tu nous a montré (juste le fichier, pas toute l'appli).
Pour ce faire, n'oublie pas d'encadrer tout le code quand tu le mettra ici par une balise < code > < / code> (le petit bouton au dessus de l'éditeur à coté de S )
Plus d'infos ici pour le copier coller de code
nEm3sis
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
113
19 juin 2009 à 11:18
19 juin 2009 à 11:18
essaye ça ça devrait mieux marcher
( ça correspond peut être pas car j'ai pas très bien compris ce que tu voulais faire)
ps 2 questions :
1) à quoi te sert le 100 dans le fwrite ?
2) le fseek du début il sert a quoi ?_?
( ça correspond peut être pas car j'ai pas très bien compris ce que tu voulais faire)
<?php $fp=fopen("texte.txt","a+"); fwrite($fp, "\n"); fwrite($fp, "cette portion de texte."); fseek( $fp, 0 ); while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire echo $fichier_texte.'<br/>'; // affiche les donne fclose($fp); ?>
ps 2 questions :
1) à quoi te sert le 100 dans le fwrite ?
2) le fseek du début il sert a quoi ?_?
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 11:19
19 juin 2009 à 11:19
<?
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"\n");
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fgets($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
texte.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
voila cest fait
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"\n");
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fgets($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
texte.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
voila cest fait
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nEm3sis
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
113
19 juin 2009 à 11:34
19 juin 2009 à 11:34
" texte.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
voila cest fait "
?_? ce qui veux dire ?
tu as trouvé ou il te manque encore quelque chose ?
si c'est bon oublies pas le tag résolu =)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
voila cest fait "
?_? ce qui veux dire ?
tu as trouvé ou il te manque encore quelque chose ?
si c'est bon oublies pas le tag résolu =)
freto
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
161
19 juin 2009 à 11:38
19 juin 2009 à 11:38
Nan , en fait son texte.txt contient:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Ya un soucis, tu cherche à lire 4060 caractères dans un fichier qui ne les contient pas. Donc a bugg!!
Essaie de réduire la taille dans fgets.
Et aussi, essaie avec fread, on ne sait jamais.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Ya un soucis, tu cherche à lire 4060 caractères dans un fichier qui ne les contient pas. Donc a bugg!!
Essaie de réduire la taille dans fgets.
Et aussi, essaie avec fread, on ne sait jamais.
nEm3sis
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
113
>
freto
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
19 juin 2009 à 11:42
19 juin 2009 à 11:42
oh merci j'avais pas compris ça ^^
bizarre que son texte contienne aaaaaaaaaaaaaaaa alors qu'il écrit autre chose dedans
pour les 4060 c'est pas un problème puisque fgets va lire soit jusqu'à la fin de la ligne soit 4060 caractère
donc ici il s'arrêtera a la fin de la ligne
pour afficher ligne par ligne fgets est mieux
mais pour afficher le fichier en entier c'est vrai que fread sera plus approprié je trouve =)
bizarre que son texte contienne aaaaaaaaaaaaaaaa alors qu'il écrit autre chose dedans
pour les 4060 c'est pas un problème puisque fgets va lire soit jusqu'à la fin de la ligne soit 4060 caractère
donc ici il s'arrêtera a la fin de la ligne
pour afficher ligne par ligne fgets est mieux
mais pour afficher le fichier en entier c'est vrai que fread sera plus approprié je trouve =)
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 12:58
19 juin 2009 à 12:58
j ai essaye fread() est ca ne marche pas
je n arrive toujours pas a ecrire aux milleu du texte
<?
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
resultat ca m affiche a l ecran ca :
e.txt","a+"); fseek($fp, 5); //replace le pointeur fwrite($fp,"cette portion de texte.", 100); $fichier_texte=fread($fp,4060); //lit les donnee echo"$fichier_texte"; // affiche les donne fclose($fp); ?> âÞ x…x…
je n arrive toujours pas a ecrire aux milleu du texte
<?
$fp=fopen("texte.txt","a+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
resultat ca m affiche a l ecran ca :
e.txt","a+"); fseek($fp, 5); //replace le pointeur fwrite($fp,"cette portion de texte.", 100); $fichier_texte=fread($fp,4060); //lit les donnee echo"$fichier_texte"; // affiche les donne fclose($fp); ?> âÞ x…x…
nEm3sis
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
113
19 juin 2009 à 13:07
19 juin 2009 à 13:07
1) tu as lu ce que j'ai ecris ici ?
2) il faut ouvrir en mode r+ et non a+ si tu veux écrire ailleurs que à la fin
2) il faut ouvrir en mode r+ et non a+ si tu veux écrire ailleurs que à la fin
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 13:17
19 juin 2009 à 13:17
reponse a ta question
le fseek il me sair a placer le pointeur aux millieu du texte pour inserer le nouveau texte
$fp=fopen("texte.txt","a+");
fwrite($fp, "\n");
fwrite($fp, "cette portion de texte.");
fseek( $fp, 0 );
while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire
echo $fichier_texte.'<br/>'; // affiche les donne
fclose($fp);
je vien de assayer ce code est ca ne marche pas l'ecran m affiche
ssssscette portion de texte.e.txt","r+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
le fseek il me sair a placer le pointeur aux millieu du texte pour inserer le nouveau texte
$fp=fopen("texte.txt","a+");
fwrite($fp, "\n");
fwrite($fp, "cette portion de texte.");
fseek( $fp, 0 );
while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire
echo $fichier_texte.'<br/>'; // affiche les donne
fclose($fp);
je vien de assayer ce code est ca ne marche pas l'ecran m affiche
ssssscette portion de texte.e.txt","r+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
?>
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 13:22
19 juin 2009 à 13:22
ce code aussi ne marche pas
<?
/*
$fp=fopen("texte.txt","r+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
*/
$fp=fopen("texte.txt","r+");
fwrite($fp, "cette portion de texte.");
fseek( $fp, 0 );
while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire
echo $fichier_texte.'<br/>'; // affiche les donne
fclose($fp);
?>
<?
/*
$fp=fopen("texte.txt","r+");
fseek($fp, 5); //replace le pointeur
fwrite($fp,"cette portion de texte.", 100);
$fichier_texte=fread($fp,4060); //lit les donnee
echo"$fichier_texte"; // affiche les donne
fclose($fp);
*/
$fp=fopen("texte.txt","r+");
fwrite($fp, "cette portion de texte.");
fseek( $fp, 0 );
while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire
echo $fichier_texte.'<br/>'; // affiche les donne
fclose($fp);
?>
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 13:35
19 juin 2009 à 13:35
j ai tester ton code est ca ne marche pas
nEm3sis
Messages postés
710
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
9 avril 2012
113
19 juin 2009 à 14:27
19 juin 2009 à 14:27
quand je met ce que tu as mis :
ça m'affiche ça
quand je met comme j'avais mis avant
<? /* $fp=fopen("texte.txt","r+"); fseek($fp, 5); //replace le pointeur fwrite($fp,"cette portion de texte.", 100); $fichier_texte=fread($fp,4060); //lit les donnee echo"$fichier_texte"; // affiche les donne fclose($fp); */ $fp=fopen("texte.txt","r+"); fwrite($fp, "cette portion de texte."); fseek( $fp, 0 ); while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire echo $fichier_texte.'<br/>'; // affiche les donne fclose($fp); ?>
ça m'affiche ça
'; // affiche les donne fclose($fp); ?>
quand je met comme j'avais mis avant
<?php /* $fp=fopen("texte.txt","r+"); fseek($fp, 5); //replace le pointeur fwrite($fp,"cette portion de texte.", 100); $fichier_texte=fread($fp,4060); //lit les donnee echo"$fichier_texte"; // affiche les donne fclose($fp); */ $fp=fopen("texte.txt","r+"); fwrite($fp, "cette portion de texte."); fseek( $fp, 0 ); while( $fichier_texte = fgets($fp, 4060) ) //lit les données tant qu'il y a qqch a lire echo $fichier_texte.'<br/>'; // affiche les donne fclose($fp); ?>ça m'affiche ça
cette portion de texte.
layeures
Messages postés
286
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
22 juin 2018
3
19 juin 2009 à 15:07
19 juin 2009 à 15:07
moi ca m affiche ceci
cette portion de texte.fp, 5, 10); //replace le pointeur
zzzzzzzzzzzzzzzzz
cette portion de texte.fp, 5, 10); //replace le pointeur
zzzzzzzzzzzzzzzzz