全角数字にマッチさせるため下記正規表現を用意しました
<?php
mb_internal_encoding('euc-jp');
$str = "123";
$str = mb_convert_kana($str, "AK");
//echo $str;
if ( preg_match("/[0-9]+/", $str) ){
echo "matched";
} else {
echo "not matched";
}
?>
ところが上記を実行しても
"not matched"が表示されるばかりで一向にマッチする気配がありません
なぜかわかる方お願いします
なおコメントアウトしてある
echo $str;
を出力すると
123
と正しい値が出力されます
preg_match はSJISやEUC-JPに対応してないのでUTF-8でマッチさせてやればいいんじゃないでしょうか。
とりあえず "/[0-9]+/" の部分をUTF-8で渡してやれば動くようです。
例えば、このソースをUTF-8で保存すればそのままでも動くし、preg_match(mb_convert_encoding("/[0-9]+/", 'utf-8'), $str) に直してもいけました。
参考になりました
ありがとうございますm(_)m