2009-08-17 50 views
4

可能重複:
Storing echoed strings in a variable in PHP將include的輸出保存爲字符串?

假設我有

<?php include "print-stuff.php"; ?>

打印stuff.php包含PHP/HTML模板,這意味着,當包括它,HTML打印。有什麼方法可以將該HTML捕獲爲一個字符串,以便我可以將其保存爲在其他地方使用?

將include語句移到別處不是一種選擇,因爲 print-stuff.php還執行周圍代碼依賴的邏輯(創建/修改變量)。我只是想移動文件的輸出,而保持原樣。

+0

重複的問題:http://stackoverflow.com/questions/1195588/storing-echoed-strings-in-a-variable- in-php/ – 2009-08-17 15:38:15

+0

我不確定問題是否重複,但兩個問題的答案是相同的。如果我認爲這是重複的,我的聲望不夠高,以至於不能關閉這個問題:( – Steve 2009-08-17 16:01:21

回答

-4
$fileStr = file_get_contents('/path/not/url/to/script.php'); 
+0

是的!這正是我想要的。 – Steve 2009-08-17 16:43:29

+3

-1這個答案是不是真的錯了?難道不是它只是加載源代碼?至少得到輸出,而不是源代碼,它應該是'/ url/not/path/to/script.php'。但即使如此,這個問題也表明有一些先決條件,包括require,不能用'url'解決方案處理。 – tobltobs 2015-04-30 17:35:00

22

可以Output Buffer它來確保HTML沒有顯示,轉而投入到一個變量。 (PHP仍舊運行,但HTML輸出將被包含在可變)

ob_start(); 
include "print-stuff.php"; 
$contents = ob_get_contents(); 
ob_end_clean(); 

....

0

你可以做,如果你在一個緩衝區,而不是標準輸出打印。

ob_start(); 
include 'print-stuff.php'; 
$printedHTML = ob_get_clean(); 
0

老實說,我這裏來了,去啊,哈,我知道這個問題的答案!然後,我低頭看了看,其他人在我做之前就看到了。

但是,對於它的赫克,我這樣做:

ob_start(); 
include 'something.php'; 
$output = ob_get_contents(); 
ob_end_clean(); 
+0

這個答案讓我看起來像https://meta.stackexchange.com/questions/1096/how-should-we-deal-with-duplicate-answers - 看起來像p4bl0的內部分鐘的回答很好,但是這真的讓我感到困惑。8年後足夠評論它:D – Julix 2017-05-22 02:48:22

相關問題