|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-08-18 15:19 UTC] cmb@php.net
-Status: Open
+Status: Duplicate
-Assigned To:
+Assigned To: cmb
[2020-08-18 15:19 UTC] cmb@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 14:00:01 2025 UTC |
Description: ------------ glob() returns duplicate values when the number of files is 65534 or more. It occurs only in Windows PHP ver 7.4.9 or earlier, not in 8.0 or Linux. When number of files increase, duplicate values also increase. When I tried Test script $max=1000000, result is below. -------- 1000015 Duplicated test/0000065534.txt->2 Duplicated test/0000131069.txt->2 Duplicated test/0000196604.txt->2 Duplicated test/0000262139.txt->2 Duplicated test/0000327674.txt->2 Duplicated test/0000393209.txt->2 Duplicated test/0000458744.txt->2 Duplicated test/0000524279.txt->2 Duplicated test/0000589814.txt->2 Duplicated test/0000655349.txt->2 Duplicated test/0000720884.txt->2 Duplicated test/0000786419.txt->2 Duplicated test/0000851954.txt->2 Duplicated test/0000917489.txt->2 Duplicated test/0000983024.txt->2 Test script: --------------- <?php $max=65534; $dir='test/'; for ($i=1;$i<=$max;$i++){ file_put_contents($dir.sprintf("%010d",$i).".txt",$i); } $files=glob($dir."*"); echo count($files)."\n"; $check=array_count_values($files); foreach ($check as $key=>$value){ if ($value!=1){ echo "Duplicated ".$key."->".$value."\n"; } } ?> Expected result: ---------------- 65534 Actual result: -------------- 65535 Duplicated test/0000065534.txt->2