PHP glob () em diretórios entre colchetes
Em uma máquina Windows, o seguinte script:
<?php
mkdir("c:\\[test]");
file_put_contents("c:\\[test]\\test.txt", "some content");
chdir("c:\\[test]");
echo getcwd()."\n";
var_dump(glob('*'));
?>
Exibe isso:
C:\[test]
array(0) {
}
Quando isso é esperado:
C:\[test]
array(1) {
[0]=>
string(8) "test.txt"
}
Eu entendi aquiloglob
rata os colchetes como caracteres especiai quando encontrado nopattern
parâmetro.
O padrão*
corresponde a qualquer arquivo no diretório de trabalho atual. No entanto, glob () se comporta como se tivesse sido executado com o padrãoc:\\[test]\\*
Os colchetes são então interpretados como parte do padrão, quando na verdade eles fazem parte do diretóri
Églob
deveria tratar ocaminh como parte dopadroniza? Prefiro pensar que ele deve usar o diretório atual como ponto de partida e depois processar opattern only.
(Tente resumir): Oglob
função @ age como se estivesse recebendoc:\\[test]\\*
como um padrão de correspondência e está tentando corresponderc:\t\*
, c:\e\*
ouc:\s\*
. Mas o padrão é realmente*
e não deveria tentar igualar nada disso.