Виртуальный Брест
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

Запчасти для телефонов и ноутбуков
Запчасти для телефонов и ноутбуков
 
Геологические работы
Геологические работы
 
Экскурсии в Европу, из Бреста!
Экскурсии в Европу, из Бреста!
 

Виртуальный хостинг - дом для вашего сайта - лучшее предложение в Бресте!


Полный список глав книги

Сам себе счетчик


Занимаясь разработкой даже небольшого проекта в сети Интернет, где присутствуют динамические страницы, приходится сталкиваться с необходимостью хранить различные данные.

Это могут быть показания счетчика посещений, данные баннерной системы сайта или любой другой вид информации. Рано или поздно наступает момент, когда приходится задумываться об оптимизации хранения и учета таких данных. Конечно, легче всего было бы использовать базу данных, например – MySQL, но часто это не доступно по разным причинам (ну нет ее у хостера, к примеру).

Другой вариант – отвести каждому виду данных собственный файл. Это очень просто и доступно, и именно так поступают в тех случаях, когда надо быстро наладить и запустить в работу систему сайта. Но – со временем количество задач увеличивается, и однажды оказывается, что отведенные файлы расплодились в больших количествах и уже тоже начинают требовать учета. Да еще путаница – где что и для чего. Так или иначе, проблема есть, а значит надо ее решить.

Итак, профессиональные базы данных мы не рассматриваем. Тогда остается всего несколько путей. Один – создание собственной базы на основе всего одного файла. Неплохое решение, но мы пойдем другим путем.

А именно – будем хранить информацию непосредственно в файле, который исполняет программу. Во как хитро, а Вы думали, PHP может оказывается и так! Вот как это может выглядеть на практике.

Для примера давайте рассмотрим систему, которая по очереди выводит баннеры разных сайтов. Это могут быть любые баннеры, и их количество не ограничено. Но у нас пусть их будет три. Итак…

<?

// 1

?>

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

<?

$nomer_ban = 3;

$name_file = "путь к файлу и его имя";

$list = file($name_file);

?>

В переменной $nomer_ban будет храниться количество баннеров в системе баннерообмена. Их может быть любое количество, как я уже упоминал выше.

В переменной $file_name нужно указать имя файла, в который вносится этот код. Если необходим путь, про него тоже нельзя забывать. А также нужно помнить об атрибутах файла после закачки его на сервер. Обязательно должна быть разрешена запись в файл. После того, как служебные переменные определены, считаем наш файл в массив $list. При этом в него будет считан весь файл целиком, вместе с кодом, который сейчас исполняется.

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

<?

$set = trim(str_replace ("\n","", $list[1]));

$set = trim(str_replace ("// ","", $set));

$set++;

if ($set > $nomer_ban or $set < 1) { $set = 1; }

?>

В переменную $set считываем второй элемент из массива $list. Напомню, массивы начинают свою нумерацию с нуля, а значит, второй элемент массива будет обозначаться числом 1.

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

Все, в результате таких нехитрых манипуляций в переменной $str лежит число, соответствующее прошлому показанию счетчика. Дальше поступаем с ним так, как и положено с хорошим счетчиком. Увеличиваем! И – смотрим, не вышел ли он за отведенные ему пределы. Если да – сбрасываем на единицу, если нет – просто работаем дальше.

А дальше надо, в зависимости от значения счетчика вывести баннер. Сделать это, конечно, не сложно. Например, вот так:

<?

if ($set == 1) { ?> Тут код первого баннера <?

if ($set == 2) { ?> Тут код второго баннера <?

if ($set == 3) { ?> Тут код третьего баннера <?

?>

Но! Это еще не все. После того, как баннер выведен на экран, надо записать показания счетчика в отведенное для него место в файле с кодом.

<?

$list [1] = "// $set \n";

$str=implode("", $list);

$fp = fopen($name_file, "w");

if ($fp) { $fw = fwrite($fp, $str); fclose($fp); }

?>

Восстанавливаем второй элемент массива с новым значением счетчика. Переводим весь массив в одну переменную $str, и записываем полученную строку в файл. Запись идет в себя, но это никак не сказывается на работе программы.

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

И в конце – несколько слов о том, как применить полученный код. Его надо полностью скопировать в отдельный файл, указать в начале количество баннеров и имя файла, затем скопировать на сервер, изменив атрибуты для разрешения записи. Вызывать этот файл нужно в том месте HTML кода, куда должен быть вставлен код баннера. Для этого можно использовать оператор PHP include(“имя файла”); Конечно, все расширения файлов должны быть .phtml, .php или .php3 – в зависимости от настроек Вашего сервера и Ваших предпочтений.

Читать еще...



К. Шмитт

CSS. Рецепты программирования
Книга посвящена технологии Cascading Style Sheets (каскадные таблицы стилей). Обсуждаются основы CSS, а также средства, обеспечивающие наилучшие методы практической разработки:...

С. Холзнер

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

Брайан Хоган, М. Уэбер, К. Уоррен, К. Джонсон, А. Годин

Книга веб-программиста: секреты профессиональной разработки веб-сайтов
Эта книга предлагает широкий спектр передовых методов веб-разработки: от проектирования пользовательского интерфейса до тестирования проекта и оптимизации веб-хостинга. Как...

А. Гончаров

Web-дизайн: HTML, JavaScript и CSS. Карманный справочник
В справочнике приведены описания трех языковых стандартов: HTML (языка гипертекстовой разметки документов), CSS (каскадных таблиц стилей) и JavaScript (языка программирования...

    Информация

Главная - переход на начало
Тарифы на Российский хостинг
Правила - что можно а что нет
Заказ - сделайте это сейчас
Выбор домена - найди свое имя
Регистрация домена - купить
Оплата - варианты для всех
Панель управления Россия
Панель управления Беларусь
Вопросы и ответы - информация
Разработка сайтов - сопровождение
Виртуальный Брест - портал
Контакт - обратная связь
Наш форум - пообщаемся?
купить стеллажи, купить стеллаж для игрушек.
аркады для android
Список доменов
в которых доступна бесплатная регистрация имен при покупке хостинга, а так же открытие поч- тового ящика:

Новости Бреста:

Второй порыв теплосетей в Бресте - двенадцать многоэтажных домов и один детский сад остались без тепла
Почти тонну мёда задержали налоговики при проверке в Бресте
Зарплата в конвертах в Бресте - видео
Трое жителей Кавказа в "поисках работы" забрались прямо в лес в пограничную зону
Профилактика квартирных краж - важно
Современный животноводческий комплекс на 1500 голов строится в СПК "Королевский" Кобринского района - фото
Результаты проходящей на территории Брестской области акции "Не упусти свой шанс"
Осенний месячник по наведению порядка на земле проходит на Брестчине - важно
В Лунинецком районе в водоеме нашли автомобиль с телом внутри
ГАИ: брестчанин решил стать маршрутчиком и в пьяном состоянии вез горожан

© Виртуальный Брест 2001 - 2009 Автор проекта: Андрей Кухарчик Дизайн: Partgraphic