venetu
Мой дом здесь!
- Регистрация
- 28 Мар 2007
- Сообщения
- 745
- Реакции
- 273
- Автор темы
- #1
Вопрос не для начинающих, но просто ждать 50 постов сильно долго, поэтому приходится писать сюда - надеюсь, все же дойдет по адресу.
Итак, вопрос такой: Есть папка, допустим, /tmp
Есть в ней несколько тысяч файлов, у всех файлов имена вида
23-myfile.jpg
23-another.jpg
271-pic.jpg
где число в начале - это ID статьи, к которой данные файлы относятся.
При выводе статьи хочется быстро выбрать файлы, к ней относящиеся. Если делать через opendir() и readdir() - приходится просматривать весь каталог, пока дойду до нужного файла. Если файлов больше тысячи - начинает заметно подтормаживать, до 0.5 секунд..
Хочется сделать что-нибудь типа
exec("dir /b 213-*.*", $files);
но средствами php. Ну или хотя бы через тот же exec, но в варианте для юникса - т.е. чтобы оно в массив files выгр**** все имена, начинающиеся на определенные символы. И при этом не перебирало всю директорию.
В доке к php нашел только fnmatch - но это все же не то, с ним все равно придется перебирать каждый файл.. Долго..
Итак, вопрос такой: Есть папка, допустим, /tmp
Есть в ней несколько тысяч файлов, у всех файлов имена вида
23-myfile.jpg
23-another.jpg
271-pic.jpg
где число в начале - это ID статьи, к которой данные файлы относятся.
При выводе статьи хочется быстро выбрать файлы, к ней относящиеся. Если делать через opendir() и readdir() - приходится просматривать весь каталог, пока дойду до нужного файла. Если файлов больше тысячи - начинает заметно подтормаживать, до 0.5 секунд..
Хочется сделать что-нибудь типа
exec("dir /b 213-*.*", $files);
но средствами php. Ну или хотя бы через тот же exec, но в варианте для юникса - т.е. чтобы оно в массив files выгр**** все имена, начинающиеся на определенные символы. И при этом не перебирало всю директорию.
В доке к php нашел только fnmatch - но это все же не то, с ним все равно придется перебирать каждый файл.. Долго..