Создание и использование библиотек функций

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

Файл библиотеки функций содержит описания функций, за­ключенные в «скобки» . Он обычно сохраняется с расширением .inc.

Библиотеку функций можно включить в сценарий при по­мощи конструкций РНР includeи require.

В общем виде синтаксис использования этих конструкций выглядит следующим образом:

include "путь/имя_файла";

require "путь/имя_файла";

Конструкцияrequire позволяет включать файлы в сценарий PHP доисполнения сценария PHP. В отличие от конструкции require, конструкция include включает файлы в код PHP-скрипта во время выполнения сценария. Конструкцию requireцелесооб­разнее использовать там, где не требуется динамическое вклю­чение файлов в сценарий, а конструкцию include только с целью динамического включения файлов.

Задания

Задание 1.Осуществите обработку одномерного массива в соответствии с вариантом (функции обработки должны хранить-ся в отдельном файле func.inc). Элементы массива должны вводиться в текстовое поле и разделяться пробелом. Результат выдается на той же странице. Сохраните основной файл под именем lr7.php.

Вариант 1. Вычисление среднего арифметического положи-тельных элементов; проверьте, являются ли элементы массива невозрастающей последовательностью.

Вариант 2. Вычисление среднего арифметического отрицательных элементов, проверьте, являются ли элементы массива возрастающей последовательностью.

Вариант 3. Проверьте наличие одинаковых значений; про-верьте, являются ли элементы массива неубывающей последо-вательностью.

Вариант 4.Поиск наибольшего по модулю элемента; про-верьте, являются ли элементы массива убывающей последова-тельностью.

Вариант 5.Поиск наименьшего по модулю элемента; оп-ределите количество нулевых элементов.

Вариант 6. Определите модуль наименьшего элемента, и наи-больший элемент среди элементов, стоящих на нечетных местах.

Вариант 7.Определите количество элементов массива, являющихся нечетными числами,и наименьшийэлемент среди элементов, стоящих на нечетных местах.

Вариант 8. Определите количество элементов массива, имею-щих нечетные номера и являющихся четными числами; наи-меньший среди элементов, стоящих на четных местах.



Вариант 9. Определите количество элементов массива, имею-щих четные номера и являющихся нечетными числами; наиболь-ший элемент среди элементов, стоящих на четных местах.

Задание 2. Получите у преподавателя дополнительное зада-ние и выполните его. Сохраните под именем lr7_dop.php.

Контрольные вопросы

1. Какие типы массивов поддерживаются PHP?

2. Что такое ассоциативный массив?

3. Как создать массив?

4. Как преобразовать строку в массив?

5. Укажите способы добавления элемента в конец массива.

6. Что такое библиотека функций? Для чего она используется?

7. Чем отличаются конструкции include и require?

Отчет по лабораторной работе

1. Название ицель работы. Листинг файловfunc.inc,lr7.php и lr7_dop.php.

2. Файлы func.inc,lr7.php, lr7_dop.php на диске.

ЛАБОРАТОРНАЯ РАБОТА 8

Обработка строк

Цель работы: формирование практических умений обработ-ки строк.

Теоретические сведения

Длину строки в символах можно определить при помощи функции strlen( ), имеющей следующий синтаксис:

strlen (строка)

Функции удаления пробелов:

chop(строка)– возвращает строку после удаления из нее за­вершающих пропусков и символов новой строки;

trim (строка)– удаляет все пропуски с обоих краев строки и возвращает полученную строку;

ltrim (строка)–удаляет все пропуски и специальные сим­волы с левого края строки и возвращает полученную строку;

rtrim (строка) – удаляет все пропуски и специальные сим­волы с правого края строки и возвращает полученную строку.

Функции сравнения строк:

strcmp (строка1, строка2) –сравнивает две строки с учетом регистра символов.



После завершения сравнения strcmp( ) возвращает одно из трех возможных значений:

- 0, если строка1 и строка2 совпадают;

- <0, если строка1 меньше, чем строка2;

- 0, если строка2 меньше, чем строка1.

strcasecmp – сравнивает строки без учета регистра символов. В остальном работает точно так же, как strcmp.

Функции деления и соединения строк:

strtok (строка, разделители)– разбивает строку по разде­лителям, заданным вторым параметром; чтобы полностью раз­делить строку, функцию необходимо последовательно вызвать несколько раз;

parse_str (строка)– выделяет в строке пары «переменная-зна-чение» и присваивает значения переменным в текущей области видимости;

implode (разделитель, массив) –объединяет массив в строку.

Функции поиска и замены:

strpos (строка, подстрока [,смещение])– находит в строке позицию первого экземпляра заданной подстроки; необязатель­ный параметр смещение задает позицию, с которой должен на­чинаться поиск;

