2011-09-02 47 views
1

例如我有一個文件的template.php有:如何從一個php文件得到的結果轉換成字符串

<table> 
    <tr> 
     <td><?php echo $data['nombre'] ?></td> 
    </tr> 
    <?php foreach($data['values] as $value): ?> 
    <tr> 
     <td><?php echo $value ?> </td>   
    </tr> 
    <?php endforeach; ?> 
</table> 

,我需要的結果轉化爲其他過程中使用的字符串$result = get_content_process('template.php',$data);

echo $result; 
<table> 
    <tr> 
     <td>Juan</td> 
    </tr> 
    <tr> 
     <td>Male</td>   
    </tr> 
    <tr> 
     <td>Brown</td>   
    </tr> 
</table> 
+2

可能是有用的 - http://stackoverflow.com/questions/2832010/what-is-output-buffering – ajreal

+0

也有關:[修改現有的PHP函數返回一個字符串](http://stackoverflow.com/q/8730847/367456) – hakre

回答

3
<?php 
ob_start(); 
include 'template.php'; 
$result = ob_get_clean() 
?> 

本應該做的,在$結果是字符串,你需要

+0

我會嘗試這個解決方案 – rkmax

+0

與'extract()'功能工作出色! – rkmax

+0

如果您需要知道,它被稱爲輸出緩衝,當您必須在相同的腳本 – beerwin

0

您可以使用ob_start()做這樣的事情

<?php 
    ob_start(); 
    $GLOBALS['data'] = ...; 
    include("template.php"); 
    $result = ob_get_clean(); 
    echo $result; 
?> 
1

要確保你不沖水早期,將隱式沖洗掉。 這個功能應該做的伎倆:

function get_content_process($template, $data) { 
    ob_implicit_flush(false); 
    include($template); 
    $contents = ob_get_contents(); 
    ob_clean(); 
    ob_implicit_flush(true); 
    return $contents; 
} 
+0

中生成和處理數據時它非常方便,這是一個完整的答案 – rkmax

0

簡單而快速的解決方案:

$result = file_get_contents($view); // $view == the address of the file(ie 'some_folder/some_file.php') 
相關問題