Rechercher : dans
Par :

Php fseek et fputs

Dernière réponse le 19 jun 2009 à 15:07:56 layeures, le 19 jun 2009 à 09:08:24 
 Signaler ce message aux modérateurs

Bonjour,

le code qui ci dessour ne marche pas comment resoudre le probleme

<?


$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

MERCI D'AVANCE DE VOTRE AIDE

Configuration: Windows XP Internet Explorer 7.0

Meilleures réponses pour « php fseek et fputs » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

freto, le 19 jun 2009 à 09:17:10

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" What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

2

layeures, le 19 jun 2009 à 10:43:53

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);

?>

Répondre à layeures

3

freto, le 19 jun 2009 à 10:52:46

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 What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

4

nEm3sis, le 19 jun 2009 à 11:18:15

Essaye ça ça devrait mieux marcher
( ç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 ?_?

Répondre à nEm3sis

5

layeures, le 19 jun 2009 à 11:19:06

<?


$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

Répondre à layeures

6

nEm3sis, le 19 jun 2009 à 11:34:04

" 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 =)

Répondre à nEm3sis

7

freto, le 19 jun 2009 à 11:38:20
  • +1

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. What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

8

nEm3sis, le 19 jun 2009 à 11:42:29

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 =)

Répondre à nEm3sis

9

layeures, le 19 jun 2009 à 12:58:35

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…

Répondre à layeures

10

nEm3sis, le 19 jun 2009 à 13:07:42

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

Répondre à nEm3sis

11

layeures, le 19 jun 2009 à 13:17:45

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);

?>

Répondre à layeures

12

layeures, le 19 jun 2009 à 13:22:48

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);

?>

Répondre à layeures

13

layeures, le 19 jun 2009 à 13:35:22

J ai tester ton code est ca ne marche pas

Répondre à layeures

14

nEm3sis, le 19 jun 2009 à 14:27:09

Quand je met ce que tu as mis :

<?
/*

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

Répondre à nEm3sis

15

 layeures, le 19 jun 2009 à 15:07:56

Moi ca m affiche ceci
cette portion de texte.fp, 5, 10); //replace le pointeur
zzzzzzzzzzzzzzzzz

Répondre à layeures