2010-10-20 5 views
0

Avoir des problèmes ici.Écrire _rendered_ PHP au fichier HTML

J'ai besoin d'écrire la sortie d'un script PHP sur une page HTML pour ensuite être traité par DOMPDF afin que je puisse faire un joli petit PDF pour que quelques amis puissent l'utiliser. Lorsque j'utilise file_get_contents pour obtenir le contenu d'un script PHP "donneur", il le fait littéralement. Il saisit le PHP non évalué et le tient pour moi de faire ce que je souhaite.

J'ai besoin du script PHP pour fonctionner, puis prendre la sortie et file_put_contents quelque part.

Merci, Rob

Répondre

5

Eh bien, vous pouvez idéalement configurer le script PHP de sorte qu'au lieu d'écrire son contenu, il construit une chaîne géante et le renvoie. De cette façon, vous pouvez simplement appeler une fonction et récupérer une chaîne avec les informations dont vous avez besoin.

Si le script cible est hors de votre contrôle, vous pourriez travailler autour d'elle avec quelque chose comme:

ob_start(); 
include('script.php'); 
$contents = ob_get_contents(); 
ob_end_clean(); 
+0

Élégant. Simple. Quelque chose d'autre que je n'avais aucune idée. Merci, VOTEY! –

2

Appelez-le par http pour le faire fonctionner.

file_get_contents("http://localhost/my/script/file.php"); 

alternativement, l'exécuter à partir de la ligne de commande:

php -f /path/to/my/script/file.php 
0

Vous pouvez le faire en quelques façons différentes:

1) Fetch le script par c'est l'URL (via le navigateur web) au lieu du chemin du fichier.

2) l'utilisation eval

3) Utiliser output buffering et inclure le script dans le courant. Exemple:

ob_start(); 
include('script.php'); 
$result = ob_get_clean(); 

4) Lancez-le de commande en utilisant shell_exec('php -f script.php');

1

Deux solutions rapides. La première consiste à configurer le script PHP à exécuter à partir d'une URL, puis l'utilisateur file_get_contents ou les fonctions curl pour télécharger la page. Cela vous donnera une chaîne avec le contenu correct.

$string = file_get_contents('http://example.com/myscript.php'); 

La seconde consiste à utiliser include et mise en mémoire tampon de sortie. La mise en mémoire tampon de sortie prend toutes les déclarations echo ou print et stocke leur contenu en mémoire plutôt que de les sortir sur le navigateur/l'écran.

ob_start(); //start output buffering 
include("myscript.php"); //script will run in the current context, but output will be stored in memory 
$string = ob_get_clean(); //stored output will be fetched into $string, and buffering ended