php примеры скриптов. Скачать пример PHP.


Содержание
Илон Маск рекомендует:  LongDateFormat - Переменная Delphi

Примеры скриптов РНР

Valar Grabber
Граббер позволяет получать контент с большинства DLE-сайтов (не используя RSS), а полученный контент можно использовать на любом сайте, независимо от того, базируется он на популярной CMS или на самописном скрипте. Данную систему можно научить парсить новости с любого сайта, обладая начальными навыками PHP и HTML.
Скачать (471 Kb)

Ashop — онлайн магазин (PHP, MySql)
Каждый новый покупатель, сделавший заказ по партнерской ссылке, будет отмечен в базе данных и сопоставив эти ссылки и реально оплаченные заказы вы сможете вознаградить по заслугам тех ваших партнеров, ссылки которых принесли вам реальные деньги.
Скачать (32,8 Kb)

ParkerLove — мини-служба знакомств
Сие творение призвано помочь Вам создать собственную мини-службу знакомств.
Скрипт работает без какой-либо реляционной базы данных типа MySQL. За неё всё
делают текстовые файлы (конечно, это не очень удобно, но всё же. ).
Скачать (8,96 Kb)

СКРИПТ — Отправка SMS сообщений по Украине
В принципе все и так ясно из названия скрипта.
Поддерживается отправка смс на самые крупные операторы Украины:
Kyivstar Ace&Base, Kyivstar Contract, UMC, Golden Telecom .
Скачать (2,61 Kb)

Новый агентский магазин digiseller.net (PHP)
Вы желаете зарабатывать на продажах в собственном магазине и иметь высокую посещаемость Вашего ресурса? Специально для этого мы создали PHP-скрипты агентского магазина на базе DigiSeller.Net и DigiSeller.ru.
Скачать (73,3 Kb)

Паролирование
MouseAuth (Скрипт паролирования РНР-файлов). Требования: PHP 4.0
Вы можете менять пароль и добавлять любое количество пользователей.
Скачать (2,55 Kb)

Организации защищённого доступа
Обеспечивает достаточно надежную защиту, благодаря использованию сессии и алгоритма шифрования md5.
При введении неверных данных более трех раз — форма для ввода более не показывается (при нажатии кнопки назад). Высылается сообщение админу с информацией о потенциальном нарушителе.
При попытках стороннего доступа (попытка ввести данные с удаленной машины) — высылает сообщение администратору с информацией о потенциальном нарушителе.
Скачать (3,89 Kb)

Подписка-рассылка
Название скрипта: SubsribleMaxGal
Назначение: организация подписки на новости вашего сайта, вашу другую информацию.
Теперь нет необходимости пользоваться бесплатными сервисами подписок, типа subscrible.ru и других.
Скачать (2,94 Kb)

Вывод даты
Вывод текущей даты на русском языке, вне зависимости от настроек сервера.
Праздничная дата отображается другим цветом.
К праздничной дате приписывается соответствующее поздравление.
Скачать (2,96 Kb)

Генератор дорвеев
Ключевые слова (фразы) следует указывать по одному (одной) на строку.
На данный момент идет работа только с латинскими символами,
т.е. русский текст вводить не следует.
Скачать (3,00 Kb)

Генератор посещений (PHP)
В скрипте первоначально установлены следующие режимы:
1×3 — дает увеличение посетителей на 3
1×5 — прирост — 5 посетителей за одно добавление
1×7 — добавит 7 посетителей.
Скачать (8,00 Kb)

Генераторы Трафика для вашего сайта
Генераторы Трафика для вашего сайта 20 штук.
Просто вставте их в свой сайт и хотябы 1 раз в день
набирайте в них адрес вашего сайта и от 50 до 200,
а может и больше посетителей в день вам обеспечены.
Скачать (10,6 Kb)

Мгновенная лотерея
После установки и настройки данного скрипта:
Открываете бутылку шампанского и празднуете открытие собственной лотереи :)
Скачать (8,46 Kb)

Система активной рекламы
Включает в себя:
admin.cgi — скрипт администратирования
auto.cgi — скрипт автосерфинга
autopromo.cgi — скрипт автосерфинга (фрейм)
member.cgi — скрипт пользовательской части
ok_a.cgi — скрипт начисления просмотра (автосерфинг)
ok_r.cgi — скрипт начисления просмотра (серфинг)
promo.cgi — скрипт серфинга (фрейм)
serf.cgi — скрипт серфинга
reg.cgi — скрипт регистрации пользователя
bansite.cgi — скрипт блокировки сайта
birja.cgi — скрипт биржи кредитов
birjpur.cgi — скрипт биржи (покупка)
birjsale.cgi — скрипт биржи (продажа)
birjstat.cgi — скрипт биржи (статистика)
convert.cgi — скрипт конвертации кредитов в WM
forgot.cgi — скрипт напоминания пароля
money.cgi — скрипт ввод/вывод средств
Скачать (70,7 Kb)

Скрипт Club v.1.0
Скрипт полностью готов к работе, но в нем желательно настроить внешний вид.
Здесь изложена пошаговая инструкция по установке скрипта Club v.1.0
Скачать (29,0 Kb)

Поиск
EugineSearch v.1.0
Инструкция по установке и настройке — внутри архива.
Для установки и работы EugineSearch у Вас должен быть доступ к запуску скриптов, написанных на PHP.
Также крайне желательна возможность редактирования файлов .htaccess!
Скачать (3,45 Kb)

Скрипт — сборщик email адресов с plati.ru
Скрипт, работает безупречно!
Единственная проблема это аварийная остановка выполнения для php скриптов.
По умолчанию в настройках PHP дается 30 секунд.
Если у Вас достаточно быстрое соединение с Интернет
то за это время можно собрать не мало адресов!
Скачать (1,64 Kb)

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

Система Раскрутки (abc.net.ru)
В состав входят:
admin.cgi — Скрипт администратора
set.pl — Файл конфигурации скриптов
config.dat — Файл конфигурации count.cgi — Вспомогательный скрипт серфинга
activate.cgi — Скрипт активизации аккаунта
downline.cgi — Скрипт просмотра рефералов пользователя
forgot.cgi — Скрипт напоминания пароля
mail.cgi — Скрипт рассылки писем пользователям
statinfo.cgi — Скрипт просмотра статистики пользователя
info.cgi — Скрипт просмотра/редактирования данных пользователя
member.cgi — Скрипт для входа в аккаунт
newuser.cgi — Скрипт регистрации нового пользователя
start.cgi — Скрипт серфинга
count.txt — Статистика пользователей
Скачать (20,8 Kb)

MyNews News Administration Application
Скрипт для публикации новостей на вашем
сайте с использованием wap
Скачать (38,1 Kb)

Скрипт инвестционного фонда
(wminvest.com)
Скачать (29,3 Kb)

Скрипт моментальной лотереи Кено (PHP)
Моментальная лотерея Кено — игрок выбирает любые 10 чисел от 1 и до 80,
скрипт выбирает любые 20 из этого интервала.
В результате выводятся выпавшие номера, количество угаданных номеров игроком.
Рекомендую для игровых сайтов. В конце скрипта формируется переменная о количестве угаданных номеров игроком — ее легко привязать к величине выиграша или проиграша.
Скачать (2,0 Kb)

Скрипт партнер-программы. — Affiliate Manager
Affiliate Manager is a script that lets you manage the affiliates of your site.
If you have ever browsed the web, you probably have seen the «site link»
buttons (the 88×31 ones).
Affiliate manager creates a network of these link buttons and randomly rotates through them letting you manage a personalized affiliate network.
Скачать (20,8 Kb)

Скрипт партнерской программы с оплатой за клики.
The Comish— Installation and use instructions
There are basically three easy steps to getting The Comish to run.
Once you get it to run, all of the configuring is done from the admin.cgi script via a browser.
Скачать (42,7 Kb)

Скрипт партнерской программы (dweb.ru)
Незабывайте указать ПОЛНЫЙ ПУТЬ В СЕТИ до скрипта если этого
требует сам скрипт (если в нём есть соответствующие переменные
для этого (переменные это слова начинающиеся со знака бакса)).
Скачать (37,6 Kb)

Скрипт пирамиды без mysql
Торговое имя: укажите название своего сайта
Secret Key: значение, которое вы указывали в пункте 3
Result URL: http://www.имя_вашего.сайта/путь_к/файлу/res.phtml
Success URL: http://www.имя_вашего.сайта/путь_к/файлу/pay_s.phtml
Fail URL: http://www.имя_вашего.сайта/путь_к/файлу/pay_f.phtml
Позволять использовать URL, передаваемые в форме: указываете по вашему желанию
Высылать оповещение об ошибке платежа на кипер: указываете по вашему желанию
Метод формирования контрольной подписи: MD5
Скачать (31,8 Kb)

Скрипты сервиса посещений (wm-clicks.com)
Скрипты полностью работоспособны. Но необходимо исправить все пути на правильные пути к Вашему сайту и заменить коды баннерообменки на Ваши Коды баннерообменок. Закачиваете на сервер и используете. Но мы, всеже, рекомендуем использовать эти скрипты как учебное пособие для разработки своих скриптов.
Скачать (65,3 Kb)

Счетчик посещений PHPShow
Этот скрипт предназначен для удобства навигации и изменения дизайна сайта.
Если Вам до этого приходилось при изменении дизайна изменять ВСЕ страницы
сайта(конечно если у вас 10 страниц, то можно и у всех изменить, а если >100?),
то сейчас вам надо изменить только ДВЕ(в зависимости от самого дизайна).
Единственное — Вам придется на страницах вставлять полный путь к рисункам,
архивам и т.п. от корневого каталога.
Скачать (27,1 Kb)

Игра виселица
Содержимое
hangman.php — сам скрипт
parole.txt — набор слов (добавляйте туда свои тоже)
readme.txt — ламерский файл, который можно не читать :)
папка images — картинки всякие
Скачать (105 Kb)

Справочник по CSS. Версия 1.0
Очень подробно рассмотрены множество свойств CSS
для различных броузеров, таких как:
Internet Explorer, Netscape Navigator, Opera .
Скачать (223 Kb)

Get Keywords 1.0
Программа ищет ключевые слова в тексте и создает страничку с ними.
Ваша страничка будет занимать более высокое положение в поисковиках.
Основные свойства:
— автоматический поиск слов;
— ограничение поиска по длине слова и повторению;
— добавление / удаление ключевых слов;
— загрузка ключевых слов из файла;
— создание странички: название, ключевые слова, описание, текст;
— просмотр странички;
— простота в использовании;
Скачать (281 Kb)

Транслятор доски объявления MaxiWorld.Ru
Комплект скриптов, который дает возможность, импортировать в режиме текущего времени, все содержимое доски объявлений Актуальные потребности.
При помощи прилагаемого транслятора, Вы за пару минут, сможете обустроить свой сайт полноценной доской уже имеющей в своей базе тысячи актуальных объявлений.
Скачать (27,2 Kb)

Shop-Script FREE — бесплатное решение для создания интернет-магазинов и каталогов.
Основные возможности продукта:
Навыки программирования не требуются
Стабильная работа на платформах Windows, UNIX, Linux, FreeBSD, MacOS X
Работа с СУБД MySQL
100% открытый исходный код
Интуитивная в управлении панель администрирования
Дружественный интерфейс пользовательской части
Настройка через веб-интерфейс: информация о Вашем магазине, оформление и т.п.
Скачать (813 Kb)

Илон Маск рекомендует:  Оперативная память эпизод ii логическая структура

TSB Mailer v.1.4.3
TSB Mailer — скрипт для немедленной отправки почтовых сообщений
посетителями Вашего сайта. Возможность ведения истории избавит Вас
и Ваших клиентов от проблем, связанных с работой почтовых сервисов.
Письма никогда не останутся непрочитанными, а блокировка по ip адресу поможет избавиться от назойливых отправителей.
Скачать (18 Kb)

TSB Subscription
Скрипт позволяет вести базу данных подписчиков (имя, электронный адрес, время, ip, почтовый сервер), делать рассылку писем, отправлять уведомительное письмо при подписании и отписании от рассылки (свои шаблоны писем), оповещать администратора о новых подписчиках, экспортировать базу подписчиков в почтовые менеджеры.
Скачать (21,9 Kb)

Web Font Viewer
Web Font Viewer — это PHP скрипт, который
предназначен для хранения шрифтов TTF в интернете.
Скачать (185 Kb)

Простые примеры php

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

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

Я постараюсь преподнести вам эти примеры в порядке возрастания их сложности.

Какая версия php у меня установлена

Прежде чем работать с php было бы неплохо узнать установлин ли у вас php и узнать какая именно версия. Выполнять поставленную задачу будем с помощью встроенной функции phpinfo(), которая кроме версии php покажет нам детальный отчёт о всех его настройках.

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

Время на сайте (сервере)

С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 07:42:00 12.11.2020, но в отличии от javascript это время не меняется онлайн, т.е. отображается то время, которое было на сервере в момент загрузки данной страницы.

Чтобы вывести дату на сайте нужно воспользоваться функцией date().

Маленькая хитрость: обычно в конце страницы ставят копирайт так Copyright © Computerlessons.ru, 2007 — 2020. Обратите внимание на вторую дату, она выводится с помощью php и в этом случае не нужно каждый год вручную подправлять число.

Как определить IP-посетителя

При написании скрипта для добавления комментариев неплохо бы кроме вводимых пользователем данных писать в базу данных ещё и его IP-адрес, мало ли пригодится. Узнать IP адрес пользователя можно с помощью функции getenv(‘REMOTE_ADDR’)

Ваш IP: 188.64.174.135

Вычисляем время выполения php-скрипта (загрузки страницы)

При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода:

( ‘ST_T’ , microtime ()); //начало

Контент страницы, скрипты и т.п.

printf ( ‘Страница сгенерирована за %.5f сек.’ , microtime ()- ST_T ); //конец
?>

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

Подсветка php-кода

Вы наверное уже обратили внимание, что на этой странице я привожу примеры php-кодов в цветном варианте. Цветной код удобно читать, нежели чёрно-белый. Например, я мог бы показывать вам коды так:

Но всё же согласитесь, цветной код лучше! Выше я привожу вам пример функции highlight_file(), с её помощью можно выводить на страницу php-код из другого файла. Ниже посмотрите функцию highlight_string(), где можно раскрашивать код непосредственно на странице.

Маленькая поправочка: следите за ковычками внутри этих функций, если используете двойную ковычку «, то внутри используйте только одинарные ‘, если нужно использовать двойную ковычку, то её необходимо экранировать обратным слешем \». То же касается и одинарыных ковычек.

php-скрипт случайных чисел

При написании скриптов случается нужно сгенерировать случайное число, это можно сделать при помощи функции rand().

В данном случае будет генерироваться случайное число от 1 до 100.

Список файлов из папки

С помощью php можно просканировать папку с файлами и вывести результат на экран, возможно вам пригодится это при создании всевозможных файловых хранилищ.

Вот вам пример работы этого скрипта:

Это файлы из папки с примерами к этой статье.

Какой размер файла

Если нужно узнать размер файла, например картинки, то воспользуемся функцией filesize(), она покажет нам размер файла в байтах.

Скачать файл скриптом

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

Если обратиться к файлу с таким скриптом, то начнётся скачивание файла file.zip из папки folder, но пользователь никогда не узнает из какой же папки происходит скачивание, а значит и не узнает его истиного пути, в нашем случае это http://сайт.ру/folder/file.zip

Вот вам живой пример, ссылка ведёт на страницу /lessons/php/14/load.html, но будет скачиваться файл, откуда, попробуйте догадаться.

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

Транслитерация слов с помощью php

Наверное не нужно объяснять зачем нужно транслитерировать русские буквы, это и так понятно.

Пример работы скрипта можно посмотреть в моих сервисах.


Код вы сможете без труда изменить на своё усмотрение.

Сканируем чужие сайты

Вот уж где находка вора, с помощью функции file_get_contents() вы можете открывать на своих страницах чужие сайты.

Злоупотреблять этой функцией не нужно, иначе можно доиграться!

Адрес сайта

С помощью функции $_SERVER[‘HTTP_HOST’] можно сказать пользователю на каком сайте он находится или использовать для подставновки в своих скриптах.

Результат: Вы находитесь на сайте computerlessons.mega8.ru

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

Генерация счета на оплату PDF PHP

С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf – это конвертер HTML в PDF который поддерживает CSS, атрибуты style и другие.

  • Поддерживает большинство свойств CSS 2.1.
  • Поддерживает сложные таблицы, включая индивидуальный стили ячеек.
  • Поддержка изображений gif, png с прозрачностью, bmp и jpeg.
  • PHP => 5.3 с установленными расширениями DOM, GD, MBString, php-font-lib, php-svg-lib.

Проект на GitHub.
Класс с установленным кириллическим шрифтом Arial – dompdf.zip

Для примера сделаем счет на оплату:

Для удобства сформируем массив товаров по которому скрипт выведет таблицу и посчитает итоговую сумму и НДС.

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

Далее нужно сверстать счет в обычном HTML с CSS.

Некоторые замечания:

  • Адреса картинок в должны быть указаны относительно сервера.
  • У таблиц не получится задать ширину колонок тегом .

Примеры кода на PHP

Вывод строк echo();

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

Для начала нам надо создать файл с расширением .php. Как это сделать?

  • Открываем обычный блокнот и жмем «Файл» -> «Сохранить как. «
  • Имя задаем как «my_example.php», тип файла выбираем «All files»
  • Сохраняем файл в корневую директорию сайта (для денвера — это Z:\home\localhost\www\, для xampp: [путь, куда вы установили xampp]/htdocs/)

Ну вот, наш php скрипт уже доступен и выполняется по адресу http://localhost/my_example.php. Другое дело, что выполняться там нечему, т.к. файл у нас с вами пустой. Но это мы сейчас исправим.

Запомните раз и навсегда, что php используется в 75% случаев вместе с html. И наш случай не исключение. Объясню подробнее.

Файл .php воспринимается сервером как и обычный файл .html, но с одним правилом: всё, что содержится между , исполняется компилятором, т.е. это считается уже не за разметку html, а за программный код.

Итак, давайте заполним наш файл следующим кодом и посмотрим, как эта страница отобразится в браузере по адресу http://localhost/my_example.php:

Оператор echo дает команду вывести на экран. После любого оператора ставится точка с запятой, обозначающая окончание логически-завершенного действия. Как вы видите: выводить можно как обычные строки, заключенные в кавычки, так и результаты вычислений, заключенные в скобочки. В результате (в браузере) мы не увидим наш болк кода , а увидим лишь результат его выполнения.

Также, как вы уже успели заметить, из блока с помошью оператора echo(); можно выкидывать на страницу не только текст, но и теги, как мы и сделали с тегом
: он коректно обработался браузером и на его месте возник перенос строки.

Цикл while()

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

  • Вывод товаров из базы данных
  • Вывод чисел месяца
  • Рассылка письма клиентам
  • и т.д.

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

Результатом будет вывод 149 строк текста. Точка в операторе echo() обозначает соединение (сложение) двух строк между собой. После каждой итерации цикла мы увеличиваем переменную $i, которая учавствует в условии, а следовательно цикл когда-либо закончится.

Данных начальных знаний нам вполне хватит, чтобы разобрать пример подключения и вывода данных из БД MySql.

Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!

скрипты pHP

Сервер Apache.

Данный раздел сайта создан, отлажен и протестирован на домашнем компьютере с установленным сервером Apache, Perl, PHP, SendMail, MySQL, phpMyAdmin. Подробную информацию об установке и проверке работоспособности этих программных продуктов вы можете найти на страницах сайта.

