|
Для начала поставим задачу скрипта: вывод на страницы сайта некатегоризировнного набора статей. Все статьи будут храниться в одном из каталогов сайта в текстовых файлах. Сами статьи содержат HTML разметку, что вполне соответствует требованиям большинства автообменников. Скрипт вывода и шаблон страницы сайта поместим там же.
Далее приступим к написанию скрипта. И, как водится, сначала составим план работы.
- Сперва прочитаем шаблон (надеюсь, у Вас он уже есть) страницы в переменную.
- Затем, все .txt файлы из каталога, в котором содержатся статьи прочитаем в массив.
- Далее, примем за должное тот факт, что все статьи написаны с применением H1 тега в качестве заголовка статьи - опять же распространенное требование. Далее с помощью регулярного выражения и цикла foreach для массива адресов статей прочитаем все заголовки в другой массив
- После этого нам останется подготовить ссылки и
- Подготовить проверку строки запроса страницы. И, исходя из результатов проверки, сделать вывод страницы пользователю
Приведу несколько строк скрипта. Думаю, прочитать файл шаблона в переменную не составит труда, иначе читайте мануал PHP, поэтому здесь останавливаться не будем. Основы прочтения каталога статей тоже лежат в мануале - применим функцию opendir, а для фильтрации только текстовых файлов напишем так: if (eregi("\.txt", $file)). Теперь из тега H1 надо достать сам заголовок: для каждой статьи читаем в массив с помощью кода if (eregi("<h1>([^<>]+)</h1>", $iv, $m)) и сохраняем в массив $m[1]. Получены 2 массива - один для адресов страниц и другой для их названий. Вопрос формирования ссылок оставлю за читателем. Надо только учесть, что следует снабдить каждый адрес строкой запроса типа адрес_нашего_скрипта?p=файл_статьи(за вычетом расширения .txt или .doc) След-ий этап состоит в выводе страницы. Для определения контента проверяем передано ли нашему скрипту php что-либо в строке запроса браузера - глобальная переменная $_SERVER['QUERY_STRING']. Если она пуста, отдаем странице наши ссылки, если нет - применяем функцию parse_str($_SERVER['QUERY_STRING']), проверяем существует ли наша переменная p(см. выше). Если нет выводим ошибку, если да проверяем добавляем к ее значению расширение (.txt или .doc), проверяем наличие такого файла в каталоге функцией if_exists. Если нет закругляемся с ошибкой. Если да читаем файл и выводим его пользователю вместе со ссылкой на оглавление каталога. И вывод ссылок и вывод статей производится заменой в шаблоне страницы соотв. знаков. Скажем, %contents% обрабатываем функцией str_replace.
Естественно, может быть произведен целый ряд изменений и улучшений, в том числе разбиение каталога на категории и работа со стилями, но в простом варианте это всё.
|