いや多分、掲題のようなことをしたくて探している人にとっては「そんなの知っとるわい!」なんでしょうけど、違うんです、、、多分。
多分私と同じであれば、PHPタグ外の文字列も含めて出力したい。
イメージ的には、文字列を一度PHPファイルに出力して、それを実行する、という感じです。
そんな話なんです。違ったらすみません。
答えは↓です。
eval('?>' . $str);
これで、例えば$strの中身が
1 + 1 = <?php echo 1 + 1; ?>
だったとすると、出力は
1 + 1 = 2
となります。
こんなことできるんですね。全く盲点でした。
なぜできるのかを考えると、おそらく、evalに渡す文字列はPHPタグに囲まれているものと想定されているため、こんな感じで処理されるのでしょう。
'<?php' + evalに渡された文字列 + '?>'
上の例で言うと、
<?php?>1 + 1 = <?php echo 1 + 1; ?>?>
なにかに似ていると思ったら、SQLインジェクションだね。。
これ、たまたま見つけたんだけど、あまり知られてないよね?
もしかして、広めないほうがいいってやつ?
あれ、こんな夜中に誰か来