В этом разделе вы можете также узнать (на работающих примерах) — как правильно включать в страницы сайта:

Директивы SSI

SSI — Server-Side Includes, включения на стороне сервера — набор команд, позволяющий значительно дополнить содержимое вашего ресурса необходимой информацией.

Perl скрипты.

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

PHP скрипты.

PHP (PHP: Hypertext Preprocessor) — интерпретируемый язык программирования веб-приложений, код которого непосредственно включается в текст HTML- документов. Исполняется как модуль Apache (SAPI) или CGI-программа на стороне сервера. После обработки интерпретатором PHP, сервер заменяет код PHP результатом его выполнения и передает на браузер. Клиент получает сгенерированную PHP-скриптом страницу HTML (PDF, Flash, XML, PNG и др.).

Переписав или создав самостоятельно страницы сайта, аналогичные приведенным в этом разделе и разместив их в каталоге —

C:/httpserver.ru/www/

(если устанавливали сервер Apache по приведенным здесь рекомендациям), вы получите главный сайт сервера Apache. Он будет установлен на последних, доступных в настоящее время версиях серверных программных продуктов:
Apache 2.2.14,
ActivePerl-5.8.8.824,
PHP 5.2.8,
MySQL 6.0,
phpMyAdmin 2.11.6
Таким образом, вы будете иметь самое современное серверное программное обеспечение, какое не сможет вам предоставить ни один хостинг-провайдер.

Ниже вы видите календарь. Это результат выполнения Perl скрипта, вызванного директивой:

Главный сайт сервера Apache — скрипты php.

Так как, механизма SSI (Server Side Include — включения на стороне сервера) бывает недостаточно, то для сложных задач рекомендуется использование PHP.
PHP (PHP: Hypertext Preprocessor) — интерпретируемый язык программирования веб-приложений, код которого непосредственно включается в текст HTML- документов и имеющий много общего с C, Java и Perl. Исполняется как модуль Apache (SAPI) или CGI-программа на стороне сервера. После обработки интерпретатором PHP, сервер заменяет код PHP результатом его выполнения и передает на браузер. Клиент получает сгенерированную PHP-скриптом страницу HTML (PDF, Flash, XML, PNG и др.). PHP был создан специально для разработки Web-приложений. Начиная с пятой версии, PHP наряду с процедурным, включает некоторые механизмы поддерживающие философию объектно-ориентированного программирования (ООП), которая в предыдущих версиях была только обозначена.
Возможности PHP не ограничиваются только генерацией HTML-страниц. Имеется механизмы для формирования изображений, PDF и Flash (используя libswf и Ming) файлов, выдачи любых текстовых данных. PHP также способен автоматически генерировать и сохранять их в файловой системе сервера, организуя кеш динамического содержания, расположенный на сервере.

Чтобы отлаживать созданные вами или готовые php скрипты, на локальном (домашнем) компьютере, необходимо установить:

Apache HTTP Server 2.2.14

Следуя, приведенным рекомендациям, вы получите
рабочий сервер Apache 2.2.14

Подробная информация по установке, на страницах: Apache — этапы установки и Apache 2.2.14 — установка.

и интерпретатор PHP из PHP 5.2.8 zip package

Следуя, приведенным рекомендациям, вы установите
интерпретатор PHP

Подробная информация по установке, на страницах: установка PHP 5.2.8 zip и установка PHP 5.2.8 installer.

После установки и проверки работоспособности сервера Apache и интерпретатора PHP,
можно приступать к созданию и тестированию скриптов php.

Создайте страницу с расширением .php, например — index.php
и включите в неё строку:

echo ‘ Вы уже используете скрипты на языке PHP ‘ ; ?>

echo ‘Вы уже используете скрипты на языке PHP’; ?>

Работа с формами в PHP

Формы

Формы — это часть языка HTML. Формы нужны для передачи данных от клиента на сервер. Чаще всего формы используются для регистрации пользователей, заполнения анкет, оформления заказа в интернет магазине, и так далее.
Через формы можно отправлять как простую текстовую информацию, так и файлы.
Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

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

PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

  • Регистрация и аутентификация пользователя;
  • Отправка комментариев на форумах и социальных сетях;
  • Оформление заказов.

Практически любой современный сайт содержит как минимум несколько разных HTML-форм.


Отправка формы

Рассмотрим один типичный пример — форма обратной связи. Для связи пользователей с авторами сайта, как правило, используются формы обратной связи, где человек указывает имя, почту для обратной связи и текст своего сообщения.
Такая форма в HTML может выглядеть следующим образом:

Это очень простая форма, состоящая из трёх полей и одной кнопки отправки.

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

Тут есть два важных отличия от первого примера:

  • Добавился новый атрибут enctype , который всегда должен иметь значение multipart/form-data . Если его не будет, то файл не отправится.
  • Сам файл загружается при помощи поля с типом «file».

В PHP загруженный файл будет доступен в другом специальном массиве — $_FILES .

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

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

Перемещение загруженного файла

Для перемещения файла нужно знать, где он находится сейчас, и адрес папки, в которую он будет переноситься.
С текущим адресом всё крайне просто — он уже находится в массиве $_FILES . Новый адрес файла, в свою очередь, состоит из пути к папке и имени файла. Так как папка uploads находится там же, где и текущий сценарий, получить путь к ней можно так: dirname(__FILE__) .

Код для перемещения файла в новую папку:

Функция move_uploaded_file() выполняет два действия:

  1. Проверяет, что файл действительно загружен через форму.
  2. Перемещает загруженный файл по новому адресу.

Валидация формы

Валидация формы — это проверка содержимого её полей. Задача такой проверки — убедиться, что необходимые поля заполнены, а значения в них соответствуют ожидаемому формату.
Так, например, при регистрации пользователя на сайте, он должен заполнить поля с адресом электронной почты и придумать себе пароль. Оба поля обязательны к заполнению, но значение из поля email также должно быть корректным email-адресом.
Помимо текстовых значений формы, можно проверять формат и размер загружаемых файлов.

Общий подход к валидации

При выполнения валидации любой формы порядок действий будет всегда одним:

  1. Сформировать массив с именами полей, обязательных к заполнению.
  2. Сформировать массив с правилами для валидации формата полей.
  3. Получить значения всех полей.

PHP скрипты

Система PHP-скриптов, называемая Proxy Checker, была изобретена для облегчения поиска рабочих прокси-серверов пользователям интернета.

PHP скрипт для редактирования записей в таблицах MySQL.

Скрипт прогресс бара, написанный на PHP + AJAX + JQuery.

