我需要在页面上的所有内容上运行'preg_replace',包括内部窗口小部件内容,页眉页脚和显示的所有其他位置。如何在页面上浏览所有输出?
我想要替换页面上可能出现的所有坏词。我只是不知道如何搜索页面上的所有内容。
答案 0 :(得分:0)
在整个内容上运行preg_replace在性能方面成本极高,而且我不确定要考虑什么,但有一种方法可以做到。
最好的方法是使用输出缓冲区 将所有内容都放入变量中,然后根据需要调整所有内容, 然后输出最终结果。
它看起来像这样:
// starts the output buffer
ob_start();
// In your case this is where all the content output is going to go. This echo is just a sample
echo "badword\n";
// get all the buffered content output
$OB = ob_get_contents();
// clean the buffered content, and also end the output buffer
ob_end_clean();
// run a replace on all the buffered content, and echo it out
echo preg_replace("/badword/", "BEEP", $OB);