質問編集履歴

13

「試したこと 6」を修正

2022/09/18 22:35

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -66,8 +66,8 @@
66
66
  まさか「画面上の`1`を`7`に置換する」というJavaScriptでも動いているのか?と思い、ブラウザでJavaScriptを停止しましたが、さすがにそんなスクリプトはなかったようです。
67
67
 
68
68
  ##### 試したこと 6(コマンドで実行)
69
- Teratermから以下実行しました`'abc'`は普通に`3`で、`'🏴󠁧󠁢󠁥󠁮󠁧󠁿'`の方はペースト時に`??????????????`になってしまい`14`でした。
69
+ Teratermから以下コードをコピペし実行しました`'abc'`の方は普通に`3`ですが、`'🏴󠁧󠁢󠁥󠁮󠁧󠁿'`の方はペースト時に`??????????????`になってしまい`14`となり、どうやらコマンドは絵文字は使えないようでした。
70
- ```php
70
+ ```Teraterm
71
71
  php -r "echo grapheme_strlen('abc'),PHP_EOL;" //3
72
72
  php -r "echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'),PHP_EOL;" //14
73
73
  ```

12

画像差し替え

2022/09/17 23:08

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -118,7 +118,7 @@
118
118
  ##### 試したこと 9(index.phpで実行)
119
119
  WordPressを介さずpublic_html直下のindex.phpで実行しました。これもマニュアルをコピペした5行のみを記載しましたが、変化は見られませんでした。
120
120
 
121
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/e4bf9a5d-6ecb-425f-ab40-2118b9f93d3a.jpeg)
121
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/65e5526b-a604-47bb-9be2-9d3c84403cd6.jpeg)
122
122
 
123
123
  ### 補足情報(FW/ツールのバージョンなど)
124
124
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しブラウザで結果を確認しています。

11

「試したこと 1」と「試したこと 9」に図を追加

2022/09/17 23:01

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -22,8 +22,16 @@
22
22
 
23
23
  ### 試したこと
24
24
  ##### 試したこと 1(コードの確認)
25
- まずコピペミスを懸念し、改めてコピペしましたが変化なしでした。
25
+ まずマニュアルのコピペミスを懸念し、改めてコピペしましたが変化なしでした。
26
26
  これは「質問への追記・修正の依頼」で m.ts10806様 から改めて確認するようご指摘頂き、再三のコピペで確認致しました。
27
+
28
+ そのコピペの結果は下図です。
29
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/576b18c9-b5fe-4420-a2bb-662f191779bc.jpeg)
30
+
31
+ ちなみに3v4lにマニュアルをコピペするとこうなります。
32
+ https://3v4l.org/QXCFu
33
+
34
+ 以上みなさんがされても同様だと思いますので、コピペミスは考えにくい思います。
27
35
 
28
36
  ##### 試したこと 2(バージョンの確認)
29
37
  次にphpバージョンを確認すると 8.0.16 で問題はなさそうでした。
@@ -110,6 +118,8 @@
110
118
  ##### 試したこと 9(index.phpで実行)
111
119
  WordPressを介さずpublic_html直下のindex.phpで実行しました。これもマニュアルをコピペした5行のみを記載しましたが、変化は見られませんでした。
112
120
 
121
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/e4bf9a5d-6ecb-425f-ab40-2118b9f93d3a.jpeg)
122
+
113
123
  ### 補足情報(FW/ツールのバージョンなど)
114
124
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しブラウザで結果を確認しています。
115
125
 

10

「試したこと 7」にphp.iniの内容を加筆

2022/09/17 22:02

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -65,6 +65,7 @@
65
65
  ```
66
66
 
67
67
  ##### 試したこと 7(文字コード確認)
68
+ ###### phpの実行で確認
68
69
  次のコードを実行しましたが、UTF-8で問題ないように思われます。
69
70
  ```php
70
71
  // デフォルトの判定可能な文字コード
@@ -89,8 +90,13 @@
89
90
  🏴󠁧󠁢󠁥󠁮󠁧󠁿:UTF-8
90
91
  */
91
92
  ```
93
+
94
+ ###### エディタで確認
92
95
  尚、下図のようにエディタ(Notepad++)の文字コードも「UTF-8」でしたので、PHPファイル自体の文字コードも問題ないと思われます。
93
96
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/ef758bc1-c75f-4266-9a1b-8150065d21d6.png)
97
+
98
+ ###### php.iniで確認
99
+ さらにXサーバーの管理画面からphp.iniを見てみましたが、`default_charset = UTF-8`と`mbstring.internal_encoding = UTF-8`で、これも問題なさそうです。
94
100
 
95
101
  ##### 試したこと 8(他の Grapheme 関数)