PHP скрипт для генерации штрих кодов в различных форматах: Codabar, EAN-8, EAN-13, Code11, Code39, Code93, Code128, ISBN, Standard 2 of 5, Interleaved 2 of 5, MSI Plessey, UPC Extension 2, UPC Extension 5, UPC-A, UPC-E и PostNet.

СамоПис CMS — самописный движок для создания уникального и высокопроизводительного сайта, его характеристики.

PHP-скрипт для конвертирования аудио-файлов различных форматов в формат MP3 или WAV.

PHP-скрипт может создавать и проверять HTML-формы, а также генерировать ошибки при неправильном пользовательском вводе.

PHP класс для создания штрих-кодов в изображениях или PDF-файлах.

PHP скрипт для управления и получения информации из YouTube, используя его API.

Хороший скрипт AJAX календаря, написанный на JavaScript и PHP. Использует библиотеку jQuery.

Реализации на PHP нейронных сетей с использованием алгоритма обратного распространения.

PHP-скрипт для применения расширенных эффектов обработки изображений.

Этот PHP скрипт может генерировать карту сайта из указанных списков URL адресов.

Многофункциональный файловый менеджер «Responsive FileManager» для WYSIWYG редакторов tinyMCE 4, CKEditor и CLEditor. Можно также установить как автономный или кросс-доменный файловый менеджер. Использует адаптивный дизайн.

PHP пакет для организации и управления гостевой книгой или простым блогом используя базу данных MySQL.

Скрипт для организации голосования на сайте с защитой от накруток. Написан на языке PHP и использует технологию AJAX для асинхронной обработки голосования, не перезагружая страницу браузера.

PHP-скрипт который может выполнять несколько типов операций для выполнения запросов доступа к HTTP- и FTP-серверам с помощью CURL-функций.

PHP-скрипт может посылать HTTP-запросы на веб-сервер, используя прокси.

PHP-скрипт для шифрования и расшифровки данных алгоритмом AES Rijndael, который поддерживает ключи длиной 128, 192 и 256 бит.

PHP скрипт краулер (crawler), генерирующий карту заданного сайта в XML формате.

PHP-скрипт для составления и генериации RSS 2.0 лент.

Скрипт может создавать изображения с выровненным текстом в нем.

Скрипт для создания рейтинга к какому-либо содержимому в виде звёздочек. Скрипт использует технологию AJAX для обновления рейтинга без перезагрузки страницы браузера.

Данный PHP скрипт используется для парсинга CSV файлов.

PHP скрипт для рисования (генерации) гистограмм (столбчатых диаграмм).

Blog Criptkiller — PHP движок блога на текстовых файлах (без использования СУБД).

PHP PDF генератор без использования библиотеки PDFlib.

Этот PHP скрипт тестирует производительность PHP кода.

PHP скрипт для управления учетными записями и организации платежей виртуальной валюты Bitcoin.

Этот PHP-скрипт создаёт анимацию в PNG формате из отдельных изображений.

Этот скрипт может загружать файлы с помощью AJAX интерфейса и выводить список файлов из директории загрузки.

PHP-скрипт Капчи для защиты от автоматизированной обрабоки HTML-форм. Есть функция — «обновить изображение», обновление происходит с помощью AJAX.

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

PHP-скрипт для создания CSV-файла из значений в массиве.

Скрипт чата на PHP, использующий для сохранения данных кэш-системы APC, MemCache, Eaccelerator или XCache.

Данный скрипт может разделять результаты запроса к MySQL на страницы, и обновлять информацию с помощью AJAX.

Калькулятор на PHP для выполнения простых математических операций.

PHP скрипт для выполнения программ на удаленных компьютерах с помощью Secure Shell (SSH).

PHP-скрипт для управления учетными записями и аутентификацией пользователей, используя базу данных MySQL.

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

PHP-скрипт для управления изображениями в форматах GIF, PNG или JPEG. Скрипт может выполнять несколько типов операций над изображениями.

PHP-скрипт для отправки сообщений электронной почты с вложенным PDF-файлом.

Все для создания своего сайта

В прошлый раз мы рассмотрели вариант формы для загрузки файла. Сегодня подробно разберем скрипт-обработчик загрузки файла на языке php.

Код файла обработчика следующий:

Скрипт загрузки файлов на сервер php

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

В начале присваиваем переменной $_POST[‘action’] значение $action , затем проверяем содержит ли $action значение send. Если равенство $action==”send” верно, значит данные пришли именно из нашей формы и запускаем работу скрипта.

Далее, проверяем наличие файла в глобальном массиве $_FILES , проверяем существование файла при помощи функции empty()

if(empty($_FILES[‘myfile’][‘name’])),

если глобальная переменная $_FILES пустая, прекращаем работу скрипта и выводим ошибку («Вы не выбрали файл для загрузки»).

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

Проверяем размер загружаемого файла. Это очень просто — все прописано в любом файле в самом массиве $_FILES[`myfile`][`size`]; Допустимый размер вы задаете сами в переменной $filSIZE=10000; Напишите любое число которое вам нужно. Если с объемом файла все в порядке и он не превышает вами заданный размер, можно приступать к загрузке файла на ваш сервер.

Тут есть один нюанс: название файла можно менять или переименовать его по своим правилам.

Названия многих файлов могут совпадать и содержать одни и те же имена. Например, 1.jpg, file.jpg, default.png и так далее. Вариантов масса и если имена совпадут, своего нужного файла вы не найдете. Поэтому будем переименовывать файлы по своему алгоритму.


Как создать уникальное имя для своего файла?

Об этом написана целая тема и прочитать можно здесь. А пока идем дальше. Копируем временный файл $_FILES[‘myfile’][‘tmp_name’] в ту директорию или папку, где будут храниться все файлы, которые вы будете загружать к себе на сервер.

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

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

Система помощи Content Downloader

основы работы с программой

Подключение php скриптов к шаблону вывода (макрос PHP_SCRIPT)

К шаблону вывода можно подключить любой php-скрипт, которому будут отправляться POST-данные при парсинге контента. С помощью макроса шаблона вывода PHP_SCRIPT вы можете отправить любой код (или текст) скрипту и получить от него ответ в виде обработанного кода. Также можно добавлять данные в MySQL-базу на сервере.

Обратите внимание на опции макросов PHP_SCRIPT

В опциях можно выбрать библиотеку для отправки запросов, рекомендуется использовать Clever Internet Suite (так как она более продвинутая). Библиотеку INDY в PHP_SCRIPT мы решили оставить. Ее использование отличается в написании параметров макроса. Хелп по использованию макросов PHP_SCRIPT с библиотекой INDY ниже в спойлере.

