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

XAMPP или чем заменить Denwer

Пишем плагин для WordPress
     Ставим плагин для WordPress "напрямую" с помощью ftp и phpMyAdmin

PHP не оптимизирует...

Проверка ошибок арифметики через error_get_last и эмуляция error_clear_last в PHP5

PHP - кратчайший обзор

Регулярные выражения - это просто
     Сервис для проверки регулярных выражений онлайн
     Регулярное выражение для проверки правильности записи вещественного числа

PHP: почему не нужно искать URL-адреса регулярками

Самое опасное в PHP или eval is evil

Ещё раз про кавычки, удаление пробелов и константы PHP_INI_*

Делаем сессию на PHP - с листингом

Используем статическую переменную класса и динамически формируем имя переменной класса

Класс для измерения временных промежутков и проверка существования функции

Список временных зон для сайта

Скрипт, выводящий собственный текст

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) сервис

Sort & Unique strings сервис

Разбор Юникод-строки на слова и количество гласных в ней

Длина строки в Юникоде и расстояние между строками

Отфонаритель: Узнай Карму Любого Слова :)

42 или Длина Строки

Вычисление 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?

Связь "многие ко многим" между двумя таблицами

Пишем ленту RSS на PHP

Извлечение всех ссылок из документа, заданного URL-адресом

Пишем "облако тегов" на PHP
     Логарифмируем облако тегов

Программная отправка письма с вложением
     Пишем почтовую форму "попроще"

Проверка доступности сервера на PHP
     Проверка доступности сервера на PHP+JQuery

Открыт ли порт на сервере?

Внедрение новой строки во все документы статического сайта

"Перегоняем" большой txt (csv) в sql

Ищем буквы в словаре...

Оцениваем личное распределение абонентов по опсосам :)

Как написать простейший краулер

Собираем ссылки на картинки рекурсивно

Инвертированный индекс на PHP

Расчёты и математика на PHP

Конвертирование римских и арабских чисел

LDE (Linear Diofant Equation) - сервис для решения линейных диофантовых уравнений

Простейший калькулятор на функции PHP eval()

Медиана или среднее?..

Таблица умножения с кликабельными ячейками :)

Сервис для проверки числа на простоту и поиска целых делителей числа
     Эффективный поиск простых чисел на PHP

Повторюша :)

Пишем простой конвертер величин на PHP

Считаем средний балл и успеваемость

Сократить дробь или найти её примерное десятичное представление

"Инновационный" калькулятор или считаем всё сразу :)

Число прописью по-русски

Можно ли работать на PHP с 16-разрядными целыми или упаковываем два в одно

Считаем числа Армстронга

Распределить веса так, чтобы в сумме было 100 процентов

Ищем представление Цекендорфа для чисел

Простой progress bar для отображения процентов

Зачем делать счётные задачи на PHP?

Шахматы: считаем вероятность победы каждого игрока в турнире
     Как просто перебрать все комбинации n исходов для k событий

Задача о ранце 0-1

Максимальное число сцеплением набора чисел

PHP: двумерная таблица с любым содержимым
     PHP: динамическая callback-функция?

PHP: могут ли циклы менять себя сами?

PHP: простой класс-сумматор

Уравнение года - 2019

Задача о периоде цепочки чисел

PHP: извлекаем из текста числа и считаем их "самые нужные" характеристики

Сверхсоставные числа на PHP

Массивы

Фильтрация массива в PHP

Пишем простой тест на PHP
     Тест на PHP: можно ли ещё проще?
     Тест на PHP: можно ли ещё проще, чем проще :)

PHP: весёлый тест о шахматах

Количество раз, которое нужное значение встречается в массиве

Десять алгоритмов сортировки массива на PHP

Сортировка внешнего массива по ключам, а вложенных - по значениям

PHP: поиск и сортировка в массиве массивов

Читаем массив строк, проверяем закрытие тегов в строке и выводим в 2 колонки

Случайные числа, случайная выборка и генерация

Генерация случайных чисел на PHP

ORDER BY RAND()

PHP - простейшая генерация вариативного текста или Пушкинист
     Пушкинист-2, или ещё раз о простой генерации текста по шаблону
     Ещё один универсальный генератор речей

Ответ при наведении, база в 130000 вопросов и Как Выполнить Большой Запрос

Сервис генерации женских имён :)

Шахматный рандомайзер :)

Класс для генерации пары слов "Имя+Фамилия"

Генерируем безопасный пароль на PHP

Дата, время, календарь

UNIX TimeStamp online

Пишем класс на PHP. Класс календаря на PHP

Day Marks Calendar (Календарь с метками дней)

Ввод и обработка диапазона дат на PHP с помощью JQuery.DatePicker

Хранить ли дату как дату :)

Доброе время суток :)

Простое вычисление количества дней между датами?

Сколько до открытия? - виджет со стоп-датами для контроля времени работы винно-водочных магазинов :)

Делаем калькулятор дат и подсчёт дней по-современному

30 февраля или логичный календарь :)

Варианты календаря

Ищем среднее время за сутки

Меняем часовой пояс на сайте без использования php.ini и переписывания кода

Меняем картинку в зависимости от времени года

Последний выходной месяца

PHP: Как организовать цикл по дням века или Даты-палиндромы

Графика на PHP, формирование картинок по правилам

Рисуем звёзды на PHP

Таблица безопасных цветов Netscape на PHP

Кривая Серпинского на 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 Кб

Рейтинг@Mail.ru

вверх гостевая; E-mail