96
102
  [Grapheme 関数が他にいくつかございました](https://www.php.net/manual/ja/ref.intl.grapheme.php)ので、以下を実行してみました。おそらく本来は同じ値になるはずですが、こちらもおかしかったです。

9

誤字訂正

2022/09/17 21:44

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
  ```
103
103
 
104
104
  ##### 試したこと 9(index.phpで実行)
105
- WordPressを介さずドメイン直下のindex.phpで実行しました。これもマニュアルをコピペした5行のみを記載しましたが、変化は見られませんでした。
105
+ WordPressを介さずpublic_html直下のindex.phpで実行しました。これもマニュアルをコピペした5行のみを記載しましたが、変化は見られませんでした。
106
106
 
107
107
  ### 補足情報(FW/ツールのバージョンなど)
108
108
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しブラウザで結果を確認しています。

8

「試したこと 7」にエディタの文字コードの内容を加筆

2022/09/17 21:41

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -89,6 +89,8 @@
89
89
  🏴󠁧󠁢󠁥󠁮󠁧󠁿:UTF-8
90
90
  */
91
91
  ```
92
+ 尚、下図のようにエディタ(Notepad++)の文字コードも「UTF-8」でしたので、PHPファイル自体の文字コードも問題ないと思われます。
93
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-18/ef758bc1-c75f-4266-9a1b-8150065d21d6.png)
92
94
 
93
95
  ##### 試したこと 8(他の Grapheme 関数)
94
96
  [Grapheme 関数が他にいくつかございました](https://www.php.net/manual/ja/ref.intl.grapheme.php)ので、以下を実行してみました。おそらく本来は同じ値になるはずですが、こちらもおかしかったです。

7

「試したこと 9」の追加

2022/09/17 21:29

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -99,8 +99,10 @@
99
99
  //f09f8fb4
100
100
  ```
101
101
 
102
+ ##### 試したこと 9(index.phpで実行)
103
+ WordPressを介さずドメイン直下のindex.phpで実行しました。これもマニュアルをコピペした5行のみを記載しましたが、変化は見られませんでした。
102
104
 
103
105
  ### 補足情報(FW/ツールのバージョンなど)
104
- 尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
106
+ 尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しブラウザで結果を確認しています。
105
107
 
106
108
  原因、解決策、他に試すべき事柄などについて思い当たることがございましたら、ご回答宜しくお願い致します。

6

「試したこと 8」の追加

2022/09/17 21:00

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
  ##### 試したこと 6(コマンドで実行)
61
61
  Teratermから以下実行しましたが`'abc'`は普通に`3`で、`'🏴󠁧󠁢󠁥󠁮󠁧󠁿'`の方はペースト時に`??????????????`になってしまい`14`でした。
62
62
  ```php
63
- php -r "echo grapheme_strlen('abc'),PHP_EOL;" // 3
63
+ php -r "echo grapheme_strlen('abc'),PHP_EOL;" //3
64
64
  php -r "echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'),PHP_EOL;" //14
65
65
  ```
66
66
 
@@ -90,6 +90,16 @@
90
90
  */
91
91
  ```
92
92
 
93
+ ##### 試したこと 8(他の Grapheme 関数)
94
+ [Grapheme 関数が他にいくつかございました](https://www.php.net/manual/ja/ref.intl.grapheme.php)ので、以下を実行してみました。おそらく本来は同じ値になるはずですが、こちらもおかしかったです。
95
+ ```php
96
+ echo bin2hex('🏴󠁧󠁢󠁥󠁮󠁧󠁿');
97
+ //f09f8fb4f3a081a7f3a081a2f3a081a5f3a081aef3a081a7f3a081bf
98
+ echo bin2hex(grapheme_substr('🏴󠁧󠁢󠁥󠁮󠁧󠁿',0,1));
99
+ //f09f8fb4
100
+ ```
101
+
102
+
93
103
  ### 補足情報(FW/ツールのバージョンなど)
94
104
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
95
105
 

5

「試したこと 7」を追加

2022/09/17 14:08

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,32 @@
64
64
  php -r "echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'),PHP_EOL;" //14
65
65
  ```
66
66
 
67
+ ##### 試したこと 7(文字コード確認)
68
+ 次のコードを実行しましたが、UTF-8で問題ないように思われます。
69
+ ```php
70
+ // デフォルトの判定可能な文字コード
71
+ print_r(mb_detect_order());
72
+
73
+ // 文字コード確認
74
+ $utf8s = ['テスト','🏴󠁧󠁢󠁥󠁮󠁧󠁿'];
75
+ foreach( $utf8s as $utf8 ){
76
+ echo $utf8 . ':' . mb_detect_encoding($utf8).PHP_EOL;
77
+ }
78
+
79
+ /*
80
+ Array
81
+ (
82
+ [0] => ASCII
83
+ [1] => JIS
84
+ [2] => UTF-8
85
+ [3] => EUC-JP
86
+ [4] => SJIS
87
+ )
88
+ テスト:UTF-8
89
+ 🏴󠁧󠁢󠁥󠁮󠁧󠁿:UTF-8
90
+ */
91
+ ```
92
+
67
93
  ### 補足情報(FW/ツールのバージョンなど)
68
94
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
69
95
 

4

試したこと 6 を追加

2022/09/17 01:42

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -47,8 +47,7 @@
47
47
  ##### 試したこと 3(関数の有無を確認)
48
48
  `grapheme_strlen`の有無を確認しましたが以下問題なく`true`でした。
49
49
  ```php
50
- var_dump( function_exists('grapheme_strlen') );
50
+ var_dump( function_exists('grapheme_strlen') ); //true
51
- // -> bool(true)
52
51
  ```
53
52
 
54
53
  ##### 試したこと 4(バージョンの変更)
@@ -58,6 +57,13 @@
58
57
  ##### 試したこと 5(JavaScriptの停止)
59
58
  まさか「画面上の`1`を`7`に置換する」というJavaScriptでも動いているのか?と思い、ブラウザでJavaScriptを停止しましたが、さすがにそんなスクリプトはなかったようです。
60
59
 
60
+ ##### 試したこと 6(コマンドで実行)
61
+ Teratermから以下実行しましたが`'abc'`は普通に`3`で、`'🏴󠁧󠁢󠁥󠁮󠁧󠁿'`の方はペースト時に`??????????????`になってしまい`14`でした。
62
+ ```php
63
+ php -r "echo grapheme_strlen('abc'),PHP_EOL;" // 3
64
+ php -r "echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'),PHP_EOL;" //14
65
+ ```
66
+
61
67
  ### 補足情報(FW/ツールのバージョンなど)
62
68
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
63
69
 

3

試したこと 5 の追加

2022/09/17 01:19

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -55,6 +55,9 @@
55
55
  Xサーバーの管理画面で 8.0.16 を 8.1.6 にアップデートしたものの改善は見られませんでした。
56
56
  逆に 7.4.28 にダウングレードしても同様でした。
57
57
 
58
+ ##### 試したこと 5(JavaScriptの停止)
59
+ まさか「画面上の`1`を`7`に置換する」というJavaScriptでも動いているのか?と思い、ブラウザでJavaScriptを停止しましたが、さすがにそんなスクリプトはなかったようです。
60
+
58
61
  ### 補足情報(FW/ツールのバージョンなど)
59
62
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
60
63
 

2

試したこと3と4を追加し、他一部を加筆・修正

2022/09/17 01:01

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -21,8 +21,11 @@
21
21
  ```
22
22
 
23
23
  ### 試したこと
24
+ ##### 試したこと 1(コードの確認)
24
25
  まずコピペミスを懸念し、改めてコピペしましたが変化なしでした。
26
+ これは「質問への追記・修正の依頼」で m.ts10806様 から改めて確認するようご指摘頂き、再三のコピペで確認致しました。
25
27
 
28
+ ##### 試したこと 2(バージョンの確認)
26
29
  次にphpバージョンを確認すると 8.0.16 で問題はなさそうでした。
27
30
  ```php
28
31
  echo phpversion().PHP_EOL; //8.0.16
@@ -41,6 +44,17 @@
41
44
  [17-Sep-2022 00:03:57 UTC] PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/xxxxxxxxxxxx/example.com/public_html/wp-content/themes/test/header.php on line 22
42
45
  ```
43
46
 
47
+ ##### 試したこと 3(関数の有無を確認)
48
+ `grapheme_strlen`の有無を確認しましたが以下問題なく`true`でした。
49
+ ```php
50
+ var_dump( function_exists('grapheme_strlen') );
51
+ // -> bool(true)
52
+ ```
53
+
54
+ ##### 試したこと 4(バージョンの変更)
55
+ Xサーバーの管理画面で 8.0.16 を 8.1.6 にアップデートしたものの改善は見られませんでした。
56
+ 逆に 7.4.28 にダウングレードしても同様でした。
57
+
44
58
  ### 補足情報(FW/ツールのバージョンなど)
45
59
  尚、ご参考になるかわかりませんが、Xサーバーを利用しWordPress上で実行しています。
46
60
 

1

誤字訂正

2022/09/17 00:27

投稿

nikuatsu
nikuatsu

score174

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
  echo phpversion().PHP_EOL; //8.0.16
29
29
  ```
30
30
 
31
- 本当に 8.0.16 なのか?と疑い、「8.0以前ならエラーになる」という次のリンクのコードを試しました。
31
+ 本当に 8.0.16 なのか?と疑い、「8.0ならエラーになる」という次のリンクのコードを試しました。
32
32
 
33
33
  > **PHP 7.3では配列のオフセットの指定に波括弧を利用できましたが、PHP 8.0ではFatal Errorが発生します。**
34
34
  > $hoge = [1, 2, 3];