ВАЖНО: отправляемые данные должны браться во внутреннюю функцию PHP_SCRIPT — [DATAENCODE]…[/DATAENCODE] , которая закодирует данные в URL-кодировку (PHP-скрипт на сервере (куда вы отправляете данные) автоматически расшифрует эти POST-данные из URL-кодировки при их получении)! Только так можно отправлять многострочный текст, русский текст или html-код!

data=[DATAENCODE] [/DATAENCODE] data2=[DATAENCODE] [/DATAENCODE]

В шаблоне вывода может быть сколько угодно много подключенных скриптов.

Простой пример PHP-скрипта, который получит данные из POST-параметра data и вернет их в программу:

Для того, чтобы программа приняла текст от скрипта в UTF-8 кодировке, необходимо поместить [UTF-8] в конец ссылки на скрипт:

data=[DATAENCODE] [/DATAENCODE] data2=[DATAENCODE] [/DATAENCODE]

Как передать HTTP-заголовки в PHP_SCRIPT (по умолчанию они берутся из поля custom headers в ctrl+h):

HTTP-заголовки указываются в параметре HEADERS:

Accept-Encoding: UTFX Accept: HTML data=[DATAENCODE] [/DATAENCODE] data2=[DATAENCODE] [/DATAENCODE]

Данные в скрипт отправляются методом POST. Имена POST-параметров вы указываете сами. Если вы хотите отправить в скрипт несколько параметров, то разделяйте переносом строки, например:

data=123 title=567 img=777.jpg

ВАЖНО: Отправляемые МНОГОСТРОЧНЫЕ значения параметров должны браться в [FIELDVALUE]…[/FIELDVALUE]

data=[FIELDVALUE] [/FIELDVALUE] data2=[FIELDVALUE] [/FIELDVALUE]

Отправить POST-данные, как текст можно с помощью параметра [TEXTDATA]

Также можно отправлять файлы с локального диска (добавив к началу нужной строки оператор [SUBMITFILE])

data=[FIELDVALUE] [/FIELDVALUE] data2=[FIELDVALUE] [/FIELDVALUE] [SUBMITFILE]file=C:\\File.txt

В шаблоне вывода может быть сколько угодно много подключенных скриптов.

Простой пример PHP-скрипта, который получит данные из POST-параметра data и вернет их в программу:

Для того, чтобы программа приняла текст от скрипта в UTF-8 кодировке, необходимо поместить [UTF-8] в конец ссылки на скрипт:

data=[FIELDVALUE] [/FIELDVALUE] data2=[FIELDVALUE] [/FIELDVALUE]

Как передать HTTP-заголовки в PHP_SCRIPT (по умолчанию они берутся из поля custom headers в ctrl+h):

HTTP-заголовки указываются в параметре HEADERS:

Accept-Encoding: UTFX Accept: HTML data=[FIELDVALUE] [/FIELDVALUE] data2=[FIELDVALUE] [/FIELDVALUE]

Примечание 1: В дереве макросов шаблона вывода (ctrl+2) вы можете найти множество PHP_SCRIPT: PHP_SCRIPT_0, PHP_SCRIPT, PHP_SCRIPT_2, PHP_SCRIPT_3, PHP_SCRIPT_4, PHP_SCRIPT_5. Все они работают одинаково, только выполняются в разное время (в определенном порядке). Зная это вы можете вызывать, например, макрос PHP_SCRIPT внутри макроса PHP_SCRIPT_2 (так как сначала выполнится PHP_SCRIPT, и только потом PHP_SCRIPT_2).

