0

ウィジェット コンテンツ内、ヘッダー フッター、および表示される他のすべての場所を含む、ページ上のすべてのコンテンツで「preg_replace」を実行する必要があります。ページ上のすべての出力を実行するにはどうすればよいですか?

ページで発生する可能性のあるすべての悪い言葉を置き換えたいと考えています。ページ上のすべてのコンテンツを検索する方法がわかりません。

4

1 に答える 1

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); 
于 2012-12-12T05:37:03.063 に答える