牛乳先生(tukihatu)回答ポイント 60ptウォッチ 2

PHP正規表現での質問です。

preg_match_allを使って機種依存文字を探し出しすコードを書いているのですが、うまくいきません。
下のものではうまくいくのですが、例えば"ユユ"という文字を$dddに入れると、
ユのコードが8386なので83「8683」86で反応するようです。
http://q.hatena.ne.jp/1189143057←ここと同じです。
やはりmbを使ったり文字を全部並べたりしたり…無理やりでないと難しいでしょうか?
できれば\x○○の形で頑張りたいのですが…
何かアドバイスをもらえると助かります。
※SJISなのにSJISでエンコしてるのはEUCも試したときの名残なので無視してください…
コード↓
<meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis" />
</head><body>
<?
$ddd = "①";
$ddd = htmlspecialchars(mb_convert_encoding($d3, "SJIS", "auto"));

$regdat = '('
.'[\x85-\x87][\x40-\xFC]|\x88[\x40-\x9D]|' //9~15区
.'[\xEB-\xFC][\x40-\xFE]' //85~94区
.')';

if(preg_match_all("/".$regdat."/e",$ddd,$title03)){
$di = mb_convert_encoding(join("",$title03[0]), "SJIS", "auto");
$did = $di . " という機種依存文字が含まれています。";
echo $did;
}
?>
</body>
=====

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-08-13 19:12:35
終了日時
2008-08-14 11:25:05
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

正規表現647EUC191SJIS223機種依存文字30PHP7798X4032D346DDD83エンコ15

人気の質問

メニュー

PC版