'fputs()'

Miloflyer Messages postés 12 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 8 avril 2004 - 5 avril 2004 à 23:56
affiliatel Messages postés 11 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 22 novembre 2004 - 22 nov. 2004 à 23:17
Bonsoir tout le monde.
Je débute en php et essaye de bidouiller quelques scripts...
Mais quelque chose me pose problème dans la réalisation de mon "projet"... Cela paraitra bien simple pour bon nombre d'entre vous, et c bien pour cela d'ailleur que je m'adresse a vous... :big) Je vous explique en 2-3 mots mon idée et les problèmes qui m'empêche de poursuivre mon dévellopement si toute fois on peut parler de réel dévellopement... :shy)

Je voudrais créé un script qui automatiserais la conception de simple page web. Pour ce faire, j'aimerais créé un fichier d'installation (qui ne serait autre qu'un formulaire dans lequel on spécifierai par exemple les couleurs de fond et de texte) que l'on pourrais uploader sur un hebergeur quelconque et qui créerait après avoir remplis ce formulaire des pages html préformatées.

Le problème est qu'avec 'fputs()' je ne peux écrire tout un fichier html ou php, mais seulement quelques lignes... Hors je voudrais créé un nouveau fichier et ensuite y écrire toute une nouvelle page en php par exemple, qui contiendrait les variables récupérée par le formulaire.

J'espere avoir été suffisament clair... Si quelqu'un peut me venir en aide, ce serait avec grande joie... :big) Merci d'avance.

9 réponses

yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
6 avril 2004 à 02:55
1 - creer un fichier temporaire..

$temp = tmpfile();

2 - remplir ton fichier

fwrite($temp, "tout ce que tu veux");

3 - sauver le fichier ailleurs ( genre l'enregistrer )

$copy($temp, $destination);

4 - supprimer le fichier temporaire

fclose($temp);

Ca drevrait marcher.

++

Le meilleur langage de programmation est un étudiant diplomé.. 8-)
0
Miloflyer Messages postés 12 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
6 avril 2004 à 03:24
Merci d'avoir répondu si vite. :)

C bien ce que je voulais faire au départ, mais le problème est autre...

2 - remplir ton fichier 

fwrite($temp, "tout ce que tu veux");


Le "tout ce que tu veux", peut-il etre remplacé par une portion de code php ou html ? Si oui de quelle manière ? Car j'obtient des erreurs a tous les coups...

fwrite($temp, "<?
                         codephp
                                       ");


Merci... :)
0
Miloflyer Messages postés 12 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
6 avril 2004 à 03:33
petite rectification (juste pour rire :) ):

fwrite($temp, "<?
                         codephp
                                      ?>");
0
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
6 avril 2004 à 03:38
voila kk chose qui marche

//creer un fichier temporaire ou tu peux recuperer le nom, y ecrire, le copier et supprimer le fichier temporaire..

voila.. j'ai testé chez moi ;)

<?php

$tmpfname = tempnam ("/tmp", "code.txt");

$handle = fopen($tmpfname, "w");
$code = "<?php echo "Bonjour"; ?>";

fwrite($handle, $code);

copy($tmpfname,"code.txt");

fclose($handle);

unlink($tmpfname);

?>


Le meilleur langage de programmation est un étudiant diplomé.. 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Miloflyer Messages postés 12 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
6 avril 2004 à 12:27
Le principe est pafait, merci... Mais un problème persiste: j'aimerai écrire dans ce fichier un code un peu plus complexe, comme sur mon exemple... Mais j'obtient a chaques fois des erreur... Je suppose que c'est par ce qu'il faut que tout soit sur une seule ligne... Mais ce ne serait pas trés pratique... N'y a t'il pas une autre solution ? Je pensait faire un fichier qui contiendrait le code à recopier dans le nouveau fichier qui serait créé suite au formulaire (formulaire qui modifierai certaines variables du code qui aura été recopié). Je ne sais pas si j'arrive a me faire comprendre... :blush)

<code>
<?php

$tmpfname = tempnam ("/tmp", "code.txt");

$handle = fopen($tmpfname, "w");
$code = "<?

$i=1;
$urlphoto = \"picts\";
$nomRepertoire = \"picts\";
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($i > 5) break;
{
if ($Fichier != \".\" && $Fichier != \"..\")
{
if ( $i == 1 ) { echo '----
'; }

$nomFichier = $Fichier;
$h_vign = \"200\";
$taille = getimagesize($nomRepertoire.\"/\".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);

echo \"";
echo "";
echo "";

fwrite($handle, $code);

copy($tmpfname,"code.txt");

fclose($handle);

unlink($tmpfname);

?>
0
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
6 avril 2004 à 12:44
ecris le code dans un fichier texte par exemple..
fais une lecture ligne par ligne et pour chaque ligne lue
ajoutes des antislashs avec addslashes()
puis tu inseres la ligne dans le fichier. utilises donc une boucle pour recureperer toutes les lignes du fichier.

++

Le meilleur langage de programmation est un étudiant diplomé.. 8-)
0
Miloflyer Messages postés 12 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 8 avril 2004
6 avril 2004 à 13:57
Merci beaucoup pour ton aide, je vais essayer tout sa maintenant... :)
0
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
6 avril 2004 à 14:56
du courage pour la suite :)

Le meilleur langage de programmation est un étudiant diplomé.. 8-)
0
affiliatel Messages postés 11 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 22 novembre 2004
22 nov. 2004 à 23:17
y a carrement plus simple, les mecs:
<?
.....

$valeur_a_mettre = "
<?
bla bla \n
\$var1 = "val1 "; // je fais un comment si je veux .....

je reproduits à l'infini

?>";

$fichier = fopen("fichier.txt", "w+");
fputs($fichier, $valeur_a_mettre);
fclose($fichier);

?>

ca marche sur une dizaine de mes sites :big)

visitez http://rubrique.net/
0
Rejoignez-nous