pdf_add_annotation
Добавление примечания.
Синтаксис:
void pdf_add_annotation(int pdf_document, double llx, double lly, double urx, double ury, string title, string content)
Примечание предполагается в нижнем левом углу (llx, lly), верхний правый угол (urx, ury).
Приложения PHP
Переменные окружения в PHP
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержаться некоторые заголовки, но не все (получить все заголовки нельзя). Далее я приведу список наиболее важных переменных окружения.
HTTP_ACCEPT
- В этой переменной перечислены все MIME-типы данных, которые могут быть восприняты браузером. Строка */* означает, что браузер понимает любой тип.
HTTP_ACCEPT= image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
HTTP_REFERER
- Эта переменная представляет сведения о странице, с которой пользователь попал на данную. Эту переменную можно использовать, например, для отслеживания перемещения пользователя по вашему сайту, а затем просматривать наиболее популярные маршруты.
HTTP_REFERER= http://www.spravkaweb.ru/php/pril/
HTTP_COOKIE
- В этой переменной хранятся все Cookies в URL-кодировке.
HTTP_COOKIE= hotlog=1; ZDEDebuggerPresent=php,phtml,php3; b=b; PHPSESSID=16805922a9258cda274316e60f649cf8
HTTP_USER_AGENT
- Идентифицирует браузер пользователя. Для установления типа браузера нужно проверить эту строку на наличие слов: если браузер - Internet Explorer, то будет присутствовать подстрока MSIE, а если в наличии лишь слово Mozilla, то это Netscape.
Например:
HTTP_USER_AGENT= Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)
HTTP_HOST
- Содержит доменное имя Web-сервера, на котором запустился сценарий. Эту переменную достаточно удобно использовать, например, для генерации полного пути, который требуется в заголовке Location, чтобы не привязываться к конкретному серверу.
HTTP_HOST= www.spravkaweb.ru
HTTP_FROM
- Адрес электронной почты пользователя, направившего запрос.
SERVER_NAME
- Доменное имя или IP-адрес сервера.
SERVER_NAME= www.spravkaweb.ru
SERVER_SOFTWARE
- Имя и версия программы-сервера, отвечающей на запрос клиента.
SERVER_PORT
- Эта переменная содержит порт сервера, к которому обратился браузер пользователя. Обычно это 80. Переменная так-же может применяться для формирования параметра заголовка Location.
SERVER_PORT= 80
SERVER_PROTOCOL
- Переменная содержит имя и версию информационного протокола, который был использован для запроса.
SERVER_PROTOCOL= HTTP/1.1
REMOTE_ADDR
- Эта переменная содержит IP-адрес (или доменное имя) узла пользователя, на котором был запущен браузер.
REMOTE_PORT
- Порт, который закрепляется за браузером пользователя для получения ответа сервера.
REMOTE_USER
- Идентификационное имя пользователя, посылающего запрос.
SCRIPT_NAME
- Содержит имя файла, содержащего данный сценарий. Эту переменную удобно использовать при формировании заголовка Location при переадресации на себя (self-redirect), а также для подставления значения атрибута action тега <form> на странице, которую вызывает сценарий при запуске без параметров (для того чтобы не привязываться к конкретному имени сценария).
DOCUMENT_ROOT
- Корневой каталог дерева Web-документов.
REQUEST_METHOD
- Метод, который применяет пользователь при передаче данных. Надо заметить, что грамотно составленный сценарий должен сам определять на основе этой переменной, какой метод задействует пользователь, и принимать данные из соответствующего источника, а не расчитывать, что передача будет осуществляться, например, только методом POST.
QUERY_STRING
- Содержит параметры, которые в URL указаны после вопросительного знака. Напомним, что они доступны как при методе GET, так и при методе POST (если в последнем случае они были определены в атрибуте action тега <form>).
PATH_INFO
- Содержит дополнительную информацию о пути.
PATH_TRANSLATED
- Та же информация, что и в переменной PATH_INFO с префиксом, задающим путь к корневому каталогу дерева Web-документов.
CONTENT_TYPE
- Медиа-тип данных запроса.
CONTENT_LENGTH
- Возвращает количество байт данных, присланных пользователем. Эту переменную необходимо анализировать, если вы занимаетесь приемом и обработкой POST-формы.
GATEWAY_INTERFACE
- Версия CGI, которую использует сервер.
Пример использования переменных окружения
Далее я приведу пример использования некоторых переменных:
<html>
<head><title>Переменные окружения</title><head>
<body>
<h1>Переменные окружения:</h1>
<hr>
<?
echo "Вы пришли из: ".getenv("HTTP_REFERER")."<BR>";
$br=getenv("HTTP_USER_AGENT");
if(strpos($br,"MSIE")!==false) echo "У вас Internet Explorer<BR>";
else echo "У вас Netscape или др.<BR>";
echo "Ваш IP: ".getenv("REMOTE_ADDR")."<BR>";
echo "Вот параметры в строке браузера: ".getenv("QUERY_STRING");
?>
</body>
</html>
MIME (Multipurpose Internet Mail Extensions
- Многоцелевые расширения почты интернета, были разработаны как стандарт идентификации различных типов файлов для отправки их по почте, но в последствии их функции были расширены и на другие сервисы Интернета.
Для типа MIME, который приписывается в реестре Windows и используется различными программами, в частности, указывается расширение файла и программа, с помощью которой данный тип файлов будет обрабатываться.
Типы MIME === Тип файла
Архив RAR (.rar) === application/x-tar
Архив ZIP (.zip) === application/x-zip-compressed
Исполняемый файл для DOS или Microsoft Windows (.e === application/octet-stream
Аудио- или видеозапись ASF === video/x-ms-asf
Аудио- или видеозапись WMV === video/x-ms-wmv
Аудиозапись AIFF === audio/aiff
Аудиозапись AU (.au .snd) === audio/basic
Аудиозапись MIDI === audio/mid
Аудиозапись MP3 === audio/mpeg
Аудиозапись WAV (.wav) === audio/x-wav
Аудиозапись WMA === audio/x-ms-wma
Аудиозапись AVI === video/avi
Аудиозапись AVI (.avi) === video/x-msvideo
Видеозапись Indeo (IVF) === video/x-ivf
Видеозапись MPEG (.mpeg .mpg .mpe) === video/mpeg
Видеозапись QuickTime (.qt .mov) === video/quicktime
Визитная карточка, используемая почтовыми программ === text/x-vcard
Графический файл ART === image/x-jg
Графический файл BMP === image/bmp
Графический файл GIF === image/gif
Графический файл JPEG === image/jpeg
Графический файл PNG (.png) === image/png
Графический файл Macromedia Flash === application/futuresplash
Графический файл TIFF === image/tiff
Документ Adobe Acrobat === application/pdf
Документ HTML === text/html
Документ Microsoft Excel === application/x-msexcel
Документ Microsoft Word === application/msword
Документ RTF === application/msword
Документ RTX === text/richtext
Документ XML === text/xml
Приложение === application/x-msdownload
Приложение HTML (HTA) === application/hta
Таблица стилей HTML === text/css
Текстовой документ === text/plain
ECMAScript === text/ecmascript
Microsoft JScript === text/Jscript
Microsoft JScript === text/javascript
Microsoft VBScript === text/vbs
Microsoft VBScript === text/vbscript
Трехмерная интерактивная графика в формате VRML (. === x-world/x-vrml
Советы по PHP
Запрет кэширования посредством PHP
Запрет кэширования посредством PHP
Большинство сценариев формируют документы, которые при каждом запуске программы изменяются. Очевидно, если браузер пользователя начнет кэшировать такие документы, ничего хорошего не получиться.
Запретить кэшировать документы браузером и Proxy-серверами можно при помощи средств языка PHP, а именно функции Header().
Для этого надо использовать в начале сценария следующие команды:
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 Header("Pragma: no-cache"); // HTTP/1.1 Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
Для полного запрета кэширования приходиться всегда посылать 4 указанных заголовка, и ни один пропустить нельзя - в противном случае не сработает либо браузер, либо Proxy-сервер.
Создание голосования на PHP
Создание голосования на PHP
Для начала надо определиться, о чем мы будем спрашивать посетителей. Например, понравился им ваш сайт или нет.
Для нашего голосования нам потребуются четыре файла:
Например мы хотим задать посетителям следующие вопросы:
В файл form.html запишем: