Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2007, 23h16   #1
Invité de passage
 
Inscription : avril 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 11
Points : 2
Points : 2
Par défaut copier un fichier et bien placer son curseur

Bonjour,
je suis en train de faire un programme de type doodle , et je veux générer une nouvelle url et donc un nouveau fichier pour chaque rendez vous crée.
Du coup, j'ai un fichier de départ ou j'ai tout mon code qui marche, je voudrais le copier dans un fichier qui a un nom fichier_n_rdv (donc je crée autant de fichiers que de rendez vous) et ajouter tout en haut le numero du rendez vous.

C'est peut etre pas très clair, pour résumer je veux
1-créer un nouveau fichier avec un nom different à chaque fois :
Code :
1
2
3
$i=5;// (récupéré avant en fait, là j'ai mis 5 comme ca pour l'exemple, mais dans les faits c'est une variable récupérée)
$nomfichier="doodle".$i.".txt";
touch($nomfichier);
2- copier un fichier de code, qui ne changera pas quelque soient les fichiers $nomfichier crées /
Code :
copy("doodle.php", $nomfichier);
3- je veux mettre mon curseur en haut du fichier et ajouter la variable

Code :
1
2
3
4
$fp=fopen($nomfichier,"a");  //on ouvre le fichier en mode ajout
fseek($fp, 0);
$texteajout="<? $nbrdv=".$i."?>";
fwrite($fp,$texteajout); // ajoute le numéro du rendez vous

Dans les faits j'ai 2 problèmes
Tout d'abord quoique je fasse mon fseek($fp, 0); ne déplace pas du tout mon curseur, il ne fait rien. j'ai essayé avec un rewind, puis en créant un fichier texte mais rien à faire...
Deuxième problème, quand j'écris $texteajout="<? $nbrdv=".$i."?>"; php me dit qu'il ne connait pas nbrdv meme si c'est entre guillemet... et je ne vois pas comment détourner cela.


Bon, merci beaucoup dans tous les cas,
bonne soirée
Jacques
jacques732 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 06h46   #2
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Salut,

d'après ce que dit la doc de fseek, si tu ouvres ton fichier en mode 'a', toutes les données seront ajoutées en fin de fichier sans se soucier de l'éventuelle position recherchée avec fseek. De plus, les résultats de fseek sont indéfinis pour ce mode d'ouverture.

Ce que tu pourrais faire est donc: lire le contenu de ton fichier source au lieu d'en faire une copie vers un nouveau fichier, puis réécrire tout à l'intérieur de ce nouveau fichier (pourquoi travailler avec des fichiers, au fait?)

Ensuite, pour ton soucis avec
Code :
1
2
 
$texteajout="<? $nbrdv=".$i."?>";
le fait est que $nbrdv étant dans une chaine entourée de guillemets, php chercher à interpréter cette variable. Pour éviter cela, la chaine doit être entourée de single quotes!

Code :
1
2
 
$texteajout='<? $nbrdv='.$i.'?>';
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 13h21   #3
Invité de passage
 
Inscription : avril 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 11
Points : 2
Points : 2
Merci pour la réponse.
J'essaye cela
jacques732 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h05.


 
 
 
 
Partenaires

Hébergement Web