2009-10-07 5 views
2

J'ai le scénario suivant.Impossible de rendre la sortie à l'écran en utilisant PHP?

J'ai un site web PHP qui contient environ 3 pages web avec un contenu dynamique. Je veux rendre ceci au contenu statique à un autre dossier. Par exemple. contact.php -> contact.html

Mon code ressemble à ceci

ob_start(); 
$content = require_once 'contact.php'; 
ob_end_flush(); 
file_put_contents("contact.html", $content); 

D'une certaine façon cela ne fonctionne pas, - (

+1

Pourquoi ne pas avoir le navigateur simplement essayer de charger 'contact.php'? – pavium

Répondre

9

require_once() ne retourne pas le contenu d'un script émis par . Vous devez obtenir la sortie du script qui est stocké dans la mémoire tampon de sortie:

ob_start(); 
require_once('contact.php'); 
$content = ob_get_clean(); 

file_put_contents('contact.html', $content); 

ob_get_clean():Obtient le contenu du tampon en cours et supprime le tampon de sortie actuel.

Ob_get_clean() exécute essentiellement ob_get_contents() et ob_end_clean().

http://php.net/ob_get_clean

2
ob_start(); 
require_once('contact.php'); 
$content = ob_get_contents(); 
ob_end_clean(); 
file_put_contents("contact.html", $content); 
2

require_once ouvre le fichier et tente de l'analyser comme PHP. Il ne retournera pas sa sortie. Qu'est-ce que vous cherchez probablement est la suivante:

<?php 
ob_start(); 
require_once('file.php'); 
$content = ob_get_contents(); 
ob_end_flush(); 
// etc... 
?> 

De cette façon, le script les stocke les données dans le contenu $ et les décharges à la sortie standard. Si vous souhaitez uniquement que le contenu $ soit rempli, utilisez ob_end_clean() au lieu de ob_end_flush().

2

Commander ob_get_flush (http://www.php.net/manual/en/function.ob-get-flush.php)

essayer Fondamentalement faire

if(!is_file("contact.html")){ 
    ob_start(); 
    require_once 'contact.php'; 
    $content = ob_get_flush(); 
    file_put_contents("contact.html", $content); 
}else{ 
    echo file_gut_contents("contact.html"); 
} 

Cela devrait tamponner la sortie de contact.php et dump en cas de besoin.

Questions connexes