2015-03-19 57 views
1

我與含PHP代碼的PHP代碼的HTML字符串如下:字符串,執行PHP和注入HTML

$str = "<div> 
    Colors:<br/> 
    <?php 
    foreach ($colors as $c) { 
     echo $c . "<br/>" 
    } 
    ?> 
</div>" 

什麼是評價的PHP代碼的最佳方式並將其注入到字符串中?很像如果字符串內容只是作爲一個PHP頁面運行會發生什麼。我一直在尋找在做這樣的事情:

$html_php_split = preg_split("/(<\?php|\?>)/", $str); 
    for ($i = 0; $i < count($html_php_split); $i++) { 
     if ($i % 2) { 
      // eval code 
     } 
     else { 
      // keep string 
     } 
    } 

但如果PHP標籤是在字符串的開始這會導致問題。這可以通過一些額外的條件來解決,但這一切似乎都非常令人費解,因爲我想實現的目標。有沒有更好的辦法?

回答

-1

也許你可以用這種方式評估你的代碼:

ob_start(); 
    include $filename; // File with your String 
    $contents = ob_get_contents(); 
ob_end_clean(); 

ob_start:此功能將變爲輸出緩衝上。當輸出緩衝處於活動狀態時,腳本中不會輸出任何輸出(標題除外),而是將輸出存儲在內部緩衝區中。來源:http://php.net/manual/en/function.ob-start.php

+0

這個作品,謝謝!仍然有點混亂,我必須保存,然後從文件中導入字符串,但最好是我的解決方案。 – thodic 2015-03-19 14:25:00