1

HTMLテンプレートファイルからphpコードを取得して実行し、結果を元に戻そうとしています。どの正規表現コードを使用できますか? また、見つかった最初のタグの位置を返すメソッドはありますか?

<p>some html</p>

<?php $some = "php code"; ?>

<p>some <em>more</em> html</p>

<?php $some = "more php code"; ?>

HTMLからフィルタリングされたPHPコードが必要です。

4

2 に答える 2

0

「PHPを取り出して元に戻す」のではなく、変数をテンプレートファイルに渡す必要があります。

このようなもの:

<?php 
function loadTemplate($path,$data=array()){
    if (file_exists($path) === false){
        throw new Exception('Template not found:'.$path);
        return false;
    }

    extract($data);
    ob_start();
    require($path);
    $return = ob_get_contents();
    ob_end_clean();
    return $return;
}

$vars = array('var1'=>$value,
              'var2'=>$somevalue,
              'var3'=>$someothervalue,
              'var4'=>$blab);

$template = loadTemplate('path/to/thefile.php',$vars);
?>

次に、 ectのよう にfile.php$vars内から配列値にアクセスしますecho $var1 echo $var2

それが役に立てば幸い

于 2012-04-21T22:34:03.700 に答える
0
preg_match("/<\?.*?\?>/m",$output,$matches)

また

preg_match("/<\?.*?\?>/s",$output,$matches)

すべての行に一致する必要があります。

于 2012-04-21T23:20:48.050 に答える