Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP обучение на примерах - Кухарчик А..pdf
Скачиваний:
139
Добавлен:
24.05.2014
Размер:
24 Мб
Скачать
☆

190

Программирование на РНР

Это значит, что если переменной $nu присвоить значение ur5, то значение $nu будет равно переменной $ur5. Например:

$ur5 = 1 0 ;

$nu = "ur5";

echo $nu;

Результат на экране — число 10.

Вот и все хитрости. Если вы не смогли понять, откуда взялась переменная $nom, могу подсказать: пришла из предыдущего файла с формой. В принципе, ее можно было найти и здесь, но проще сформировать именно там и передать сюда. Попробуйте модифицировать этот код так, как нужно именно вам, и разберитесь с работой форм, это избавит вас в дальнейшем от головной боли по поводу их работы.

Архив рассылок

Если на вашем сайте посетители могут подписаться на рассылку, совсем не лишним будет организовать архив рассылок. Конечно, это не нужно, например, для рассылки прайса фирмы, а вот для новостей или новинок будет очень полезным. Этим мы одновременно выполняем два действия: во-первых, позволяем посетителям просматривать неполученные ранее, просто пропущенные или удаленные рассылки без обращения к администратору. Во-вторых, гарантируем наращивание информации на сайте для поисковых систем. Они в последнее время стали интеллектуальными и индексируют только полезную информацию, которой является, например, хорошая рассылка новинок.

Самое главное, что нам понадобится, — это собственно сам архив рассылок. Сначала нужно выделить для этого отдельный каталог и определиться с форматом хранимых рассылок. Для каждого сеанса рассылки максимально может понадобиться хранить по три файла — обычный html с собственно рассылкой, zip для тех, кто

Архиврассылок

191

предпочитает скачивать информацию, и, наконец, текстовый файл с кратким содержанием или оглавлением рассылки (чтобы пользователь представлял себе, что и зачем он скачивает или смотрит). Причем файлы html и zip рекомендую хранить в разных подкаталогах. Это нужно для увеличения быстродействия всей системы в целом, так как осуществлять поиск будем по файлам, и лишние в этом каталоге нам ни к чему.

Итак, для хранения кода программы нам понадобится всего один файл. Назовите его так, как вам нравится, это не принципиально, и сделайте ссылку на него на своем сайте — «Архив рассылок». Теперь откройте сам файл в текстовом редакторе, и можно начинать программировать.

$katalog_archiv = "archiv/";

В этой переменной у нас хранится имя каталога, в котором находятся сами рассылки. Такие переменные лучше определять заранее, так как может понадобиться их изменить. Это будет легко сделать, поменяв значение переменной всего один раз, в начале.

Начало имени всех файлов у нас будет такое:

$name_temp = "Archiv_News!_";

Имена могут быть абсолютно любыми, так как отбрасываются

впроцессе работы, но с ними должны совпадать реальные имена

вкаталоге с архивом рассылок. Я, для удобства, принял для себя такой формат имен:

Начальное имя_число_месяц_год выпуска рассылки

Этого формата следует придерживаться для всех трех компонентов рассылки: файлов html, zip и txt. Последний также является файлом в формате html, но имеет расширение txt.

Открываем наш каталог с рассылками и ищем в нем файлы с расширением txt:

$dir_archiv = opendir{$katalog_archiv);

while($f = readdir($dir_archiv))

{

192

Программирование на РНР

Вот почему я рекомендовал не хранить здесь остальные файлы, так как поиск усложняется, если файлов становится слишком много.

Сначала разделим имя проверяемого файла на составляющие, что понадобится нам в дальнейшем:

$f1 = trim{str_replace (".","~", $f) ) ;

@list ($id_name, $id_ras) = split ("~", $f1);

И вот, наконец, найден текстовый файл, можно начать вывод сообщения, так как это просто информация об очередной новинке, которую нужно показать на экране:

if ($id_ras == "txt")

// блок вывода сообщения об очередной дате новинки

Разделяем имя файла таким образом, чтобы выделить из него еще и дату рассылки. Нам не надо хранить ее отдельно, так как она присутствует в самом имени файла:

$f2 = trim(str_replace ($name_temp,"", $f)); $f2 = trim(str_replace (".txt","", $f2));

$f1 = trim{str_replace ("_","~", $f2)); @list ($den, $m, $god) = split ("~", $f1);

$q[] = "";

$q[] = "января"; $q[] = "февраля"; $q[] = "марта"; $q[] = "апреля"; $q[] = "мая"; $q[] = "июня";

Архиврассылок

193

$q[] = "июля"; $q[] = "августа"; $q[] = "сентября"; $q[] = "октября"; $q[] = "ноября"; $q[] = "декабря";

if ($m == "01") $m = 1; if ($m == "02") $m = 2; if ($m == "03") $m = 3; if ($m == "04") $m = 4; if ($m == "05") $m = 5; if ($m == "06") $m = 6; if ($m == "07") $m = 7; if {$m == "08") $m = 8; if ($m == "09") $m = 9;

$m = $q[$m];

Алгоритм немного грубый, но вы можете проявить свою фантазию и придумать что-то более простое и изящное.

Выводим на экран сообщение о рассылке и дате ее выхода:

echo "<р><b>Рассылка от $den $m 20$god года: </b><br>

Содержание:<br><br>";

Подготавливаем к рассылке текстовый файл:

include ("$katalog_archiv$name_temp$f2.txt");

Несмотря на расширение, HTML-код в нем будет выполнен. Осталось вывести ссылки для просмотра и скачивания нашей рассылки:

Соседние файлы в предмете Программирование