Sfera-perm.ru

Сфера Пермь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php счетчик текстовый файл

Глава 7. Графический счетчик на PHP

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

Данный пример демонстрирует работу простого графического счетчика. По функциональности он совершенно идентичен текстовому счетчику.

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

Это изображение надо сохранить под именем counter.png

В скрипте использована библиотека GD, перед тем как пользоваться этой библиотекой, узнайте у хостера, подключена ли эта библиотека. Теперь сам скрипт:

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

Для вывода счетчика в html используйте:

Основные преимущества перед другими CMS:

  • Доступность. Стоимость аренды Life Site чуть больше стоимости профессионального хостинга. Аналогичные продукты конкурентов стоят тысячи долларов. Плюс ко всему, Life Site не требует привлечения специалистов для внедрения. Вы просто присылаете заявку и в течении нескольких дней ваш сайт начнет работать.
  • Русский интерфейс. Система полностью русифицирована, имеет полную документацию на русском языке и примеры решения типовых задач.
  • Полная предварительная компиляция. Все страницы создаются во время создания сайта, а не во время обращения посетителя к странице. Что позволяет значительно увеличить скорость работы с сайтом.

Часть 7. Life Site CMS — система создания и развития сайтов

Глава 1. Введение

Life Site — это система, призванная минимизировать временные и финансовые затраты на создание и управление сайтами.

Система включает в себя все типовые функции системы управления контентом (Content Management System или сокращенно CMS).

Life Site CMS предоставляется в аренду вместе с хостингом. Благодаря этому, пользователи не занимаются решением технических проблем со своими сайтами. За них это делает Life Site. Все что остается делать это создавать дизайн и наполнять сайт материалами. При этом совсем не обязательно быть специалистом в программировании.

  • Нет ограничений на дизайн. Система не накладывает никаких ограничений на внешний вид сайта. Вам предоставляется полная свобода!
  • Скорость обучения. Система очень проста и понятна в использовании. Вам не потребуется больших временных затрат на обучение работе с системой.

Система постоянно совершенствуется. Работая с Life Site, вы всегда будете обладать не устаревшей программой, а новейшей CMS. И это не потребует никаких действий с вашей стороны.

Глава 2. Что такое CMS?

CMS — это аббревиатура от Content Management System, что в дословном переводе — Система Управления Содержимым (сайта). Иногда CMS называют «движок» сайта (site engine).

Основная функция CMS — автоматизация процесса модернизации сайта, управления его содержимым, добавления, удаления и редактирования страниц. Некоторые CMS, такие как Life Site, еще и упрощают процесс создания сайта, позволяют легко расширять его функциональность, менять дизайн, добавлять новые интерактивные модули (ленты новостей и гостевые книги и т.д.).

А зачем, собственно, сайт?

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

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

Часто ли используются CMS?

Практически все западные компании используют CMS-ы для управления своими Web-Ресурсами. В России же ситуация несколько другая. Основных причин несколько:

  • Во первых, многие компании до сих пор не считают Web-Сайт значимой составляющей бизнеса. Выделяют деньги на сайт по остаточному принципу и совсем не занимаются его обновлением и улучшением.
  • Во вторых, отсутствие выгодных предложений на российском рынке CMS. Основная часть систем является собственными наработками web-студий и, часто, требует квалифицированного технического персонала для поддержки. Таким образом, Web-Студии навсегда привязывают к себе клиентов. Остальные CMS либо не являются продуктами вообще, либо стоят тысячи, а то и десятки тысяч долларов, что делает их использование экономически нецелесообразным для многих предприятий.
  • В третьих, невозможность использования западных CMS из-за отсутствия документации и поддержки на русском языке и все той же стоимости.
  • Life Site призвана устранить последние две причины, а первая, со временем, станет не актуальной.

Зачем CMS Web-студиям?

Использование таких CMS, как Life Site, выгодно не только компаниям, занимающимся только собственным web сайтом, но и web-сту-диям, так как позволяет значительно снизить издержки на создание сайтов. Опытный web-мастер может создавать сайты на базе Life Site за 2-3 дня. И после этого не надо будет возится с версткой 1000 и 1-й страницы. Клиент сам будет добавлять и редактировать материалы на своем сайте. Вы же будете заниматься тем, что у вас получается лучше всего — дизайном, анализом удобства, рекламой и др. И даже, если добавлением и версткой всего материала будете заниматься вы, делать это будет гораздо удобнее.

Читайте так же:
Красноярскэнергосбыт передача данных счетчика

Кроме того, использование общедоступной и известной CMS, а не продукта собственной разработки, предоставляет web-студии дополнительное конкурентное преимущество.

Наглядный пример удобства CMS: допустим, у вас есть сайт, работающий на CMS Life Site, и вы хотите добавить на сайт новую страницу. Заходим в административный модуль. Сразу перед вами структура сайта, а внизу форма добавления новой страницы.

Вводим имя будущей страницы.

Все! Страница готова! Ее внешний вид полностью соответствует дизайну сайта и ссылка на нее добавлена в меню. Вам только останется зайти в редактирование этой страницы и написать текст. В последствии вы сможете его также легко поменять, сможете легко поменять ее внешний вид, настроить элементы HTML заголовка и многое другое. Все это за пару нажатий мышкой!

Глава 3. Функциональность системы

Структура сайта

Полная структура сайта удобно представлена, в виде дерева. Можно добавлять, удалять и изменять страницы сайта. Для каждой страницы можно: изменить содержание, добавить один из интерактивных модулей, изменить внешний вид, настроить элементы HTML заголовка. Все делается в 1-2 нажатия мышкой.

Интерактивные модули

На данный момент доступны следующие модули:

  • Система публикации новостей
  • Система размещения банеров
  • Форум
  • Гостевая книга
  • Система поиска по сайту
  • Карта сайта

В ближайшем будущем будут внедрены: Каталог продукции Каталог ссылок

  • Картинная галерея
  • Форма отсылки сообщения на E-mail (SMS, ICQ. )
  • Система публикации вакансий
  • и другие интерактивные компоненты

Порядок выпуска и функциональность модулей может быть изменена по просьбам пользователей.

Дизайн сайта

Удобная система шаблонов позволяет настраивать внешний вид любой части сайта. При этом не потребуется никаких специальных знаний. Если же вы не предъявляете особых требований к дизайну, вам будет достаточно сделать всего 1 шаблон!

Меню сайта

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

Для удобства в примерах доступны следующие типы меню:

  • Полностью раскрытое.
  • Список разделов верхнего уровня.
  • Выпадающие меню (реализовано с помощь Java Script)

Cистема публикации новостей

Позволяет гибко планировать размещение новостей на сайте. При отображении, производится сортировка новостей по дате и по приоритету. Для каждой новости можно указать период на который она будет отображаться. Можно создавать несколько новостных лент. Поддерживается архив новостей.

Система размещения банеров

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

Статистика

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

Система авторизации

Позволяет настраивать доступ к различным компонентам управления сайтом и к самому сайту.

Примеры сайтов работающих на базе Life Site

LifeSite.ru

Презентационный сайт системы Life Site. Полностью сделан на базе технологии LifeSite.

YourPage Solutions

Компания разработчик программного обеспечения для Интернет.

Free Mind

Официальный сайт Центра Медицинской Профилактики Наркологических Заболеваний. Санкт-Петербург.

SexyLife.ru

Популярный сексуально-развлекательный портал.

Глава 4. Часто задаваемые вопросы

Что такое CMS?

CMS – Content Management System – это система управления сайтом.

Life Site CMS – это движок?

Да. Слово «движок» — это популярный синоним для CMS систем. В английском варианте используется слово engine.

Чем отличается от хостинга?

Хостинг – это услуга размещения сайта в сети Интернет. Life Site CMS – программный комплекс, предназначенный для удобного создания и управления сайтом. Для удобства наших пользователей, арендующих Life Site CMS, система поставляется вместе с хостингом. Хостинг нам предоставляет одна из лучших серверных площадок Рунета, отобранная на основе жесткого тендера.

Пишем простейший текстовой счётчик

Итак, писать мы будет простейший текстовой счётчик.
Для начала решим для себя, как именно он будет работать.
Всего наш скрипт будет состоять из четырёх файлов :
-Файл для хранения ip пользователей (ip.txt)
-Файл для хранения данных счётчика (counter.txt)
-Сам файл скрипта (counter.php)
-Шаблон вывода счётчика (template.html)

Алгоритм работы очень прост:
-Когда скрипт запускается, он получает ip запустившего его браузера.
-По ip проверяем, были ли уже запросы от этого браузера или нет.
-Если не были — добавляем ip в базу и прибавляем по единичке ко всем счётчикам.
-Если уже были — прибавляем по одному поинту к хитам.
-Выводим данные счётчика.

Читайте так же:
Что значит исполнение счетчика

Отображать наш счётчик будет:
-Просмотров всего
-Просмотров сегодня
-Уникальных посетителей сегодня

Как видите, в теории всё очень просто. На практике не намного сложнее. Создаём все четыре файла.
Текстовые файлы не трогаем — в них будет хозяйничать наш скрипт.
Шаблон вывода оставим на потом. Открываем counter.php и приступаем.

# Начало файла counter.php
counter.php

php
$ip = getenv ( «remote_addr» );
#Получаем ip запустившего скрипт компьютера
$date = date ( ‘d.m.y’ , time ());
#Присваиваем переменной $date текущую дату

#Следующий блок считывает файл с ip адресами
$fo = fopen ( «ip.txt» , ‘r’ );
#Открываем файл
flock ( $fo , 1 );
#»Запираем» файл для чтения. Если кто-то ещё захочет прочитать этот файл — его запрос «встанет в очередь»
$data = fread ( $fo , filesize ( «ip.txt» ));
#Считываем информацию из файла и присваиваем её переменной $data
flock ( $fo , 3 );
# Разблокируем файл
fclose ( $fo );
#Закрываем файл

#Нижеследующий блок повторяет ту же самую процедуру с файлом counter.txt
$f = fopen ( «counter.txt» , ‘r»r’ );
flock ( $f , 1 );
$counts = fread ( $f , filesize ( «counter.txt» ));
flock ( $f , 3 );
fclose ( $f );

list( $d , $total , $hits , $hosts )= explode ( «|» , $counts );
# Проходимся по данным счётчика и присваиваем их соответствующим переменным.
Алгоритм работы простой — идём до разделителя ( «|» ), присваиваем значение первой переменной из list,
идём до следующего разделителя и так далее .

#Проверяем, соответствует ли дата в файле счётчика текущей дате.
Если нет — обнуляем файл с ip файлами и некоторые значения счётчика .
if ( $d != $date )
<
$d = $date ;
#Обновляем дату
$hits = 0 ;
#Просмотров сегодня теперь равны нулю
$hosts = 0 ;
#То же самое с уникальными посетителями
$erase = fopen ( «ip.txt» , ‘w+’ );
#Открываем файл с ключём «w+» — это значит, что данные файла обнуляются и на их место мы записываем новые данные
flock ( $erase , 2 );
#Запираем файл для записи
fputs ( $erase , «» );
#Записываем в файл «всемирное ничто»
flock ( $erase , 3 );
fclose ( $erase );
>

#Теперь проверяем, есть ли ip у нас в базе.
if (! stristr ( $data , $ip ))
# Если нет
<
$file = fopen ( «ip.txt» , ‘a’ );
flock ( $file , 2 );
fputs ( $file , $ip . «rn» );
#Записываем новый ip в базу
flock ( $file , 3 );
fclose ( $file );
$total ++;
$hits ++;
$hosts ++;
#Прибавляем к значениям счётчика по единице
>
else
#Если ip уже есть в базе, прибавляем по единице только хитам
<
$total ++;
$hits ++;
>

#Записываем новые данные счётчика в файл
$wfile = fopen ( «counter.txt» , ‘w+’ );
flock ( $wfile , 2 );
fputs ( $wfile , $d . «|» . $total . «|» . $hits . «|» . $hosts );
#Записываем данные с разделителем («|»), для удобной сортировки, которую мы проводили выше
flock ( $wfile , 3 );
fclosвыше
flock ( $wfile , 3 );
fclose ( $wfile );

#Всё, теперь можно выдавать пользователю показатели счётчика
include ( «template.html» );
?>

Шаблон вывода данных счётчика делается очень просто. Файл template.html выглядит так:

php echo

[ $total :: $hits :: $hosts ]
#Это и есть сам шаблон вывода.

html;
?>
#Конец файла counter.php

Вот и всё, мы написали простой счётчик.
Можно сделать небольшое усовершенствование скрипта.
К примеру, если вы не хотите, что бы кто-нибудь мог посмотреть ip адреса людей,
посетивших сегодня вашу страницу.
Для этого надо поместить текстовые файлы в отдельныю папку,
в этой же папке создать файл .htaccess и написать в нём всего одну строчку:
deny from all

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

На этом разрешите откланяться. Желаю удачи и успехов в постижении нелёгкого дела программиста.

Библиотека GTK+ прошла долгий путь развития и сейчас очень популярна. GNOME, одна из ведущих оконных сред, использует GTK+ почти исключительно, GIMP построен на GTK+, множество коммерческих разработчиков ПО, таких как Abobe, NVidia и VMware, решили использовать эту библиотеку в качестве графической основы для своих продуктов. подробнее

Slashdot.org – популярный новостной портал с посещаемостью 50 млн. человек в месяц. Авторы проекта добились такого успеха, предоставляя пользователям свежие и интересные новости из мира IT. подробнее

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

. и снова о спаме. Кто о нем только не писал, и все писали, что это плохо и ай-яй-яй. Я не буду оригинальничать, и тоже скажу – это плохо. Это ай-яй-яй. Как бороться со спамерами со своей стороны. подробнее

Эта статья даст вам общее представление о том, как создавать, обрабатывать и выводить рисунки в PHP4 для Windows. подробнее

Php счетчик текстовый файл

БлогNot. PHP: делаем «мини-БД» на текстовом файле

PHP: делаем «мини-БД» на текстовом файле

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

Читайте так же:
Завод изготовитель счетчик ств 65

Прежде всего, определимся, что все файлы будут в кодировке Юникод (utf-8). Использовать в качестве текстового редактора стандартный Блокнот нельзя из-за добавляемых им в начало файла меток BOM, а использовать Notepad++ нужно с осторожностью — на пустом файле сразу скажите Кодировки — Кодировать в UTF-8 (без BOM), затем Синтаксис — PHP, потом уже пишите или вставляйте текст и выполняйте Файл — Сохранить. Лучше всего, конечно, встроенный редактор файл-менеджера Far, в котором Вы нажали комбинацию клавиш Shift+F8 и выбрали кодовую страницу 65001 (UTF-8).

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

Warning: session_start() [function.session-start]: Cannot send session cache limiter — headers
already sent (output started at . ) in . function.php on line 2

Определим требования к скрипту. Он должен:

  • состоять из отдельных коротких модулей, чтобы можно было легко читать и модифицировать код;
  • корректно отображаться, например, сразу «понимать» Юникод;
  • не быть чувствительным к настройкам кавычек в PHP и позволять хранить в текстовом файле любые строки, в том числе, со спецсимволами PHP/HTML;
  • разумно фильтровать ввод пользователя, например, избавлять его от лишних разделителей;
  • уметь добавлять, удалять, редактировать и сортировать записи.

В стороне пока оставляем следующие вопросы:

  • надёжную защиту от обращения к формам «со стороны»;
  • защиту от переписывания текстового файла при одновременном обращении к базе нескольких пользователей;
  • авторизацию для доступа к редактированию файла;
  • разбиение вывода базы на «порции» для более удобного редактирования;
  • стили оформления и дизайн проекта.

Формат записи базы определим тоже простейшим — в одной строке текстового файла будут содержаться некое Имя (произвольная строка длиной до 30 символов включительно) и Число (целое значение, занимающие до 6 знакомест). Разделитель записей внутри строки назначим определённой в файле конфигурации константой DIV .

Напишем файлы head.php и foot.php — общие верх и низ всех страниц, подключать их будем оператором include .

Файл head.php
Файл foot.php

Мы включили только минимально необходимые мета-теги — тип документа и кодировку.

Файл config.php будет содержать общие настройки скрипта, пока это только имя файла с данными (предполагается, что он в текущей папке, той же, где и все остальные файлы) и разделитель записей в строке данных. Назначим этим разделителем табуляцию, а защиту от случайного или намеренного ввода пользователем табуляции внутри строк «Имя» и «Число» (например, даже в однострочное поле можно вставить символ табуляции из Буфера Обмена) возложим на функции разбора параметров, которые все разделители в строке сделают пробелами.

Файл config.php

Перейдём к функционалу. Как и любой скрипт, позволяющий пользователю что-то вводить в HTML-формы, наш продукт должен будет фильтровать пользовательский ввод, передаваемый методами GET, POST, и, возможно, через глобальный массив $_SESSION . Как минимум, нужно «критичные» для разметки символы заменить на их «HTML-изображения» стандартной функцией htmlspecialchars, разобраться с настройками «магических кавычек», всё ещё актуальными в PHP версий до 5.4.0 (стандартной функции нет, напишем собственную с именем magic ), удалить в данных пользователя лишние разделители в начале и конце строк, а также между словами (стандартной функции нет, реализуем собственную с именем trimall ).

Чтобы не писать в каждом модуле однотипного кода по обработке параметров, напишем «универсальный» модуль-обработчик параметров params.php , а в конкретных модулях для работы с ним нужно будет определить в массиве с именем $params разрешённые имена получаемых «извне» переменных, например

и подключить сам модуль строкой кода

Всё остальное он сделает сам, в том числе, создаст «пустые» переменные для случаев, если какая-то из разрешённых величин не передана в скрипт.

Файл params.php

Передача данных через массив $_SESSION разрешена однократно, переданные данные сразу удаляются. Это может пригодиться, например, при «возврате» в форму введённых в другом модуле данных.

Хорошо, когда все служебные функции объединены в один модуль, который основные модули подключают через директиву require_once . Мы свой модуль служебных функций назовём function.php и, кроме упомянутых методов trimall и magic , включим туда следующие функции:

  • read() — будет читать текущую базу и возвращать массив записей;
  • write($a) — будет записывать массив записей $a в файл;
  • get_index_by_name ($a,$name) — будет искать по имени $name соответствующую запись и возвращать её номер (с нуля) или значение -1, если запись не найдена. Это пригодится, чтобы отличать добавление новой записи от редактирования существующей.

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

Файл function.php

Обратите внимание, что функция read дополнительно фильтрует массив записей от пустых строк (на всякий случай, вообще-то их не должно возникать), а trimall сначала заменит любую непустую цепочку разделителей на один пробел (вторая preg_replace ), а затем удалит возможные лишние разделители в начале и конце оставшейся строки (первая preg_replace ).

Также есть нюанс с функцией read в смысле совместимости кода. Так как в единственной её строке есть анонимная функция, предполагается использование PHP версии не ниже 5.3. Если надо ниже — замените код на такой, где функция фильтрации именована или совсем не используется, как тут:

Читайте так же:
Счетчик банкнот с детекцией кассида

Также важно корректное приведение строки в Юникоде к нижнему регистру (см. mb_strtolower в коде). А локалью мы здесь не пользуемся.

Кажется, настало время писать основной файл index.php . Он будет решать следующие задачи:

  • выводить форму для добавления новой записи, которую обрабатывает модуль add.php;
  • рядом с формой добавления выведем дополнительные команды — очистка формы «самовызовом» скрипта без параметров (кнопка здесь не подойдёт, т.к. не передаёт на сервер данных) и ссылку для обращения к модулю сортировки записей по имени sort.php ;
  • получать от других модулей результаты их работы в виде числовой переменной $status и выводить соответствующие сообщения (массив $status_msg ). Значение $status , равное нулю, будет принято по умолчанию, ему соответствует вывод краткой справки о работе программы;
  • если база непуста, показать её записи и обеспечить переход к редактированию или удалению.

Чтобы не перегружать таблицу дополнительными кнопками и ссылками, сделаем щелчок по имени переходом к редактированию записи модулем edit.php , а щелчку по полю «Число» будет соответствовать удаление записи модулем del.php .

Вот как всё выглядит при нескольких добавленных записях:

Файл index.php

Теперь займёмся недостающими модулями. У add.php , кажется, простая задача — получить от index.php переменные $name и $number и записать их в файл. Однако, модуль должен проверить, что ему переданы непустые данные, а также уметь отличать ситуацию, когда введено уже существующее в базе имя от ввода новой записи (см. if ($id>-1) < . >else < . >в коде). В последнем случае запись всегда добавляется в конец, ведь будет модуль сортировки строк по алфавиту.

Также важно, что строка $name , «пропущенная» через обработчик параметров, уже лишена «критичных» для разметки символов вроде ‘, «, , а в массиве $a , прочитанном из файла данных, все строки лежат «как есть», и <>123 не будет найдена, если $name после обработки превратилась <>123 . Поэтому функции поиска записи, названной нами get_index_by_name , передаётся строка, преобразованная «обратно» к первоначальному виду с помощью стандартной функции htmlspecialchars_decode (доступна с PHP 5.1). В том же виде строка возвращается обратно в index.php через массив $_SESSION . Это обеспечит некоторое удобство работы — после ввода новой записи её данные останутся в форме и можно будет внести ещё одну запись, мало отличающуюся по имени («Иванова» после «Иванов»).

Ну а сам возврат из модуля в модуль абсолютно типовой — через стандартную функцию header . Помните, что её можно применять, только если модуль ещё ничего не выводил в браузер.

Файл add.php

Теперь о редактировании, оно будет реализовано в edit.php . Форма редактирования — почти такая же, как форма добавления, мы просто поленились сделать отдельную функцию для вывода формы. Важнее то, что модуль сам будет обработчиком данных, переданных через форму редактирования, а значит, должен отличать ситуацию, когда он только вызван, от той, когда пользователь нажал «Сохранить». Последней задаче служит проверка

определяющая, была ли нажата кнопка и переданы все данные. Вторая ветка —

предназначена для ситуации, когда в массиве $a есть запись, номер которой передан скрипту и она должна быть отредактирована. Номер записи сохраняется в скрытом HTML-поле .

Файл edit.php

Модуль удаления записи del.php будет достаточно простым, всё, что ему понадобится — получить допустимый $id записи (номер элемента в массиве $a ), убрать соответствующий элемент из массива, переписать файл и вернуться на страницу главного модуля.

Файл del.php

Наконец, модуль сортировки sort.php породит новую проблему — как сортировать строки в Юникоде по алфавиту, не различая больших и маленьких букв? «Прямая» сортировка с помощью стандартной функции sort подойдёт едва ли — она считает строчную и прописную букву разными символами. Локаль мы не ставили, тем более, для её установки единой формы записи для всех операционок нет.

Ограничимся тем, что из всего многообразия функций сортировки массивов выберем usort с пользовательской функцией сравнения элементов.

Применяемое «прямое» сравнение односимвольных строк Юникода, думается, не совсем корректно, но strcmp сравнивает строки побайтово и нам не подойдёт, а вообще-то корректное сравнение любых строк в Юникоде — очень непростая задача. У меня для русского и английского в системе всё сработало, например, после сортировки получались естественные порядки слов, такие как

Файл sort.php

Нам остаётся создать в папке файл с именем .htaccess , где мы пропишем кодировкой по умолчанию Юникод и укажем директивы настройки кавычек для сайта, чтоб всё работало даже на Денвере.

В этой же папке создадим пустой (0 байт) файл data.txt (необязательно, если все права настроены).

Файл .htaccess

Можете посмотреть, что получилось, и о найденных проблемах сообщить мне, я написал скрипт очень оперативно, в 2 приёма, и мог что-то не продумать 🙂

Скачать все файлы скрипта в архиве .zip (5 Кб)

Php счетчик текстовый файл

Шустрый

Профиль
Группа: Участник
Сообщений: 74
Регистрация: 3.10.2003
Где: Москва

Репутация: нет
Всего: нет

Читайте так же:
Счетчики для panther 56 piusi

Расскажите пожалуйста как сделать простейший счётчик посещений на PHP
или где можно взять достойный пример.

Нужно чтобы показывал:

— Количество запросов к странице
— Количество уникальных посетителей за всё прошедшее время
— Количество уникальных посетителей за сегодня

Связист

Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39

Шустрый

Профиль
Группа: Участник
Сообщений: 74
Регистрация: 3.10.2003
Где: Москва

Репутация: нет
Всего: нет

Цитата(Secandr @ 10.3.2004, 19:09)
CODARZ Лучше потавть что-нибудь наподобии top100 или rambler

Нет, это уже имеется, мне не это надо.
Мне нужен простой счетчик чтоб я мог его на WAP сайт поставить.

Связист

Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39

Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.3.2004

Репутация: нет
Всего: нет

Я вот такой пример нашел

pointless one

Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62

Эксперт

Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?

Репутация: нет
Всего: 6

или на www.woweb.ru

Это сообщение отредактировал(а) -=::BlackCat::=- — 15.3.2004, 20:34

-=::BlackCat::=-

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать?? гррр, админ, форум косячит

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET
  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь
  • Темы «ищу скрипт», «подскажите скрипт» и т.п. будут переноситься в форум «Web-технологии»
  • Темы с именами: «Срочно», «помогите», «не знаю как делать» будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, [email protected] , skyboy, SamDark, MoLeX, awers.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »

[ Время генерации скрипта: 0.1480 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Меняем картинку-счётчик в CNStats или пишем текст на PHP TTF шрифтами.

Решил значит поставить картинку с отображением счётчика. В скрипте статистики CNStats имеется картинка размером 88*31, которую можно менять под свой дизайн. Но тупо менять картинку button.png меня не устраивало, так как в дизайн не впишется. У меня стоят маленькие картиночки 80*15, и статистика должна соответствовать. Пришлось править код. Конечно ничего замудённого там нет(в некоторой степени спасибо программистам CNStats ).

Для того, что бы поменять отображения счётчика, нам нужен файл cnt-show.php, который находиться в корне статистики.

Открываем код и смотрим на строки 18-20, они то и выводят информацию на картинку, сверху вниз: просмотров всего, просмотров сегодня, хостов сегодня.

Ну и для того что бы подогнать вывод текста на изображение button.png нужно менять значения координат x, y.

Показ уникальных посетителей за сегодня.

Ну это ладно, дальше дело заключалось в том, что мне нужно было вывести не просмотров всего, просмотров сегодня, хостов сегодня, а количество уникальных пользователей. Экспериментальным путём было вычислено, что эта информация храниться в записи users в БД. Теперь для того что бы его выбрать, нужно изменить запрос на выбор из БД. Для этого в строчке 12 заменяем t_hits,hits,hosts на users.

И в коде, который выводит текст(цифры) на картинку — меняем $STATS_CONF[«hosts»](ну или смотря какую строку вы изменять собрались) на $STATS_CONF[«users»].

Пишем текст TTF шрифтом на PHP.

Сделав шаблонную картинку счётчика в Adobe Photoshop CS4, я использовал пиксельный шрифт Pixelation.ttf, но! сами цифры выводятся каким то обычным, не красивым шрифтом, который не очень то смориться. Для того, чтобы писать своим шрифтом TTF нужно изменить строчку вывода цифр на картинку.

Тут уже использована другая функция, ImageTTFText, в которой:

Ну и вот отдельный пример, как писать своим TTF шрифтом на PHP.

Ну вот воде и всё, кинул в архив исходники.

Монтаж/Демонтаж и установка пластиковых окон. Профессиональные мастера и только качественные материалы.

Интересные записи

  • SAPE планка 1: 50 руб./сутки
  • Купил лицензионную игру Grand Theft Auto IV
  • Надоело ждать ссылки при скачке с depositfiles.com? Надоела реклама на zaycev.net?
  • Специализированные поисковые системы
  • Ретрекер Corbina или Торрент 100 Мегабит в секунду

Опубликованно Среда, 24 декабря, 2008 в 19:17 в разделе Web(PHP&MySQL). Вы можете подписаться на комментарии к этой записи RSS 2.0. Both comments and pings are currently closed.

2 комментария для “ Меняем картинку-счётчик в CNStats или пишем текст на PHP TTF шрифтами. ”

mike, спасибо. Не видел статью раньше(да в принципе как то и не искал, а надо было).
Насчёт строк, и правда — нет…

Это чисто по русски — изобрести велосипед.

Кроме того, нужно уточнить что в статье идет описание нуленной версии, так как в оригинальной весь код в одну строчку, и строк 18-20 там просто нету.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector