Codeworks Notes

 2020-05-12

 2020-06-15

PHP
プログラミング

端末の種類で処理を分ける方法

スマートフォンと PC での分岐

端末によって解釈ズレで表示が崩れるなどの問題があった時、原因の切り分けの結果デバイスの種類だった、というときは端末(の大きなくくり)ごとに処理を書けば解決します。

$ua = $_SERVER['HTTP_USER_AGENT'];
if (( strpos( $ua, 'iPhone' ) !== false ) || ( strpos( $ua, 'iPod' ) !== false ) ) {
	// iOS 用の処理を書く;
} elseif ( strpos( $ua, 'Android' ) !== false ) {
	// Android 用の処理を書く;
} else {
	// PC 用の処理を書く;
}

アクセスした機器のユーザーエージェントを得て判定を取る仕組みです。

Windows と Mac での分岐

Windows と macOS X の環境で表示させるものを変えたい場合にも User Agent で判定を得られます。

$ua = $_SERVER['HTTP_USER_AGENT'];
if (( strpos( $ua, 'macintosh' ) !== false ) ) {
	// macOS X 用の処理を書く;
} elseif ( strpos( $ua, 'Windows' ) !== false ) {
	// Windows 用の処理を書く;
} else {
	// それ以外の OS 用の処理を書く;
}

「それ以外の OS 」には Linux や ChromeOS などが含まれるので厳密に分ける必要がない場合は Windows の処理と一本化してかまいません。