回答編集履歴
6
修正
test
CHANGED
@@ -8,15 +8,15 @@
|
|
8
8
|
|
9
9
|
$phone = $_SERVER['HTTP_USER_AGENT'];
|
10
10
|
|
11
|
-
$
|
11
|
+
$pos = strpos('iPhone',$phone);
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
いきなり$phoneにiPhoneやAndroidといった値が代入されるわけではありません。それらのデバイス情報を含んだユーザーエージェント情報(つまり、iPhoneならiPhoneという文字を含んだ長ったらしい文字列)が代入されます。そこで、必要なデバイス情報を判別するために、その文字が含んでいるかどうかをstrpos関数で判定します。そして$
|
15
|
+
いきなり$phoneにiPhoneやAndroidといった値が代入されるわけではありません。それらのデバイス情報を含んだユーザーエージェント情報(つまり、iPhoneならiPhoneという文字を含んだ長ったらしい文字列)が代入されます。そこで、必要なデバイス情報を判別するために、その文字が含んでいるかどうかをstrpos関数で判定します。そして$posには見つかった最初の文字の場所(5文字目なら5という風に),そして見つからなかった場合はfalseといった結果が入ります。この判定を元に
|
16
16
|
|
17
17
|
```php
|
18
18
|
|
19
|
-
if($
|
19
|
+
if($pos !== false){
|
20
20
|
|
21
21
|
$device = "iPhone";
|
22
22
|
|
5
strposの説明修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
いきなり$phoneにiPhoneやAndroidといった値が代入されるわけではありません。それらのデバイス情報を含んだユーザーエージェント情報(つまり、iPhoneならiPhoneという文字を含んだ長ったらしい文字列)が代入されます。そこで、必要なデバイス情報を判別するために、その文字が含んでいるかどうかをstrpos関数で判定します。そして$flgには
|
15
|
+
いきなり$phoneにiPhoneやAndroidといった値が代入されるわけではありません。それらのデバイス情報を含んだユーザーエージェント情報(つまり、iPhoneならiPhoneという文字を含んだ長ったらしい文字列)が代入されます。そこで、必要なデバイス情報を判別するために、その文字が含んでいるかどうかをstrpos関数で判定します。そして$flgには見つかった最初の文字数(5文字目なら5という風に),falseといった結果が入ります。この判定を元に
|
16
16
|
|
17
17
|
```php
|
18
18
|
|
4
説明の修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
```php
|
18
18
|
|
19
|
-
if($flg !==
|
19
|
+
if($flg !== false){
|
20
20
|
|
21
21
|
$device = "iPhone";
|
22
22
|
|
3
文章の大幅な修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
phpを使ったデバイス判別は、以下のようなプログラムが有名ですが、けっこう勘違いを起こしやすい部分があります。
|
6
6
|
|
7
7
|
```php
|
8
8
|
|
@@ -12,4 +12,18 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
|
15
|
+
いきなり$phoneにiPhoneやAndroidといった値が代入されるわけではありません。それらのデバイス情報を含んだユーザーエージェント情報(つまり、iPhoneならiPhoneという文字を含んだ長ったらしい文字列)が代入されます。そこで、必要なデバイス情報を判別するために、その文字が含んでいるかどうかをstrpos関数で判定します。そして$flgにはtrue,falseといった判定結果が入ります。この判定を元に
|
16
|
+
|
17
|
+
```php
|
18
|
+
|
19
|
+
if($flg !== "iPhone"){
|
20
|
+
|
21
|
+
$device = "iPhone";
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
```
|
26
|
+
|
27
|
+
このように値を代入して、初めてiPhoneという値が入るわけですが、何か引っかかる部分があるなら、参考にしてみてください。
|
28
|
+
|
29
|
+
|
2
説明の補助
test
CHANGED
@@ -12,4 +12,4 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
strpos関数が抜けているということはないですよね?これが抜けると、長ったらしいエージェント情報を拾ってきてしまいます。strpos関数はその中で、必要なデバイスの名前があるかどうかを判別しているのです。
|
15
|
+
strpos関数が抜けているということはないですよね?これが抜けると、長ったらしいエージェント情報を拾ってきてしまいます。strpos関数はその中で、必要なデバイスの名前があるかどうかを判別しているのです。そして$flgに入る値はTRUE OR FALSEといった判定結果となります。
|
1
説明の補助
test
CHANGED
@@ -12,4 +12,4 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
-
strpos関数が抜けているということはないですよね?これが抜けると、長ったらしいエージェント情報を拾ってきてしまいます
|
15
|
+
strpos関数が抜けているということはないですよね?これが抜けると、長ったらしいエージェント情報を拾ってきてしまいます。strpos関数はその中で、必要なデバイスの名前があるかどうかを判別しているのです。
|