strpos (строка, символ)– находит в строке последний эк­земпляр заданного символа;

str_replace (подстрока, замена, строка)– ищет в строке все вхождения заданной подстроки и заменяет их новой подстрокой;

strstr (строка, подстрока) – возвращает часть строки, начи­нающуюся с первого вхождения заданной подстроки;

substr (строка, начало [,длина])– возвращает часть строки, начинающуюся с заданной начальной позиции и имеющую за­данную длину;

substr_count (строка, подстрока)– возвращает количество вхождений подстроки в заданную строку;

substr_replace (строка, замена, начало [,длина]) – заменяет часть строки, которая начинается с заданной позиции; если за­дан необязательный параметр длина, заменяется фрагмент за­данной длины, в противном случае производится замена по всей длине заменяющей строки.

Функции преобразования строки к верхнему и нижнему ре­гистру:

strtolower(строка)–преобразует все алфавитные символы строки к нижнему регистру;

strtoupper (строка )– преобразует все алфавитные символы строки к верхнему регистру;

ucfirst (строка)– преобразует к верхнему регистру первый символ строки;

ucwords (строка)–преобразует к верхнему регистру первую букву каждого слова в строке.

Регулярные выражения

Регулярное выражение– это механизм, позволяющий задать шаблон для строки и осуществить поиск данных, соответст-вующих этому шаблону в заданном тексте. С помощью регу­лярных выражений можно изменить и удалить данные, разбить строку по шаблону на подстроки и многое другое. Одно из рас­пространенных применений регулярных выражений – это про­верка строки на соответствие каким-либо правилам.

Справочная информация о представлении символов в регу­лярных выражениях приведена в прил. 3.

В PHP существуют два различных механизма для обработки регулярных выражений: POSIX-совместимые и Perl-совместимые. Их синтаксис во многом похож, однако Perl-совместимые регуляр-ные выражения более мощные и работают намного быстрее.

Рассмотрим основные функции обработки Perl-совместимых регулярных выражений:

preg_match (рег. выражение, строка [, массив совпадений])

preg_match_all (рег. выражение, строка, массив совпадений [, порядок])

preg_replace (рег.выражение, заменяющая строка, заменяе-мая строка [, предел])

Функцияpreg_match предназначена для проверки совпаде-ния заданной строки с заданным регулярным выражением. В ка-честве результата функция возвращает 1, если совпадения были найдены, и 0, если совпадений нет. Если при вызове функции был задан необязательный параметр массив совпадений, то после работы функции ему будет присвоен массив, содержащий результаты поиска по заданному регулярному выражению, при этом будет сохранено только первое совпадение.

Функция preg_match_allтакже предназначена для проверки совпадения строки с регулярным выражением. Однако она осу­ществляет поиск во всей заданной строке ивозвращает все име-ющиеся совпадения.

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

PREG_PATTERN_ORDER – результаты поиска будут сгруп-пированы по номеру регулярного выражения, которое возвратило этот результат (это значение используется по умолчанию);

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

Функция preg_replace ( ) производит замену текста по регу­лярному выражению. Задание необязательного параметра предел позволяет ограничить количество заменяемых фрагментов в тексте.

Задания

Задание 1. Выполните обработку строки в поле ввода, используя регулярные выражения, в соответствии с вариантом. Результат обработки должен выводиться рядом с исходной строкой. Сохраните файл выполнения задания под именем lr8.php.

Вариант 1. Выделите все числа в строке синим цветом.

Вариант 2. Замените все пробелы из строки символами + и выделите их красным цветом.

Вариант 3. Выделите все латинские буквы курсивом.

Вариант 4. Замените все строчные английские буквы на соответствующие прописные.

Вариант 5. Замените последовательности из двух или более пробелов одним пробелом.

Вариант 6. Подчеркните все гласные русские буквы.

Вариант 7. Замените все гласные строчные английские буквы на прописные.

Вариант8. Выделите полужирным шрифтом все номера те-лефонов (формат +375(код)xxx-xx-xx).

Вариант 9. Выделите курсивом все цифры и латинские буквы.

Задание 2. Получите у преподавателя дополнительное зада-ние и выполните его. Сохраните под именем lr8_dop.php.

Контрольные вопросы

1. Как определить длину строки?

2. Какое значение может возвращаться функциями сравнения строк?

3. Что такое регулярное выражение? Для чего используются регулярные выражения?

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

5. Для чего используется функция preg_match()? Как отличается результат ее выполнения от результата выполнения функции preg_match_all()?

6. Какая функция выполняет замену текста, соответствующего ре-гулярному выражению?

7. Какие функции используются для преобразования символов строки к верхнему регистру?


0442390684565125.html
0442455395692399.html
    PR.RU™