PHP glob () в скобках
На компьютере с Windows следующий скрипт:
<?php
mkdir("c:\\[test]");
file_put_contents("c:\\[test]\\test.txt", "some content");
chdir("c:\\[test]");
echo getcwd()."\n";
var_dump(glob('*'));
?>
Отображает это:
C:\[test]
array(0) {
}
Когда это ожидается:
C:\[test]
array(1) {
[0]=>
string(8) "test.txt"
}
Я это понимаюglob
обрабатывает скобки как специальные символы,когда найден вpattern
параметр.
Шаблон*
соответствует любому файлу в текущем рабочем каталоге. Тем не менее, glob () ведет себя так, как будто он был запущен с шаблономc:\\[test]\\*
Скобки затем интерпретируются как часть шаблона, хотя на самом деле они являются частью каталога.
Являетсяglob
должен относиться кдорожка как частьшаблон? Я предпочел бы использовать текущий каталог в качестве отправной точки, а затем обработатьтолько шаблон.
(Попытка подвести итог):glob
функция действует как это становитсяc:\\[test]\\*
как образец совпадения, и пытается сопоставить либоc:\t\*
, c:\e\*
, или жеc:\s\*
, Но картина на самом деле*
и это не должно пытаться соответствовать любому из этого.