Page 1 sur 2
Génerer un fichier statique à partir d'un script
Posté : 26 juil. 2006, 16:26
par ventouse
Bonjour,
je suis pas encore une lumière avec PHP mais j'arrive à me débrouiller. Je vais essayer d'exposer mon problème :
- j'ai un script agenda.php qui liste des évènements en allant piocher ce qu'il faut dans une petite base MySQL. Jusque là tout va bien.
- je voudrais créer un autre script qui va aller copier le résultat de agenda.php (du HTML donc, plus rien de dynamique) pour l'écrire dans un fichier .html
Est-ce que quelqu'un peut me dire comment je peux faire ça ? Je cherche depuis quelques heures là et je bloque. Merci !
Posté : 26 juil. 2006, 16:47
par garf
Il faut utiliser les fonctions :
fopen()
fwrite()
fclose()
Posté : 26 juil. 2006, 16:50
par aelurus
Salut utilise
fopen()
fwrite()
fclose()
ou fait une recherche sur manipulation de fichier avec php par exemple.
Arg désolé je peux éditer mais pas supprimer mon message ou je suis bigleux ^^
Posté : 26 juil. 2006, 16:52
par ventouse
Merci de vos réponses. Cela signifie-t-il que si j'ouvre mon fichier PHP avec fopen, que j'écris avec fwrite un .html, le contenu de ce .html sera le code interprété plutôt que le code PHP source ?
Merci.
Posté : 26 juil. 2006, 16:53
par ouckileou
Question : pourquoi veux-tu passer par un fichier intermédiaire ?
Puisque agenda.php va chercher les infos et générer du HTML, à quoi va servir le nouveau fichier ?
Posté : 26 juil. 2006, 16:54
par ouckileou
Merci de vos réponses. Cela signifie-t-il que si j'ouvre mon fichier PHP avec fopen, que j'écris avec fwrite un .html, le contenu de ce .html sera le code interprété plutôt que le code PHP source ?
Merci.
Non justement, là tu vas récupérer le code source.
Posté : 26 juil. 2006, 16:54
par ventouse
Dans le contexte du site sur lequel je travaille, malheureusement je n'ai pas le choix. Il faut que toutes les pages soient du html car on utilise Aurweb...
Si j'avais le choix je m'en serais débarassé vite fait pour ne gérer que du php comme tu le proposes !
Posté : 26 juil. 2006, 16:55
par ventouse
Ah et bien je veux surtout pas récupérer le code source, mais le code interprété ! Je pensais qu'il existait une méthode ou mm une fonction simple pour gérer ce genre de chose.
Posté : 26 juil. 2006, 17:06
par garf
dans ton script agenda :
// ouverture du fichier à créer
$fichier=fopen("fichier.html","w");
// écriture des infos, tu peux appeler autant de fois que tu veux cette fonctions, dans des boucles etc...
fwrite($fichier,"plein de truc");
// On ferme le fichier, le fichier HTML existe
fclose($fichier);
Voila, c'est tout

Posté : 26 juil. 2006, 17:12
par ventouse
Oui ça je pense que je sais faire, le truc que je me demande c'est comment remplacer "plein de truc" par le résultat interprété d'un script php !
Je suis pas clair ou bien ?

Posté : 26 juil. 2006, 17:19
par ouckileou
Il faudrait effectivement être plus clair maintenant sur des détails :
tu as ton fichier agenda.php, qui récupère des infos en base et les affiche en HTML, avec des echos et tout. C'est ça ?
Ce qu'il te propose, c'est de remplacer les echo par des fput() pour stocker les sorties dans un fichier.
Est-ce que tu as besoin à la fois d'avoir une page dynamique qu'on peut appeller par HTTP ET du résultat de cette page stockée dans un fichier à part ?
=> NON : tu peux prendre la méthode qu'il t'a donnée
=> OUI : tu peux ouvrir un fichier via fopen() en passant l'url et tu devrais ainsi récupérer le résultat
Donc précise ce que tu veux faire et pourquoi, perso je ne sais pas ce que c'est que Aurweb
Posté : 26 juil. 2006, 17:33
par ventouse
Oui j'ai besoin de la page dynamique visible ET du résultat de cette page stockée dans un fichier à part.
Mais je galère à expliquer alors que ça me paraît assez simple... En gros pour résumer, dans un navigateur mettons que je visualise la page agenda.php. Elle est toute clean, toutes les informations que je veux y sont etc. Ce que je voudrais réussir à faire par un script, c'est l'équivalent de :
- copier / coller la source générée par agenda.php dans un fichier html
- fourrer ce mm fichier sur mon serveur web pour post-processing
Aurweb est un moteur de recherche assez performant mais un peu à l'ancienne.
http://www.auracom.fr/
Posté : 26 juil. 2006, 17:41
par ouckileou
Si si maintenant c'est très clair, il y avait juste ce petit point à éclaircir
Tu peux faire :
// récupération du contenu généré par ta page
$sourceHTML = file_get_contents("http://www.example.com/agenda.php");
// écriture dans le fichier HTML à stocker
file_put_contents("agenda.html", $sourceHTML);
A tester, il y a peut-être d'autres méthodes.
Posté : 26 juil. 2006, 17:59
par ventouse
Merci de ta réponse ouckileou
J'ai donc essayé de faire ça ici même :
http://www.blumaise.org/test/
test.php contient seulement :
<?php
phpinfo();
?>
process.php :
<?php
// récupération du contenu généré par ta page
$sourceHTML = file_get_contents("http://www.blumaise.org/test/test.php");
// écriture dans le fichier HTML à stocker
file_put_contents("test.html", $sourceHTML);
?>
Mais voila le résultat que j'ai quand je clique sur process.php :
Fatal error: Call to undefined function: file_put_contents() in /home/blumais/public_html/test/process.php on line 6
Posté : 26 juil. 2006, 18:03
par ventouse
En fait c'est pas grave parceque $sourceHTML contient bien le code INTERPRETE de phpinfo(); donc c'est tout bon !
je vais adapter ça à ma page un peu plus complexe demain en arrivant au taf. D'ici là je considère ce post comme résolu. Merci infiniment !