У меня нет окна Windows, чтобы проверить это и не могу найти документацию об этом, поэтому я подумал, что спрошу:
Когда я запускаю glob('/path/to/files/*.txt')
он возвращает массив:
[
'/path/to/files/foo.txt'
'/path/to/files/bar.txt'
]
Я хочу просто имя файла, поэтому я делаю:
foreach (glob('/path/to/files/*.txt') as $file) {
$fileName = substr($file, strrpos($file, DIRECTORY_SEPARATOR) + 1);
...
}
Определяет имя файла, находя все после последней косой черты. Я использовал DIRECTORY_SEPARATOR вместо '/', потому что я предполагаю, что в окнах будет выглядеть массив
[
'\path\to\files\foo.txt'
'\path\to\files\bar.txt'
]
Это правда? Может ли кто-нибудь подтвердить, что постоянный DIRECTORY_SEPARATOR всегда будет соответствовать разделителю в glob()
результатах?
Правильный ответ, как отмечают VolkerK и Barmar в комментариях, "это не имеет значения", потому что я должен использовать полезную базовую функцию php вместо строчных хаков.
foreach(glob('c:\\develop\\*')...
c:\develop\Apache24 c:\develop\Java
foreach(glob('c:\\develop\\*')...
я получаюc:\develop\Apache24 c:\develop\Java
и т. Д., Но сforeach(glob('c:/develop/*')...
Я получаюc:/develop/Apache24 c:/develop/Java
с использованием php 5.6.14 / win10 - так что я думаю, что ответ "нет" ;-) Вы рассматривали возможность использования pathinfo, basename или spl's DirectoryIterator ?glob('c:\\develop/*')
что бы запутало его.