phpでpreg_matchとかでSJISとかつかうのはNG php

Shift_JISとphpの相性の悪さ
Preg系の関数も調子悪いです。
preg_match とかね。
その対策は基本的に全てUTF-8で記述する事です。
最終的に出力したい文字エンコードと記述するエンコードが同じでなければならない理由は殆どありませんので。
もし出力先で SJISにしたい場合は
全ての処理が終わってから、Shift_JIS に変換して出力することで対応