teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

2020/08/14 14:05

投稿

kyone
kyone

スコア17

title CHANGED
File without changes
body CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  65533ファイルまでは問題なく動作し、65534ファイルになるとglobで取得する値が65535個となり、0000065534.txtを2回取得しています。
60
60
  ![1回目の重複](8bcda928b94474c792cb3ab17febd23a.png)
61
- その次は、131699(≒65535×2)ファイルで、同様に重複する値を取得します。
61
+ その次は、131069(≒65535×2)ファイルで、同様に重複する値を取得します。
62
62
  ![2回目の重複](bebe9887bad5f54a44418287d4c376d9.png)
63
63
 
64
64
  これ以上は検証していませんが、多分、65535ファイル毎に重複する

3

2020/08/14 14:05

投稿

kyone
kyone

スコア17

title CHANGED
File without changes
body CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  65533ファイルまでは問題なく動作し、65534ファイルになるとglobで取得する値が65535個となり、0000065534.txtを2回取得しています。
60
60
  ![1回目の重複](8bcda928b94474c792cb3ab17febd23a.png)
61
- その次は、131701(≒65535×2)ファイルで、同様に重複する値を取得します。
61
+ その次は、131699(≒65535×2)ファイルで、同様に重複する値を取得します。
62
62
  ![2回目の重複](bebe9887bad5f54a44418287d4c376d9.png)
63
63
 
64
64
  これ以上は検証していませんが、多分、65535ファイル毎に重複する

2

情報の追加です

2020/08/14 14:04

投稿

kyone
kyone

スコア17

title CHANGED
File without changes
body CHANGED
@@ -29,4 +29,41 @@
29
29
 
30
30
  ### 補足情報
31
31
  OS:Windows10 Pro,Home
32
- PHP version:PHP 7.2.26 (cli)、PHP7.4.9 (cli)
32
+ PHP version:PHP 7.2.26 (cli)、PHP7.4.9 (cli)
33
+
34
+ # 追記
35
+
36
+ みなさま、回答コメントありがとうございます。
37
+ とりあえず自分の環境でだけ起こっているのではない、ということが確認でき安心しました。
38
+
39
+ 別OS,別バージョン,別ファイルシステムについては、試す環境と時間がないので申し訳ありませんが、追加の情報はありません。
40
+
41
+ 何個目のファイルから、どのファイルが重複してカウントされるかを確認するために、ファイル名の数字の桁を10桁にそろえて確認しました。
42
+ ```PHP
43
+ <?php
44
+
45
+ $max=65535*2;
46
+
47
+ $dir='test/';
48
+ for ($i=1;$i<=$max;$i++){
49
+ file_put_contents($dir.sprintf("%010d",$i).".txt",$i);
50
+ }
51
+
52
+ $files=glob($dir."*");
53
+ echo count($files);
54
+
55
+ ?>
56
+
57
+ ```
58
+
59
+ 65533ファイルまでは問題なく動作し、65534ファイルになるとglobで取得する値が65535個となり、0000065534.txtを2回取得しています。
60
+ ![1回目の重複](8bcda928b94474c792cb3ab17febd23a.png)
61
+ その次は、131701(≒65535×2)ファイルで、同様に重複する値を取得します。
62
+ ![2回目の重複](bebe9887bad5f54a44418287d4c376d9.png)
63
+
64
+ これ以上は検証していませんが、多分、65535ファイル毎に重複する
65
+ ファイルが1つずつ増えていく感じでしょうか。
66
+
67
+ 現時点で確認している不具合はファイルの一覧を取得した際、存在しているファイルを重複して取得するだけなので、m6uさんのarray_unique()で対処可能です。
68
+
69
+ ただ、重複するのではなく、例えば取りこぼす(ファイルが存在するのに取得しない)ような不具合が仮にあったとすれば、array_unique()では対処できないので、別の方法を考える必要がありそうです。

1

2020/08/14 13:46

投稿

kyone
kyone

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- WindowsのPHPで、ディレクトリ一覧がうまく取得できない
1
+ WindowsのPHPで、ディレクトリ内ファイル一覧がうまく取得できない
body CHANGED
File without changes