eval関数を使います。
いや多分、掲題のようなことをしたくて探している人にとっては「そんなの知っとるわい!」なんでしょうけど、違うんです、、、多分。
多分私と同じであれば、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インジェクションだね。。

これ、たまたま見つけたんだけど、あまり知られてないよね?
もしかして、広めないほうがいいってやつ?

あれ、こんな夜中に誰か来