2011-01-25 91 views
1

你知道print_r如何接受可選的第二個參數,如果設置爲true將返回結果而不是打印它?包含在變量中

我希望include接受了第二個參數,它將以相同的方式工作。

它不這樣做有什麼可用的替代方案?如何將文件包含到變量中?

+0

**你想讓它返回什麼**? – delnan 2011-01-25 20:27:11

+0

@delnan,指定文件的解析內容。 – 2011-01-25 20:28:51

+0

該文件的文字內容?從文件中的代碼抽象語法樹?字節碼? – delnan 2011-01-25 20:33:37

回答

7

ob_start()ob_get_clean()會爲你做的:

ob_start()呼應的一切捕獲
ob_start(); 
include "file.php"; 
$result = ob_get_clean(); 

後,和ob_get_clean()用於檢索捕獲的數據。

你甚至可以做一個include2功能是這樣的:

function include2($file) { 
    ob_start(); 
    include $file; 
    return ob_get_clean(); 
} 

而且使用這樣的:

include2("file.php"); // return all printed values instead of really printing them 

正如@ircmaxell指出,這include2功能並不表現完全一樣include由於包含變化的範圍(從全局到函數的範圍)。所以如果你依賴全球範圍,這可能會破壞事情。