2012-10-23 54 views
3

我有一個文件B590.php,它有很多html代碼和一些php代碼(例如登錄用戶名,用戶的詳細信息)。php在獲取文件內容之前評估代碼

我嘗試使用$html = file_get_content("B590.php");

但隨後$html將有B90.php的內容爲純文本(含PHP代碼)。

是否有任何方法可以在評估後獲取文件內容? 似乎有很多相關的問題,如this onethis one,但似乎沒有任何明確的答案。

+1

應該'它是'file_get_contents('B590.php');',最後加上's'?可能是一個錯字,但仍然... –

回答

3
function get_include_contents($filename){ 
     if(is_file($filename)){ 
     ob_start(); 
     include $filename; 
     $contents = ob_get_contents(); 
     ob_end_clean(); 
     return $contents; 
     } 
     return false; 
    } 

    $html = get_include_contents("/playbooks/html_pdf/B580.php"); 

這個答案最初發布#2

+0

你有沒有參考」原創「的文章 - 我發現這非常有用,並希望分享愛: ) – kwah

+1

不記得......但我認爲這是這個http://stackoverflow.com/questions/6688343/php-mailer-and-html-includes-with-php-variables – antnewbee

5

您可以使用include()執行PHP文件和輸出緩衝,以捕捉其輸出:

ob_start(); 
include('B590.php'); 
$content = ob_get_clean(); 
1

如果使用includerequire文件的內容將表現爲雖然當前執行的文件包含的該代碼B590.php文件。如果你想什麼「結果」該文件(即輸出),你可以這樣做:

ob_start(); 
include('B590.php'); 
$html = ob_get_clean(); 

例子:

B590.php

<div><?php echo 'Foobar'; ?></div> 

current.php

$stuff = 'do stuff here'; 
echo $stuff; 
include('B590.php'); 

將輸出:

做的東西在這裏
<格> Foobar的</DIV >

然而,如果current.php看起來是這樣的:

$stuff = 'do stuff here'; 
echo $stuff; 
ob_start(); 
include('B590.php'); 
$html = ob_get_clean(); 
echo 'Some more'; 
echo $html; 

輸出將是:

在這裏做東西
一些更
<格> Foobar的</DIV >

0
$filename = 'B590.php'; 
$content = ''; 

if (php_check_syntax($filename)) { 
    ob_start(); 
    include($filename); 
    $content = ob_get_clean(); 
    ob_end_clean(); 
} 

echo $content; 
+1

*由於技術原因,此功能已棄用並從PHP中刪除。* – ThiefMaster

+0

從PHP(「5.0。5 \t該功能已從PHP中刪除。 「):http://php.net/manual/en/function.php-check-syntax.php – kwah

1

要評估結果存儲到一些變量,試試這個:

ob_start(); 
include("B590.php"); 
$html = ob_get_clean();