2012-03-07 32 views
-1

可能重複:
Capture STDOUT from included file to variable保存一個包含PHP腳本的結果作爲一個變量

好吧,也許這不是措辭,以及它可能是...

這就是我想要做的:我想將執行的PHP文件的結果源代碼包含到另一個PHP文件中,以便它可以被操縱和重用。結果輸出需要包含幾個$ _GET變量的值,並且要包含的PHP文件的執行取決於它們的值。因此,我需要生成的源代碼(當您瀏覽器中的「查看源代碼」時看到的)源代碼:「index.php?page = 1 & id = 1 & etc = something」要包含到另一個PHP文件...任何想法?


有沒有一種辦法,包括PHP文件,然後將該文件的執行結果保存到PHP文件,包括它的變量,從而進一步使用?在此先感謝...

+0

您能提供一個您想要實現的例子嗎? – Phil 2012-03-07 06:12:43

+0

使用[var_export](http://php.net/manual/en/function.var-export.php) – k102 2012-03-07 06:13:14

+2

Downvoted作爲繁瑣的重複,結果從不先做搜索和不正確地描述問題,根據下面的評論是捕獲包含文件的輸出。 – danorton 2012-03-07 06:27:47

回答

6
ob_start(); 
include "your_script.php"; 
$content = ob_get_clean(); 

就是這樣。但是在調用腳本中不應該定義已經定義的常量或函數。爲了防止變量的變化,這段代碼可能在函數體內部,所以'your_script.php'中的變量將在函數的本地作用域中定義。另一種方式是執行一個http請求

$content = file_get_contents('http://your_server/script.php'); 

或者甚至(如果使用的是Apache和PHP爲模塊)

ob_start(); 
virtual("/webpath_from_server_root/your_script.php"); 
$content = ob_get_clean(); 

在這種情況下「your_script.php」不會與常量和函數干擾的主要劇本。

+0

工作出色,謝謝! – 2012-03-07 06:16:31

+0

+1000000(如果我可以)*不*使用括號括起括號' – Phil 2012-03-07 06:18:42

+0

實際上......雖然這對於名爲'index.php'的文件非常適用,如果我附加任何東西(比如'index .php?page = 1&id = 1,'),既不包括也不包含虛擬,也不包含file_get_contents已成功包含結果輸出...任何想法? – 2012-03-07 06:41:16

1
ob_start(); 
include_once("your script");  
$result = ob_get_contents(); 
ob_end_clean(); 

// now $result has anything that was output from the inclusion of "your script" 
0

看看輸出控制功能@PHP link

<?php 
    ob_start(); 
    include('yourscript.php'); 
    $cache= ob_get_contents(); 
    ob_end_clean(); 
?> 
相關問題