Вам нужно будет добавить ob_start()
в начале вашей страницы, чтобы гарантировать, что вывод буферизуется и не отправляется пользователю, пока у вас не будет возможности его проанализировать.Затем я попытался бы собрать все вызовы на replaceStr()
до тех пор, пока не будут выведены все возможные теги %%
, и вы будете готовы заменить их все за один раз.Затем, это должно сделать трюк:
function replace_str(&$body, $tag, $replace) {
str_replace('%%'.$tag.'%%', $replace, $body);
}
$body = ob_get_clean();
replaceStr($body, 'replace_me', 'foobar');
// other calls to replaceStr...
echo $body
ob_end_flush();