2010-09-16 21 views
0

並不完全符合我有一個功能,如:PHP獲取內容和包括我需要

function get_div(){ 

    $fileLocation = 'form.php'; 
    $returnString = '<div id="myDiv">' . get_php_file($fileLocation) . '</div>'; 

    echo $returnString; 

} 

function get_php_file($file){ 
    return file_get_contents($file); 
} 

問題是我有,好像它是腳本的一部分,我想執行的文件PHP。

如果我使用include $file代替file_get_contents()我結束了所包含的文件,但我$returnString的其餘部分被拍......

思考(而不是輸出<?php my_function() ?>貫穿我的網頁)?

+0

這是嚴格的PHP還是有JavaScript? – malonso 2010-09-16 01:12:18

+0

@malonso只是PHP在這一點上。 – 2010-09-16 01:14:25

+0

好的,對不起。有些語法讓我有點困惑。 – malonso 2010-09-16 01:16:59

回答

1

你想輸出緩衝。

ob_start(); 
include($file); 
$returnString = ob_get_clean(); 
0

我仍然正是你正在尋找做有點困惑,但不能你只是包括PHP文件和W /在感覺有一些字符串($ contentsToReturn)您保留追加至? get_php_file將成爲:

function get_php_file($file){ 
    require_once($file) 
    return $contentsToReturn; 
} 

或者我錯過了什麼?

+0

我期待存儲我的字符串,而不是立即輸出。使用require_once()會在那裏輸出文件。 – 2010-09-16 01:27:05

+0

除非在$ file中有一堆echo/print語句,否則它不會輸出任何內容。如果$ file只包含一堆echo/print語句,只需搜索/替換那些,以代替echo「stuff to echo」,最終得到$ returnString。=「stuff to echo」;. – malonso 2010-09-16 11:29:22

0

如果您需要解釋php代碼,您可以使用include或require。 Include會警告如果找不到文件,require會停止執行。下面是PHP.net說一下:

當包括文件,分析跌出PHP模式並進入HTML模式在目標文件的開頭,並在結尾處恢復。因此,目標文件中應該作爲PHP代碼執行的任何代碼都必須包含在有效的PHP開始和結束標記中。

哎呀,抱歉,沒有看到您對需要緩衝字符串的響應。然後按照建議的ob_start是正確的方法,然後在需要時ob_get_contents。