Примечание 2: Если вы используете PHP_SCRIPT для импорта данных в базу MySQL, не забывайте экранировать спец символы в отправленных данных функцией mysql_real_escape_string (http://sbfactory.ru/cd/?p=419):

Примечание 3: Если при работе макроса вы получаете ошибку запроса типа:

HTTP/1.1 400 Bad Request или The unknown error was occured: 80090326

Попробуйте поставить другие настройки HTTPS для библиотеки Clever Internet Suite (она используется для отправки POST-запросов в макросах

Также учтите, что для загрузки данных на некоторых сайтах требуется ввести HTTP-заголовки запроса. Как это сделать написано выше. Для получения нужных HTTP-заголовков можно воспользоваться монитором сети в браузере Firefox (shift+ctrl+e).

Connect, read timeout, user agent, и custom headers для макросов PHP_SCRIPT берутся из окна настроек HTTP-запросов программы (ctrl+h). Учтите, что сменить user agent (и другие HTTP-заголовки) для макросов PHP_SCRIPT можно с помощью параметра (читайте про выше). Например, для отмены применения custom headers из окна ctrl+h достаточно указать пустой или заполненный параметр , а для смены user agent нужно просто указать в параметре строчку с новым user agent.

Дополнительные возможности

(оценок: 14, средний балл: 5,00)

Создаем документ PDF из PHP скрипта с помощью библиотеки FPDF

В данном уроке показано, как использовать бесплатную библиотеку FPDF для генерации PDF документа из PHP скрипта.

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

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

В данном уроке мы создадим прекрасный 2-х страничный документ PDF с помощью PHP. Мы будем использовать библиотеку FPDF.

Вот что должно в конечном итоге получиться:

Установка FPDF

Для использования FPDF нужно установить его на сайт. Скачайте архив FPDF и распакуйте его в папку fpdf , которую надо создать в папке вашего сайта.

Начинаем писать скрипт PHP

Теперь у вас есть установленный FPDF и можно начать писать скрипт PHP для генерации отчета в формате PDF. Создаем файл report.php в той же папке, где вы создали папку fpdf и открываем его в текстовом редакторе.

Первое, что нужно сделать — включить библиотеку FPDF. Библиотека называется fpdf.php и располагается в папке fpdf :

Теперь добавим несколько переменных для конфигурации:

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

  • Различные цвета, которые используются в отчете. Каждый цвет задается как массив из трех элементов, который содержит значения для красного, зеленого и голубого цветов (в диапазоне 0-255).
  • Заголовок отчета («2009 W >Создаем титульную страницу

Теперь можно приступить к построению PDF. Сначала создаем титульную страницу отчета. Оно содержит логотип компании и название отчета, расположенные по центру страницы.

Создаем объект FPDF

Сначала нужно создать новый объект FPDF, который будет содержать данные PDF. Конструктор FPDF принимает 3 аргумента:

  • Ориентация страницы. Используйте ‘P’ для книжной ориентации страницы, или ‘L’ для альбомного расположения листа. По умолчанию используется ‘P’ .
  • Единицы, которые используются для измерений на странице. Используйте ‘pt’ , ‘mm’ , ‘cm’ , или ‘in’ . По умолчанию используется ‘mm’ .
  • Формат страницы. Возможные значения: ‘A3’ , ‘A4’ , ‘A5’ , ‘Letter’ , и ‘Legal’ . Или вы можете задать пользовательские значения для ширины и высоты в двумерном массиве. По умолчанию используется ‘A4’ .

Например, устанавливаем книжную ориентацию страницы, миллиметры в качестве единиц измерения и формат A4:

Устанавливаем цвет текста

Теперь установим цвет текста на странице. Делаем это с помощью метода FPDF SetTextColor() , передавая ему значения для красного, зеленого и синего цветов (каждое значение лежит в диапазоне 0-255). Используем значения цветов в массиве $textColour, который был создан в разделе конфигурации:

Создаем страницу

Теперь мы готовы создать новую пустую страницу в документе PDF с помощью вызова метода FPDF AddPage() :

Добавляем изображение логотипа

FPDF позволяет просто вставлять изображения на страницу. Нужно вызвать метод Image() со следующими аргументами:

  • Путь к файлу с изображением. Это может быть абсолютный путь, или относительный к скрипту PHP script. Также можно использовать URL.
  • Положение X и Y левого верхнего угла изображения на странице документа PDF. Если опустить данные аргументы, то будет использована текущая позиция.
  • Ширина и высота изображения в документе PDF. Если опустить оба значения, то будут использовать оригинальные размеры изображения (при 72 DPI). Если опустить одно значение, то другое будет вычисляться автоматически.
  • Тип изображения. Допустимые значения включают: ‘ JPEG’ , ‘PNG’ и ‘GIF’ (в верхнем или нижнем регистре при написании). Если опустить данное значение, то FPDF будет распознавать формат по расширению имени файла.
  • URL ссылки для изображения. Указывается опционально — если указан URL, то изображение становится ссылкой, которая воспринимает нажатия кнопки мыши.

Все величины, такие позиция X и Y, высота и ширина, используют единицы измерения, указанные при создании документа PDF (в данном случае миллиметры).

Вы можете создать ваше собственное изображение логотипа (нужно использовать разрешение 300 DPI) или использовать изображение из исходников. Сохраните изображение в той же папке, что и скрипт PHP, а затеем вставьте изображение в документ PDF с помощью следующей команды:

Устанавливаем шрифт

FPDF позволяет установить шрифт, стиль и размер для текста в документе PDF. Для этого используется метод SetFont() со следующими аргументами:

  • Семейство шрифтов. Вы можете использовать следующие стандартные имена для семейств шрифтов: ‘Courier’ , ‘Helvetica’ , ‘Arial’ , ‘Times’ , ‘Symbol’ , или ‘ZapfDingbats’ .
  • Стиль шрифта. Можно использовать: » (обычный), ‘B’ (полужирный), ‘I’ (курсив), и ‘U’ (подчеркнутый). Можно использовать комбинации опций — например, ‘BU’ для полужирного подчеркнутого текста.
  • Размер шрифта. Указывается в пунктах (по умолчанию используется значение 12 пунктов).

Для названия отчета на титульной странице используем шрифт Arial Bold размером 24 пункта:


Можно импортировать любой шрифт TrueType или Type 1 с помощью метода AddFont() . Для более подробных сведений надо почитать руководство по FPDF .

Добавляем текст

Теперь можно добавить название отчета. Объект FPDF использует концепцию «текущая позиция», куда вставляется следующая часть текста или другой элемент. Так как нужно, чтобы название отчета располагалось в середине страницы, необходимо передвинуть текущую позицию вниз к данной точке, которая располагается на расстоянии 160мм от верха страницы (значение хранится в конфигурационной переменной $reportNameYPos ). Для этого используется метод FPDF Ln() , который добавляет перевод строки на указанное расстояние:

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

Теперь добавим название отчета. Существует несколько различных способов добавить текст с помощью FPDF. В нашем случае используем метод Cell() , который, помимо всего прочего, позволяет легко центрировать текст.

Cell() принимает следующие аргументы (все являются опциональными):

  • Высота и ширина ячейки. По умолчанию ширина растягивается до правого поля, а высота устанавливается в 0.
  • Строка текста для вывода. По умолчанию » .
  • Указание для отображения рамки вокруг ячейки. Это может быть либо число ( 0 =нет рамки, 1 =рисуем рамку), или строка с одним или несколькими параметрами из следующего списка: ‘L’ (слева), ‘T’ (сверху), ‘R’ (справа), и ‘B’ (внизу). Значение по умолчанию: 0 .
  • Куда помещать текущую позицию после вывода ячейки. Значение может быть 0 (справа от ячейки), 1 (начало следующей строки), или 2 (ниже). Значение по умолчанию: 0 .
  • Выравнивание текста. Возможные значения: ‘L’ (выравнивание по левому краю), ‘C’ (выравнивание по центру), или ‘R’ (выравнивание по правому краю). Значение по умолчанию: ‘L’ .
  • Нужно ли заливать фон ячейки цветом. true = заливаем цветом, false = оставляем фон прозрачным. Значение по умолчанию: false .
  • URL ссылки. Если задан, то ячейка с текстом становится рабочей ссылкой на другой ресурс.

Теперь с помощью метода Cell() вставим название отчета и выровняем его по центру:

Создаем колонтитул страницы и вводный текст

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

Сделаем колонтитул страницы. Добавим новую страницу, затем выведем текст колонтитула, который содержит название отчета, выровнен по центру страницы и использует шрифт Arial размером 17. Используем переменную конфигурации $headerColour для установки цвета текста:

Теперь перейдем к тексту. Сначала выведем заголовок в обычном цвете и шрифтом Arial размером 20. Так как нам не нужно центрировать текст, можно использовать простой метод Write() , передав ему высоту строки и текст для вывода (в качестве опции можно также передать адрес URL для формирования ссылки):

Теперь можно вывести текст введения шрифтом Arial размером 12. Здесь есть пропуски 16 мм от первого абзаца и 12 мм между параграфами. Задаем для каждой строки высоту в 6 мм:

Метод Write() автоматически переводит текст на следующую строку, когда он достигает правой стороны страницы.

Добавляем данные

Теперь нужно добавить таблицу с данными ниже текста. сначала установим цвет рамки таблицы. Метод SetDrawColor() устанавливает цвет, который используется для рамок и других линий, так что мы можем использовать его для установки цвета для рамок ячеек таблицы. Затем текущую позицию опускаем вниз на 15мм для создания пробела между текстом и таблицей:

Создаем строку заголовков таблицы

Таблица имеет строку, которая содержит в ячейках заголовки столбцов «PRODUCT», «Q1, «Q2», «Q3», и «Q4». Ячейка «PRODUCT» использует отличный от других заголовков цвет текста и фона.

Мы уже пользовались методом SetTextColor() для установки цвета текста. Для установки цвета фона надо использовать метод SetFillColor() , который имеет такие же аргументы как SetTextColor() .

Чтобы создать ячейки таблицы используется метод Cell() , которому задаются ширина и высота ячейки, содержание и выравнивание. Также передается 1 в качестве 4-го аргумента для установки рамки, и true в качестве 7-го аргумента для заполнения фона установленным цветом.

Ниже приведен код для создания строки заголовков. Сначала устанавливается полужирный шрифт. Затем создается ячейка «PRODUCT» с соответствующим текстом и фоном. Затем устанавливается цвет для оставшихся 4 ячеек заголовков, и выполняется цикл по элементам массива $columnLabels для вывода ячеек с выравниванием текста в них по центру:

Пробел в начале содержимого ячейки «PRODUCT» помогает сформировать отступ в ячейке таблицы от левой границы. Такой же трюк будет использоваться для наименований продуктов в крайнем левом столбце (к сожалению, пока нет способа контролировать отступ в ячейках с помощью FPDF).

Создаем строки с данными

Остальная таблица состоит из 4 строк с данными продаж (по одной строке на продукт) для 4-х кварталов. Сначала определим пару переменных:

Переменные служат для:

$fill : Заполнять фон ячейки цветом или нет. Мы будем переключать данное значение после вывода каждой строки для получения эффекта зебры в таблице.

$row : Текущий номер строки. Она позволяет выводить соответствующий номер для каждой строки при перемещении по таблице.

Теперь можно организовать цикл по элементам массива $data с помощью foreach для вывода строк Для каждой строки создаем левую ячейку, которая содержит название продукта, и четыре ячейки с данными. Устанавливаем соответствующие цвета для тескта и фона для каждой ячейки.

Для вывода ячеек данных используется цикл for для прохода по четырех элементному массиву с данными, а для вывода данных в формате с разделением тысяч вызываем функцию PHP number_format() .

После вывода строки увеличиваем переменную $row , переключаем переменную $fill , и используем Ln() для перехода к началу следующей строки.

Вот код всего цикла:

Создаем график

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

Вычисление масштаба и ширины столбика

Сначала надо вычислить масштаб для осей X и Y. Для масштаба по оси X вычисления заключаются в простом делении количества продуктов на желаемую ширину графика (нужно учесть небольшие отступы слева и справа для лучшего вида):

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

Теперь, зная масштаб по оси X, можно вычислить ширину (в мм) каждого столбца графика. Это инверсированное значение масштаба по оси X, уменьшенное в полтора раза для организации расстояния между столбцами:

Добавляем линии осей и метки на них

Теперь можно добавить линии осей X и Y, метки данных и метки осей. Используем шрифт Arial с размером 10 для меток данных.

Для вывода линии в FDPF используется метод Line() , которые принимает четыре аргумента: координаты X и Y начала линии, и координаты X и Y конца линии.

Для оси X выводим горизонтальную линию вдоль низа графика, оставляя 30 мм для меток по оси Y слева. Затем выводим каждое имя продукта в массиве $rowLabels как текстовую ячейку в соответствующую точку:

Метод SetXY() позволяет устанавливать текущую позицию в нужное место на странице.

Для оси Y выводим вертикальную линию слева от графика, оставляя 30 мм для меток данных по оси Y. Линию оси делаем на 8 мм больше желаемой высоты графике для того, чтобы было место для вывода метки оси. Затем организуем цикл от нуля до максимального значения данных $maxTotal , которое было определено ранее. Размер шага установлен в переменной $chartYStep (20,000). На каждом шаге выводим текущее значение выровненной вправо и короткую метку:

Теперь можно добавить метки осей. Используем шрифт Arial полужирный с размером 12. Размещаем метку оси X ниже меток данных, а метку оси Y — наверху оси Y:

Выводим столбцы графика

Завершающей стадией является создание самого графика. Для вывода столбцов используется метод FPDF Rect() , который выводит прямоугольник. Метод использует следующие аргументы:

  • Координаты X и Y верхнего левого угла прямоугольника.
  • Ширина и высота прямоугольника.
  • Стиль прямоугольника. Может иметь значения ‘D’ или » (выводим обводку), ‘F’ (заполняем текущим цветом фона), или ‘DF’ / ‘FD’ (обводка и заполнение).

Теперь выводим столбцы. Установим переменную $xPos , которая служит для отслеживания текущей позиции по X. Зададим ей значение 40 мм с учетом расстояния для меток по оси Y и отступа для первого столбца. Теперь создадим переменную $bar , которая будет содержать номер текущего столбца. Она будет использоваться для установки цвета для столбца:

Теперь проходим циклом по массиву $data , вычисляем суммарное значение для каждой строки и выводим столбец от оси X до этого значения, масштабированного с помощью $yScale . Цвет для каждого столбца изменяется с помощью счетчика $bar , который является индексом в массиве $chartColours . После вывода текущего столбца перемещаем позицию X к началу следующего, увеличиваем счетчик $bar и продолжаем цикл:

В коде используется оператор PHP деление по модулю ( % ) для повтора цвета столбца, если количество столбцов превышает количество элементов в массиве $chartColours .

Отправляем документ PDF браузеру

Документ PDF готов! Осталось только отправить его браузеру, чтобы пользователь мог просмотреть его или загрузить.

Для этого используется метод FPDF Output() . Он принимает два аргумента: предполагаемое имя для PDF файла и флаг назначения. Данный флаг может принимать следующие значения:

I : Выводить PDF на экран, если такая функция поддерживается браузером, иначе загружать.

D : Загружать PDF.

F : Сохранять файл в папке на сервере.

S : Возвращать данные PDF как строку.

Для нашего примера используется опция I для вывода PDF на экран, если возможно:

Output() автоматически посылает заголовок HTTP «Content-type: application/pdf» , который сигнализирует браузеру о том, что следует ожидать документ PDF.

Теперь вы готовы протестировать скрипт. Открывайте браузер и переходите на URL, где расположен скрипт, например , www.example.com/report.php . Вы должны увидеть PDF в окне браузера. Или будет выведено диалоговое окно, в котором вам будет предложено сохранить документ PDF на вашем жестком диске. Вы можете потом открыть PDF файл в программе для просмотра PDF, например, в Acrobat Reader или Preview.

Для создания PDF документа нужен только PHP и FPDF.

Заключение

В данном уроке вы узнали как использовать PHP с библиотекой FPDF для генерации отчета в формате PDF. Были продемонстрированы методы библиотеки FPDF для создания текста, таблиц и графиков.

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.elated.com/articles/create-nice-looking-pdfs-php-fpdf/
Перевел: Сергей Фастунов
Урок создан: 15 Сентября 2010
Просмотров: 118284
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL