Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 04/10/2006, 12h09   #1
Invité régulier
 
Enseignant
Inscription : juin 2006
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2006
Messages : 10
Points : 7
Points : 7
Par défaut [SQL] enregistrer le résultat dune page php en html sur le server

Salut à tous,
Est-il possible d'enregistrer dans un fichier au format html le résultat d'une page php ?

Si oui, comment ?

Je souhaite que cela se fasse automatiquement via un clic sur un bouton qui ouvre la page que je veux enregistrer sur le server
lagag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 12h16   #2
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
C'est à dire ?
ce qui est interprété ?
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 12h20   #3
Invité régulier
 
Enseignant
Inscription : juin 2006
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2006
Messages : 10
Points : 7
Points : 7
Par défaut réponse

oui, ce qui est interprété.
Actuellement, je lance un print() à l'ouverture de la page mais je ne souhaite les imprimer que lorsque j'en ai besoin et ma base de données ou je puise les infos est vidée une fois par an.
Le but est de garder une sauvegarde de chacune des pages.
Je ne sais pas si j'ai été très clair ?
lagag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 12h30   #4
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,
tu peux faire ca avec ob_start() et ob_ get_ flush() ou encore mettre toute ta page dans une variable.
Ensuite tu sauvegardes avec fopen().
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 09h06   #5
Invité régulier
 
Enseignant
Inscription : juin 2006
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2006
Messages : 10
Points : 7
Points : 7
Par défaut demande ob_start et ob_get_flush

Merci pour la réponse (très rapide) mais je ne connais pas du tout
ces fonctions. Pourrais-tu me donner un exemple ?
Ou bien me montrer comment mettre le contenu de la page dans une variable
puis la copier dans un fichier ?
Question subsidiaire :
quelle instruction insérer pour mettre des sauts de pages de manière à ce
que à l'impression du fichier complet (càd comprenant plusieurs pages html)
les sauts de pages soient effectifs ?
lagag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 10h26   #6
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Salut,

Code :
1
2
3
4
5
6
7
8
$page = "<html><body><head><p>rett</p></head></body></html>";
 
$file = fopen("file.html","w");
fputs($file, $page);
fclose($file);
 
// ou PHP 5
//file_put_contents("file.html", $page);
Sinon avec les fonctions de bufférisation, meilleure solution à mon avis :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
ob_start(); // en haut de page
... contenu de la page
 
// A l'endroit où tu veux que s'arrête l'enregistrement de ta page, si possible après le </html> si tu veux une page valide
$page = ob_get_flush();
 
$file = fopen("file.html","w");
fputs($file, $page);
fclose($file);
 
// ou PHP 5
//file_put_contents("file.txt", $page);
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 10h27   #7
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Pour les sauts de page tu peux utiliser les CSS mais je crois que ca ne fonctionne pas sur tous les navigateurs :

page-break-before et page-break-after
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 12h51   #8
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Moi je pencherais plutot pour l'option numérot 1...

Code :
1
2
3
4
 
$fp = fopen('mon_fichier.html',"w");
fputs($fp, file_get_contents('http://www.monSite.ext/maPage.ext'));
fclose($fp);
ou

Code :
1
2
 
file_put_contents('mon_fichier.html', file_get_contents('http://www.monSite.ext/maPage.ext'));
Après tout dépend d'où se trouve la page... si c'est en local effectivement la bufferisation de sortie est une possibilitée mais je préfère la première solution qui peut être facilement mise en place pour un grand nombre de pages via un tableau et une boucle... .. .

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
$mesPages = array(
                       'http://www.monSite.ext/maPage1.ext',
                       'http://www.monSite.ext/maPage2.ext',
                       'http://www.monSite.ext/maPage3.ext',
                       ...
                       'http://www.monSite.ext/maPage10.ext',
                       'http://www.monSite.ext/maPage11.ext'
                     );
 
$nbPages = count($mesPages);
 
for($i=0;$i<$nbPages;++$i)
{
         $fp = fopen('repertoire_temporaire/'.basename($mesPages[$i]).'.html',"w");
         fputs($fp, file_get_contents($mesPages[$i]));
         fclose($fp);
 
}
@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 14h04   #9
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 797
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 797
Points : 1 688
Points : 1 688
Effectivement ca dépend du contexte, je partais du principe qu'il s'agissait d'une page d'affichage de résultat SQL avec des param passés en get ou post.
Djakisback 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 22h42.


 
 
 
 
Partenaires

Hébergement Web