Различные glob () результаты от локального к серверу (Windows против Linux) - PullRequest
0 голосов
/ 25 сентября 2011

Я хочу выбрать только файлы, которые начинаются с цифры или буквы:

$files = glob($xsl_dir_path . "/[^a-zA-Z0-9]*.xsl");
$files = array_map('basename', $files);

Есть 3 файла: a.xsl, b.xsl, _functions.xsl.Я не хочу выбирать файл _functions.xsl.

  • Результат : локальный (Windows): a.xsl, b.xsl
  • Результат : сервер (Linux): _function.xsl

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

* Отредактировано (снова) *

Мой плохой, glob, вероятно, не имеет регулярного выражения в качестве сопоставления с шаблоном.
Тогда это не сработает: (?<![^/])[a-zA-Z0-9][^/]*\.xsl$
(просто совпадает с filename.xsl, которому предшествует либо /, либо начало строки.)

Однако, для большего контроля, используйте глобус '*. *' или что-то более широкое, затем отфильтруйте список, которыйГлоб производит с регулярным выражением, как указано выше.Это дополнительный шаг, но он, вероятно, даст одинаковые результаты для всех операционных систем

.
0 голосов
/ 25 сентября 2011

Вы отрицаете совпадение классов, попробуйте:

$files = glob($xsl_dir_path . "/[a-zA-Z0-9]*.xsl");
$files = array_map('basename', $files);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...