Записки самоучки

Август 15, 2006

В Windows функция glob() чувствительна к регистру

Filed under: PHP — 4matic @ 11:12 дп

Потратил где-то полчаса, прежде, чем обнаружил что в Windows функция glob() чувствительная к регистру букв в имени файла. Потом прочел ман по glob() и нашел в комментариях:

Note that on Windows, glob distinguishes between uppercase and lowercase extensions, so if the directory contains a file «test.txt» and you glob for «*.TXT» then the file will not be found!
That bug only happens when you use patterns containing «*», like the example above. If you for example search for the full filename «test.TXT» then everything works correctly.

Я понимаю, что эта особенность связана с тем, что в *NIX системах регистр имеет значение, но пока не знаю, как красиво решить проблему. На данный момент решил так, что прохожусь двумя циклами для каждого из регистров.
Если есть я туплю, то подскажите, как решить проблему?
Еще, как вариант, не производить поиск по маске *., а проивзодить поиск всех файлов и выбирать нужные, сравнивая имена файлов с помощью обычных регулярных выражений или пользовать fnmatch(), но все равно как-то некрасиво.

3 комментария »

  1. Не нашел контактной формы.

    Ссылка на заметку от August 16, 2006 «Стиль программирования помогает избегать ошибок» не работает. Хороший блог.

    комментарий от tovarisch_ru — Август 28, 2006 @ 12:21 пп

  2. >Ссылка на заметку от August 16, 2006
    >“Стиль программирования помогает избегать ошибок” не работает
    Хм. Контактной формы действительно нет. Как ее создать средствами WP я не знаю, а просто дать мыло на радость спамерам — не хочу.
    Спасибо за сообщение. Я так понимаю, что проблема в том, что в URI попадают русские буквы. И эти буквы не всегда корректно конвертируются. Теперь буду вставлять траслитные названия для названия тем.

    >Хороший блог.
    Спасибо.

    комментарий от 4matic — Август 28, 2006 @ 12:41 пп

  3. а зачем двумя проходами? не проще имя найденного при первом проходе файла переводить в нижний (или верхний) регистр и уже наверняка знать в каком регистре находится имя файла?

    комментарий от sirvlaser — Январь 20, 2007 @ 12:45 дп


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: