Папкопотрошилка
Список имен файлов папки, помещенный теперь в массив $а, содержит эти имена в случайном порядке – так их выдает функция readdir. Однако массив можно отсортировать – функциями asort (по алфавиту – прямое) или rsort (по алфавиту – обратное: с z до а). Использование сортировки массива даст возможность включать имена файлов или их содержимое в определенном порядке – достаточно лишь называть их так, чтобы они сортировались нужным образом (скажем, новости удобно именовать датой – файлы с ними могут иметь имена типа 20020901.php, 20020902.php, тогда при прямой сортировке самые свежие файлы окажутся внизу списка, при обратной – вверху).
rsort($a);
Ну а теперь будем выводить имена по одному с начала массива до конца и использовать их по своему усмотрению. Для этого применим оператор foreach (переменная as массив), который считывает в указанную в его параметрах переменную все элементы массива по очереди, выполняя каждый раз указанный после него в фигурных скобках код, в котором указанная переменная может использоваться:
foreach ($a as $value) {
Комментарий
Оператор foreach будет работать только в РНР 4.0 и выше. Если вы можете использовать лишь РНР3, то вместо него можно использовать немного более громоздкий код – вначале определим размер полученного списка:
$l=sizeof($a);
…а затем выполним нижеследующий цикл для каждого элемента массива с помощью цикла for, указав в его параметрах узнанную величину массива:
for ($k = 1; $k < $1; $k++)
Для удобства можно записать значение очередного элемента массива в переменную:
$value=$a[$k];
…и получится практически полный аналог оператора foreach.
Дальнейший текст сценария зависит от ваших потребностей (и одинаков как для оператора foreach, так и при использовании цикла for).
Чтобы вывести простой список файлов в папке $dirct, состоящий из гиперссылок на них, можно использовать такую команду, поместив ее в это место сценария:
echo ("<a href = $dirct/$value>$value</axbr>");
Чтобы вставить в страницу содержимое всех файлов в папке Sdirct, можно применить команду include:
include ("$dirct/$value");
Данный способ, например, используется при выводе ленты объявлений и новостей на уже упоминавшемся сайте www.harchikov.ru. в корневом каталоге сайта создана папка news, а на его заглавной странице размещен вышеприведенный сценарий (второй вариант – с использованием команды include). Для помещения на сайт нового объявления администратору достаточно набрать его текст (при необходимости использовав html-разметку, но можно и без нее), поместить этот текст в файл, назвать файл цифровой записью даты создания объявления (для удобства работы и сортировки) и разместить его в папке news на сайте. Никакой редакции каких-либо страниц сайта не требуется. Для удаления объявления с сайта достаточно просто удалить файл с ним из папки news, и впредь выдаваемые посетителям страницы не будут включать в себя его содержимое. Весь процесс нетрудно поручить даже секретарше или полному "чайнику".