Файл: Разработать справочную систему по стандартным функциям выбранного языка программирования ..pdf
Добавлен: 26.05.2023
Просмотров: 400
Скачиваний: 8
Далее был представлен обзор инструментов, а также процесс проектирования справочной системы по стандартным функциям языка программирования PHP.
В итоге была создана база данных для хранения категорий и самих функций. А также динамическая справочная система по стандартным функциям языка программирования PHP. Данная система определяет перемещение пользователя по сайту отслеживая изменения в URL и значения переменных $_GET['cat'] и $_GET['fun']. В зависимости от значений система определяет, какая выбрана категория и какая конкретно выбрана функция. В соответствии с этим система составляет запрос для базы данных и выводит результат обратно на сайт.
Данная справочная система растягивается под большинство разрешений экранов и является динамический. По мере добавления новых функций и категорий, они будут автоматически выводится на сайт.
Пользоваться такой справочной системой удобно. Она предоставляет нужную информацию и не отвлекает пользователя лишними деталями в дизайне. Достаточно выбрать категорию и нужную функцию, и пользователь быстро получит нужную ему информацию. Это оправдывает востребованность такой системы и ее актуальность.
Библиография
- Официальное руководство по PHP URL: http://php.net/manual/ru/index.php
- Описание всех ф-ий от крупнейшего сообщества PHP программистов URL: http://www.php.su/functions/
- Бретт Маклафлин: PHP и MySQL Исчерпывающее руководство / Бретт Маклафлин: Изд-во «Питер» 2013. – 507 с.
- Кевин Янк: PHP и MySQL. От новичка к профессионалу / Кевин Янк: Изд-во «ЭКСМО», 2013. – 384 с.
- Джанет Валейд - PHP 5 для чайников / Джанет Валейд: Изд-во «Вальямс» 2006. – 318 с.
- Линн Бейли, Майкл Моррисон - Изучаем PHP и MySQL / Линн Бейли, Майкл Моррисон: Изд-во «ЭКСМО», 2010. – 718 с.
- Максим Кузнецов, Игорь Симдянов - Самоучитель PHP 5/6 (3-е издание) / Максим Кузнецов, Игорь Симдянов: Изд-во «БХВ-Петербург» 2009. – 664 с.
- Денис Колисниченко - PHP и MySQL. Разработка Web-приложений / Денис Колисниченко: Изд-во «БХВ-Петербург», 2013. – 543 с.
- Робин Никсон - Создаем динамические веб-сайты с помощью PHP / Робин Никсон: Изд-во «Питер» 2015. – 688 с.
- Котеров Д. В., Костарев А. Ф. - PHP 5. 2-е издание / Котеров Д. В., Костарев А. Ф.: Изд-во «БХВ-Петербург», 2008. – 1104 с.
Приложение 1
Создание и наполнение базы данных MySQL
CREATE DATABASE `phpdir`;
CREATE TABLE `category` (
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB CHARSET utf8;
INSERT INTO `category` (title) VALUES ('Функции для работы со строками'),('Функции для работы с массивами'),('Математические функции'), ('Функции для работы с файлами'), ('Функции для работы с каталогами'), ('Функции для работы с СУБД'),('Функции регулярных выражений'),('Сетевые функции');
CREATE TABLE `function` (
`id` INT NOT NULL AUTO_INCREMENT,
`idcategory` INT NULL,
`title` VARCHAR(100) NOT NULL,
`description` VARCHAR(255) NOT NULL,
`text` TEXT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB CHARSET utf8;
INSERT INTO `category` (title) VALUES ('Функции для работы со строками'),('Функции для работы с массивами'),('Математические функции'), ('Функции для работы с файлами'), ('Функции для работы с каталогами'), ('Функции для работы с СУБД'),('Функции регулярных выражений'),('Сетевые функции');
CREATE TABLE `function` (
`id` INT NOT NULL AUTO_INCREMENT,
`idcategory` INT NULL,
`title` VARCHAR(100) NOT NULL,
`description` VARCHAR(255) NOT NULL,
`text` TEXT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB CHARSET utf8;
INSERT INTO `function` (idcategory, title, description, text) VALUES
('1','explode','Разбивает строку на подстроки, 'array <B>explode</B> ( string separator, string string [, int limit] )<BR ></BR>
<P>Возвращает массив строк, полученных разбиением строки
<VAR>string</VAR> с использованием
<VAR>separator</VAR> в качестве разделителя.
Если передан аргумент <VAR>limit</VAR> передан,
массив будет содержать максимум <VAR>limit</VAR>
элементов, при этом последний элемент будет содержать остаток строки
<VAR>string</VAR>.
</P>
<P>Если <VAR>separator</VAR> - пустая строка (""),
<B>explode()</B> возвращает <TT><B>FALSE</B></TT>. Если
<VAR>separator</VAR> не содержится в <VAR>string</VAR>,
то <B>explode()</B> возвращает массив, содержащий один
элемент <VAR>string</VAR>.
</P>
<P>По историческим причинам, функции <B>implode()</B> можно
передавать аргументы в любом порядке, но для
<B>explode()</B> это недопустимо. <VAR>separator</VAR>
всегда должен содержать разделитель, а <VAR>string</VAR>
- исходную строку.
</P>'),
('1','print','Выводит строку','int <B>print</B> ( string arg )<BR ></BR><P>Выводит <VAR>arg</VAR>. Всегда возвращает
<VAR>1</VAR></P><P><B>print()</B> не является "настоящей" функцией (это конструкция языка) поэтому заключать аргумент в скобки не обязательно.</P>'),
('1','strlen','Возвращает длину строки','int <B>strlen</B> ( string string )<BR ></BR>
<P>Возвращает длину строки <VAR>string</VAR></P>'),
('2','current','Возвратить текущий элемент массива','mixed <B>current</B> ( array &array )<BR></BR>
<P>У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализирован первым элементом, добавленным в массив.</P>
<P>Функция <B>current()</B>просто возвращает значение элемента массива, на который указывает его внутренний указатель.Она не перемещает указатель куда бы то ни было.
Если внутренний указатель за пределами списка элементов,<B>current()</B> возвращает <TT><B>FALSE</B></TT>.'),
('2','rsort','Отсортировать массив в обратном порядке','bool <B>rsort</B> ( array &array [, int sort_flags] )<BR ></BR>
<P>Эта функция сортирует массив в обратном порядке (от большего к меньшему).</P>
<P>Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>'),
('2','asort','Отсортировать массив, сохраняя ключи','bool <B>asort</B> ( array &array [, int sort_flags] )<BR ></BR><P>Эта функция сортирует массив таким образом, что сохраняются отношения между
ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.</P>
<P>Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>'),
('3','abs','Модуль числа','number <B>abs</B> ( mixed number )<BR /><BR/>
<P>Возвращает абсолютное значение <VAR>number</VAR>. Если <VAR>number</VAR> имеет тип <B>float</B>, возвращаемое значение также будет иметь тип
<B>float</B>, иначе - <B>integer</B>.</P>'),
('3','cos ','Косинус','<p>float <B>cos</B> ( float arg)</p>
<P><B>cos()</B> возвращает косинус параметра <TT><I>arg</I></TT>.
Параметр <TT><I>arg</I></TT> задан в радианах.</P>'),
('3','sqrt','Вычисляет квадратный корень числа','<p>float <B>sqrt</B> (float arg)</p>
<P> Возвращает квадратный корень аргумента <TT><I>arg</I></TT>.'),
('4','basename','Возвращает имя файла из указанного пути','string <B>basename</B> ( string path [, string suffix] )<BR ></BR><P>Эта функция вернет имя файла, чей путь был передан в качестве параметра. Если имя файла оканчивается на
<VAR>suffix</VAR>, он также будет отброшен.</P><P>На платформах Windows в качестве разделителей имен директорий используются оба слэша (прямой <VAR>/</VAR> и обратный<VAR>\</VAR>).
В других операционных системах разделителемслужит прямой слэш (<VAR>/</VAR>).</P>'),
('4','copy','Копирует файл','bool <B>copy</B> ( string source, string dest )<BR ></BR><P>Создает копию файла, чье имя передано в параметре <VAR>source</VAR>, в файле с именем <VAR>dest</VAR>.
Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>'),
('4','unlink','Удаляет файл','bool <B>unlink</B> ( string filename [, resource context] )<BR ></BR><P> Удаляет файл <VAR>filename</VAR>. Функция похожа на функцию unlink() Unix C. Возвращает <TT><B>TRUE</B>
</TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>'),
('5','chdir','Сменить каталог','bool <B>chdir</B> ( string directory )<BR></BR><P>Изменяет текущий каталог PHP на указанный в качестве параметра <VAR>каталог</VAR>.
Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>'),
('5','chroot','Сменить корневой каталог','bool <B>chroot</B> ( string directory )<BR></BR><P>Изменяет корневой каталог текущего процесса на переданный в качестве параметра <VAR>каталог</VAR>.
Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>
'),
('5','closedir','Освободить дескриптор каталога','void <B>closedir</B> ( resource dir_handle )<BR ></BR><P>Закрывает поток, связанный с каталогом и переданный в качестве параметра <VAR>дескриптор_каталога</VAR>.
Перед использованием данной функции, поток должен быть открыт с помощью функции <B>opendir()</B>.</P>'),
('6','mysql_connect','Открывает соединение с сервером MySQL','resource <B>mysql_connect</B> ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )<BR ></BR>
<P>Возвращает указатель на соединение с MySQL в случае успешного выполнения, или <TT><B>FALSE</B></TT> при неудаче.</P>
<P><B>mysql_connect()</B> устанавливает соединение с сервером MySQL. Следующие значения по умолчанию установлены для отсутствующих параметров: <VAR>server</VAR> = "localhost:3306", <VAR>username</VAR> = имя пользователя
владельца процесса сервера и <VAR>password</VAR> = пустой пароль.</P><P>Параметр <VAR>server</VAR> может также включать номер порта, к примеру "hostname:port" или путь к сокету, к примеру ":/path/to/socket" для локального сервера.'),
('6','mysql_close','Закрывает соединение с сервером MySQL','bool <B>mysql_close</B> ( [resource link_identifier] )<BR></BR><P>Возвращает <TT><B>TRUE</B></TT> в случае успешного завершения или <TT><B>FALSE</B></TT> в случае возникновения ошибки.</P>
<P><B>mysql_close()</B> закрывает соедиение с базой данных MySQL, на которое указывает переданный указатель. Если параметр <VAR>link_identifier</VAR> не указан,закрывается последнее открытое (текущее) соединение.</P>
<P>Использование <B>mysql_close()</B> не необходимо для непостоянных соединений. Они автоматически закрываются в конце скрипта.</P>'),
('6','mysql_error','Возвращает строку ошибки последней операции с MySQL','string <B>mysql_error</B> ( [resource link_identifier] )<BR></BR><P>Возвращает строку, содержащую текст ошибки выполнения последней функции MySQL, или <VAR>''</VAR>
(пустая строка) если операция выполнена успешно. Если в функцию не передан параметр ссылки на соединение, последнее открытое соединение будет использовано.</P>'),
('7','preg_grep','Возвращает массив вхождений, которые соответствуют шаблону','array <B>preg_grep</B> ( string pattern, array input [, int flags] )<BR></BR><P><B>preg_grep()</B> возвращает массив, состоящий из элементов входящего массива <VAR>input</VAR>, которые соответствуют заданному шаблону <VAR>pattern</VAR>.</P>
<P>Параметр <VAR>flags</VAR> может принимать следующие значения:<P></P><DL><DT>PREG_GREP_INVERT</DT><DD>
<P>В случае, если этот флаг установлен, функция <B>preg_grep()</B>, возвращает те элементы массива, которые <SPAN><I>не соответствуют</I>
заданному шаблону <VAR>pattern</VAR>. Этот флаг доступен, начиная с <VAR>PHP</VAR> 4.2.0.</P></DD></DL>'),
('7','preg_quote','Экранирует символы в регулярных выражениях','string <B>preg_quote</B> ( string str [, string delimiter] )<BR></BR><P>Функция <B>preg_quote()</B> принимает строку <VAR>str</VAR>
и добавляет обратный слеш перед каждым служебным символом. Это бывает полезно, если в составлении шаблона участвуют строковые переменные, значение которых в процессе работы скрипта может меняться.</P>
<P>В случае, если дополнительный параметр <VAR>delimiter</VAR> указан, он будет также экранироваться. Это удобно для экранирования ограничителя,
который используется в PCRE функциях. Наиболее распространенным ограничителем является символ '/'.</P><P>В регулярных выражениях служебными считаются следующие символы:
<VAR>. \\ + * ? [ ^ ] $ ( ) { } = ! < > | :</VAR></P>'),
('7','preg_replace_callback','Выполняет поиск по регулярному выражению и замену с использованием функции обратного вызова','mixed <B>preg_replace_callback</B> ( mixed pattern, callback callback, mixed subject [, int limit] )<BR></BR><P>Поведение этой функции во многом напоминает
<B>preg_replace()</B>, за исключением того, что вместо параметра <VAR>replacement</VAR> необходимо указывать <VAR>callback</VAR> функцию, которой в качестве
входящего параметра передается массив найденных вхождений. Ожидаемый результат - строка, которой будет произведена замена.</P>'),
('8','ftp_connect','Устанавливает соединение с FTP сервером','resource <B>ftp_connect</B> ( string host [, int port [, int timeout]] )<BR></BR><P><B>ftp_connect()</B> устанавливает FTP соединение с указанным сервером <VAR>host</VAR>.</P>'),
('8','ftp_close','Закрывает соединение с FTP сервером','bool <B>ftp_close</B> ( resource ftp_stream )<BR></BR><P><B>ftp_close()</B> закрывает указанный идентификатор соединения с сервером и освобождает <B>resource</B>.</P>
'),
('8','ftp_delete','Удаляет файл на FTP сервере','bool <B>ftp_delete</B> ( resource ftp_stream, string path )<BR></BR><P><B>ftp_delete()</B> удаляет файл, заданный аргументом <VAR>path</VAR>, с FTP сервера.</P>');