Всегда ли glob () возвращает пути к файлам, используя DIRECTORY_SEPARATOR?

1

У меня нет окна 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() результатах?

  • 1
    С 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 ?
  • 0
    Интересно. Что, если бы вы сделали glob('c:\\develop/*') что бы запутало его.
Показать ещё 1 комментарий
Теги:

1 ответ

0

Правильный ответ, как отмечают VolkerK и Barmar в комментариях, "это не имеет значения", потому что я должен использовать полезную базовую функцию php вместо строчных хаков.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню