質問編集履歴
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|

|
120
120
|
|
121
|
-
その次は、13169
|
121
|
+
その次は、131069(≒65535×2)ファイルで、同様に重複する値を取得します。
|
122
122
|
|
123
123
|

|
124
124
|
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|

|
120
120
|
|
121
|
-
その次は、131
|
121
|
+
その次は、131699(≒65535×2)ファイルで、同様に重複する値を取得します。
|
122
122
|
|
123
123
|

|
124
124
|
|
2
情報の追加です
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,3 +61,77 @@
|
|
61
61
|
OS:Windows10 Pro,Home
|
62
62
|
|
63
63
|
PHP version:PHP 7.2.26 (cli)、PHP7.4.9 (cli)
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
# 追記
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
みなさま、回答コメントありがとうございます。
|
72
|
+
|
73
|
+
とりあえず自分の環境でだけ起こっているのではない、ということが確認でき安心しました。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
別OS,別バージョン,別ファイルシステムについては、試す環境と時間がないので申し訳ありませんが、追加の情報はありません。
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
何個目のファイルから、どのファイルが重複してカウントされるかを確認するために、ファイル名の数字の桁を10桁にそろえて確認しました。
|
82
|
+
|
83
|
+
```PHP
|
84
|
+
|
85
|
+
<?php
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
$max=65535*2;
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
$dir='test/';
|
94
|
+
|
95
|
+
for ($i=1;$i<=$max;$i++){
|
96
|
+
|
97
|
+
file_put_contents($dir.sprintf("%010d",$i).".txt",$i);
|
98
|
+
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
$files=glob($dir."*");
|
104
|
+
|
105
|
+
echo count($files);
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
?>
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
65533ファイルまでは問題なく動作し、65534ファイルになるとglobで取得する値が65535個となり、0000065534.txtを2回取得しています。
|
118
|
+
|
119
|
+

|
120
|
+
|
121
|
+
その次は、131701(≒65535×2)ファイルで、同様に重複する値を取得します。
|
122
|
+
|
123
|
+

|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
これ以上は検証していませんが、多分、65535ファイル毎に重複する
|
128
|
+
|
129
|
+
ファイルが1つずつ増えていく感じでしょうか。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
現時点で確認している不具合はファイルの一覧を取得した際、存在しているファイルを重複して取得するだけなので、m6uさんのarray_unique()で対処可能です。
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
ただ、重複するのではなく、例えば取りこぼす(ファイルが存在するのに取得しない)ような不具合が仮にあったとすれば、array_unique()では対処できないので、別の方法を考える必要がありそうです。
|
1
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
WindowsのPHPで、ディレクトリ一覧がうまく取得できない
|
1
|
+
WindowsのPHPで、ディレクトリ内ファイル一覧がうまく取得できない
|
test
CHANGED
File without changes
|