Nickolay.info. PHP |
Раздел содержит некоторые мои скрипты, написанные на PHP. В работе показано не всё - что-то писалось во времена хостинга narod.ru, что-то просто некуда было поместить :) Часть скриптов лежит "в работе" на других серверах.
Статьи и примеры по PHP - ниже в этом документе, там много небольших Web-приложений в исходниках и онлайн. См. также: Perl
В некоторых старых скриптах может быть использован так называемый стиль разработчиков, при котором код PHP помещается в тег вида
<? Код PHP ?>
Для поддержки такого стиля в файле php.ini
должна быть включена директива
short_open_tag = On
- до недавнего времени так и было по умолчанию. Начиная с версий 5.3.X такой тег может по умолчанию не работать,
тогда достаточно во всех файлах с кодом заменить строку <?
на <?php
- чтобы получить
"стиль XML" написания PHP-кода:
<?php Код PHP ?>
Ещё проще включить директиву в Вашем файле настроек php.ini
Если стиль ссылки вот такой, значит, она ведёт на страницу скрипта в блоге.
Скрипты на PHP |
Скрипты на PHP - мультиплатформенные, интерпретатор - не ниже PHP 4.3.1, если не оговорено иного.
Все скрипты (если они требуют настроек) настроены на работу
в папке, созданной непосредственно в корневой папке сервера.
На сервере IIS, встроенном в Windows, при конфигурации по умолчанию эту будет папка с адресом вида
c:\Inetpub\wwwroot\Имя_папки_скрипта
17. Monkey Chess - безумные шахматы для двух обезьянок :)
16. Скрипт статистики шахматного клуба - простая база на 800 строк
15. Simple JQuery Chat - простой чат на JQuery
14. Datediff - определение разницы дат
13. JQuerySite - лента новостей с jQuery
12. SectorDiagram - построение круговой диаграммы на PHP. Страница скрипта SectorDiagram
11. SunRise - определение времени восхода и заката Солнца для текущей даты, продолжительности дня, времени полдня и сумерек для Вашего города (Россия, Украина, Белоруссия, некоторые другие страны). Страница скрипта SunRise
10. Ekmanfaces - скрипт-тест "Лица Экмана"
9. Gallery - простая, компактная, легко настраиваемая фотогалерея на PHP. Не требует MySQL. Страница скрипта Gallery
8. PHPMailer - "скрипт для начинающего спамера" или почта с любого адреса. Также говорится о работе с библиотекой TinyMCE - визуальным Javascript-редактором кода HTML. Страница скрипта PHPMailer
7. User Queries - добавляем на страницу PHP популярные запросы, с которыми на нее приходили с определением поисковиков. Страница скрипта User Queries
6. Geniot - генератор синтаксически правильного русского текста на основе словаря и парадигм предложений. PHP без MySQL, описание и демо - на странице скрипта Geniot.
5. CatsTree - учебный скрипт, иллюстрирующий построение дерева категорий любой сложности за 1 SQL-запрос. Описание и ссылка "скачать" на странице PHP-скрипта CatsTree.
4. Blognot - очень компактный (менее 100 Кб) и функциональный движок блога. Без рекламы, с полным web-администрированием и даже своего рода "облачком тегов". Описание и ссылка - на странице бесплатной версии Blognot.
Скрипты 1-3 весьма старые, в настоящее время будут, без сомнения, заспамлены, зато могут подойти в качестве учебных :)
3. Система управления сайтом MiniCMS. Компактная и простая система для поддержки динамического сайта на PHP+MySQL. Описание и ссылка - на странице MiniCMS.
2. Доска объявлений. Можно отвечать на сообщения, есть поиск по сообщениям. По истечении месяца сообщения автоматически переносятся в категорию "старые". Выполните в MySQL Файл messageboard.sql для создания базы данных. О настройках читайте в файле readme.txt (phpboard.zip, 8 Кб)
1. Гостевая книга. Большой набор картинок для добавления в сообщения, администрирование с банами, список стоп-слов. Не требует MySQL. О настройках читайте в файле readme.txt, на забудьте проверить и изменить содержимое файла config.inc.php (phpguest.zip, 63 Кб)
Статьи и примеры по PHP |
Установка PHP, обзоры языка, общие настройки, особенности PHP
Ставим PHP и MySQL под Windows XP
Установка PHP 5.3.5 под IIS 5.1 или 6.0 (Windows Xp SP2/SP3) - дополнение к предыдущей статье
Установка последних версий PHP, MySQL и PHPMyAdmin под Windows 7 - более новая версия статьи 1
Установка Denwer и Wordpress для полного чайника :)
Если не запускается Denwer...
Решаем проблему с Юникодом в Denwer’e
Как на самом деле удалить Denwer
Denwer 3 и PHP 5.5 - как их подружить?
Заставляем Denwer поддерживать HTTPS
Пишем плагин для WordPress
Ставим плагин для WordPress "напрямую" с помощью ftp и phpMyAdmin
Проверка ошибок арифметики через error_get_last и эмуляция error_clear_last в PHP5
Регулярные выражения - это просто
Сервис для проверки регулярных выражений онлайн
Регулярное выражение для проверки правильности записи вещественного числа
PHP: почему не нужно искать URL-адреса регулярками
Самое опасное в PHP или eval is evil
Ещё раз про кавычки, удаление пробелов и константы PHP_INI_*
Делаем сессию на PHP - с листингом
Используем статическую переменную класса и динамически формируем имя переменной класса
Класс для измерения временных промежутков и проверка существования функции
Список временных зон для сайта
Скрипт, выводящий собственный текст
echo в бесконечном цикле и "бесконечное" время выполнения скрипта
PHP 5.5 и выше: почему "не работает" htmlspecialchars?
Работа с формами, ввод-вывод, обработка данных пользователя
Передаем параметры формы PHP-скрипту
urlencode и urldecode - что нужно для скриптов в однобайтовой кодировке
Разбиваем вывод PHP на страницы
Делаем простую капчу с цифрами
Как защититься от обращения к файлу минуя HTML-форму?
Пишем текстовую капчу на PHP и Javascript
Простейшая авторизация одним файлом (базовый пример)
PHP - проверяем, включены ли в браузере клиента cookies
PHP: авторизация с помощью cookies, простой пример
Защита форм от "доступа со стороны"
Простая проверка количества пользователей онлайн
Связанные списки на PHP и AJAX с минимумом кода
Ещё одна голосовалка на JQuery+PHP :)
Упаковываем и распаковываем файлы zip на сервере
Пишем простой "рейтинг со звёздочками" для сайта
Работа со строками на PHP
NL2BR (New Line To BReak) сервис
Разбор Юникод-строки на слова и количество гласных в ней
Длина строки в Юникоде и расстояние между строками
Отфонаритель: Узнай Карму Любого Слова :)
Вычисление MD5, SHA1, CRC32 онлайн
Программируем HTML Color String
Извлекаем из текста номера сотовых с разными разделителями
Рамка из строки и заполнение рамок
Исключить из массива одинаковые строки независимо от регистра символов
Русская и английская азбука Морзе для текста в Юникоде
Ищем в словаре слова-анаграммы нужной длины
Как переименовать много файлов, давая им имена по порядку
PHP: удаляем пустые строки и сортируем список без RegExp
Заменяем табуляции на пробелы без изменения внешнего вида текста
"Настоящие" таблицы в псевдографике Юникода
Работа с файлами, URL-адресами, почтой и базой данных
Пишем граббер на PHP
Как быстро извлечь нужные данные с чужого сайта и показать у себя
Загрузка файлов на сервер с помощью PHP
PHP: самая простая загрузка файлов
О чтении большого файла на PHP...
PHP: 3 способа масштабирования рисунка при загрузке
Получить массив вещественных чисел из поля ввода
Пример на работу с текстовым файлом в PHP
Читаем числа из текстового файла в массив
Прочитать табличные данные из текстового файла
PHP: делаем "мини-БД" на текстовом файле
Построение дерева каталогов на PHP 5 и PHP 4
Самая простая CMS или пишем элементарный "движок" на PHP
Подключаемся к базе данных (базовый пример)
Простейший скрипт на PHP+MySQL с базой данных и инсталлятором
JQuery: как обратиться из Javascript к базе данных
Разница между массивами и "дырки" в порядке заполнения id
Как скопировать базу данных потаблично без PhpMyAdmin
Как перейти с MySQL на MySQLi?
Связь "многие ко многим" между двумя таблицами
Извлечение всех ссылок из документа, заданного URL-адресом
Пишем "облако тегов" на PHP
Логарифмируем облако тегов
Программная отправка письма с вложением
Пишем почтовую форму "попроще"
Проверка доступности сервера на PHP
Проверка доступности сервера на PHP+JQuery
Внедрение новой строки во все документы статического сайта
"Перегоняем" большой txt (csv) в sql
Оцениваем личное распределение абонентов по опсосам :)
Как написать простейший краулер
Собираем ссылки на картинки рекурсивно
Расчёты и математика на PHP
Конвертирование римских и арабских чисел
LDE (Linear Diofant Equation) - сервис для решения линейных диофантовых уравнений
Простейший калькулятор на функции PHP eval()
Таблица умножения с кликабельными ячейками :)
Сервис для проверки числа на простоту и поиска целых делителей числа
Эффективный поиск простых чисел на PHP
Пишем простой конвертер величин на PHP
Считаем средний балл и успеваемость
Сократить дробь или найти её примерное десятичное представление
"Инновационный" калькулятор или считаем всё сразу :)
Можно ли работать на PHP с 16-разрядными целыми или упаковываем два в одно
Распределить веса так, чтобы в сумме было 100 процентов
Ищем представление Цекендорфа для чисел
Простой progress bar для отображения процентов
Зачем делать счётные задачи на PHP?
Шахматы: считаем вероятность победы каждого игрока в турнире
Как просто перебрать все комбинации n исходов для k событий
Максимальное число сцеплением набора чисел
PHP: двумерная таблица с любым содержимым
PHP: динамическая callback-функция?
PHP: могут ли циклы менять себя сами?
Задача о периоде цепочки чисел
PHP: извлекаем из текста числа и считаем их "самые нужные" характеристики
Массивы
Пишем простой тест на PHP
Тест на PHP: можно ли ещё проще?
Тест на PHP: можно ли ещё проще, чем проще :)
Количество раз, которое нужное значение встречается в массиве
Десять алгоритмов сортировки массива на PHP
Сортировка внешнего массива по ключам, а вложенных - по значениям
PHP: поиск и сортировка в массиве массивов
Читаем массив строк, проверяем закрытие тегов в строке и выводим в 2 колонки
Случайные числа, случайная выборка и генерация
Генерация случайных чисел на PHP
PHP - простейшая генерация вариативного текста или Пушкинист
Пушкинист-2, или ещё раз о простой генерации текста по шаблону
Ещё один универсальный генератор речей
Ответ при наведении, база в 130000 вопросов и Как Выполнить Большой Запрос
Сервис генерации женских имён :)
Класс для генерации пары слов "Имя+Фамилия"
Генерируем безопасный пароль на PHP
Дата, время, календарь
Пишем класс на PHP. Класс календаря на PHP
Day Marks Calendar (Календарь с метками дней)
Ввод и обработка диапазона дат на PHP с помощью JQuery.DatePicker
Простое вычисление количества дней между датами?
Сколько до открытия? - виджет со стоп-датами для контроля времени работы винно-водочных магазинов :)
Делаем калькулятор дат и подсчёт дней по-современному
30 февраля или логичный календарь :)
Меняем часовой пояс на сайте без использования php.ini и переписывания кода
Меняем картинку в зависимости от времени года
PHP: Как организовать цикл по дням века или Даты-палиндромы
Графика на PHP, формирование картинок по правилам
Таблица безопасных цветов Netscape на PHP
Числовые коды русских букв (построитель картинки)
Градиент на PHP
Синий-синий иней
Пишем простой интерпретатор-"рисовалку" на PHP
Генерируем картинку с шахматной доской
Простая столбцовая диаграмма на PHP
Серверная
Пишем собственную страницу обработки ошибок Apache (404 и др.)
Пишем простой генератор файла sitemap.xml
Странная проблема с не менее странным решением (как уменьшить нагрузку на сервер в 50 раз :)
PHP и JSON: легко ли их подружить?
Перехват нужного типа файлов web-сервером или разбор FB2 на PHP
Простейшая защита от DDOS-атаки?
Разное, прочие сервисы и заметки, небольшие скрипты на PHP
И снова обновлять погодный сервис (пробуем openweathermap.org)
Погодный сервис на Yahoo! Weather RSS Feed
Делаем погодный сервис для сайта за 5 минут
Самые маленькие полезные скрипты на PHP :)
Как отобразить по событию HTML значение, полученное из кода PHP?
Привязываем к клиенту Javascript серверную часть на PHP
Модули на PHP для портала SetCMS |
SetCMS (сайт www.setcms.org) - русский свободно развиваемый портал на текстовых файлах.
1. Модуль и блок "План-сетка". Модуль "План-сетка" позволяет администратору SetCMS-портала
управлять картиной распределения ресурсов по месяцам (ресурсами могут быть, например, гостиничные номера). Ресурсы
разбиваются на категории (для гостиничных номеров это категории "Стандарт", "Люкс" и т.п.), в настройках
АдминПанели можно задать категории и число объектов в каждой из них (для гостиницы - число номеров каждого типа), а также
число лет, на которые можно составлять план (по умолчанию 1 год, то есть, можно вывести любой месяц текущего и следующего
года). Заголовок таблицы также задается админом в Настройках модуля.
К модулю прилагается блок, который служит ссылкой на план-сетку текущего месяца и показывает дату/время последнего
редактирования плана плюс процент свободных ресурсов в последнем отредактированном админом месяце.
Версия 1 - упрощенная, там план-сетка выводится на число дней, заданное в настройках, уже прошедшие дни не могут быть
выведены, а в каждой категории находится только 1 объект.
Настройки обычные - т.е., на файлы и подпапки данных, плюс на config.php ставится 777, на остальные файлы - права,
достаточные для исполнения скрипта.
Посмотрите также скриншоты (новые окна)
Версия 2: plan_v2.zip, 6 Кб;
(скриншот 1 - план-сетка, которую видит пользователь;
скриншот 2 - общие настройки в админ-панели;
скриншот 3 - редактирование плана в админ-панели)
Версия 1: plan_v1.zip, 5 Кб;
(скриншот 1 - план-сетка, которую видит пользователь;
скриншот 2 - общие настройки в админ-панели;
скриншот 3 - редактирование плана в админ-панели)
2. Модуль "Сотрудники". Этот модуль позволяет средствами АдминПанели портала управлять записями о сотрудниках Вашей организации. Сотрудники разбиваются на категории (поддерживается 1 уровень категорий, например, "Дирекция", "Менеджеры", "Бухгалтерия" и т.п.), по каждой категории можно заполнять произвольное число произвольных полей, в каждой категории при этом должно быть указано одно главное поле, содержимое которого выводится в списке сотрудников (например, поле "Фамилия"). Первое создаваемое поле автоматически становится главным, потом можно поменять. Каждому сотруднику может быть загружено одно фото.
Возможности пользователя: просмотреть список категорий с числом сотрудников в каждой из них
(скриншот 1), просмотреть список сотрудников в категории
(скриншот 2), просмотреть существующую информацию о выбранном сотруднике
(скриншот 3).
Возможности администратора: в главном разделе 3 основных пункта (скриншот 4).
В общих настройках можно задать число сотрудников на экран, выдаваемое в списке и максимальные ширину и высоту фото.
В редакторе категорий можно добавлять, удалять, перемещать вверх и вниз, а также править поля любой категории. В подредакторе
правки полей (скриншот 5) можно аналогичным образом править отдельные поля, а также
переносить всю структуру полей из другой существующей категории и указывать главное поле. Предусмотрено 3 типа полей - text, url и email. Тип поля влияет только на то, отображается его значение как строка, ссылка на URL-адрес или ссылка на адрес E-mail. Наконец, в редакторе "Сотрудники" (скриншот 6) можно добавлять, удалять, редактировать поля сотрудников, загружать фото созданным сотрудникам, переносить сотрудников в другую категорию (в этом случае предполагается, что структуры категорий совпадают, информация об уникальных для категории полях может быть утеряна), сортировать сотрудников категории по текущему главному полю.
Структура модуля и настройки: структура сохранена в архиве. Настройки прав обычные для портала - в папке modules/persons права, достаточные для исполнения php, в папках files/persons и images/persons - права 777. Аналогичные права могут понадобиться для папки, где php создает временные файлы (чтобы могли загружаться фото).
Для начала работы с модулем достаточно иметь пустой (0 байт) файл categories.set в папке files/persons
Скачать модуль: persons.zip, 10 Кб
![]() |