• 締切済み

DOCOMOの機種判別でみたことない記号が

DOCOMOの機種名を取得しようと、 正規表現で以下の様に書いてみました。 if(preg_match(\"/DoCoMo/\", $agent)) { $cut = substr($agent,11); $pat = \"/\\(.+$/\"; $device = preg_replace($pat, \"\\\\1\", $cut); } そして、 $deviceを表示させてみたところ(echo $device;) その機種名であっていたのですが、 実際(txtなどに書き出したり、===などでの比較)は機種名の後に特殊記号が入っている文字列となっています。 この原因と対処(特殊記号を取り除く)をご教授お願いいたします。

みんなの回答

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.1

DoCoMoのユーザーエージェント DoCoMo/1.0/D251i/c10 DoCoMo/2.0 P03B(c500;TB;W24H16) 確かにDoCoMoのユーザーエージェントは11文字目から先を取得すれば 取れると思いますが。 preg_reqlaceの置換処理が なぜそれに置換しているのかよくわからないなぁと。 頭の11文字目を切り取っている訳ですし、 /か(が出てくるまでの文字を取得するように直せば 普通に取得出来るのではないでしょうか?

関連するQ&A