HTMLタグの正規表現

Do You PHP はてな - 「Yahoo!がPHPエンジニアを雇う時に聞く質問」に解答付けてみた
自分は全部答えられなかったので参考になります。

お礼がてらちょっとつっこみ。

17. $stringにテキストが代入されているとき、HTMLタグを全て除去する正規表現はどのように書けば良いか?

これなんですが、例えば

<a href="" onclick="alert('<b>foo</b>')">

こんなタグの入れ子がある場合には/<[^>]*>/という正規表現では不十分なので、

preg_replace('/<\/?(?:[^<>]*(?:<[^>]*>)*[^<>]*)*>/' ,'',$string);

とかでどうでしょう。*1

タグの消去だけならここまでしなくていいと思うんですけどね。

*1:なんかかわいい正規表現