- •1.Информационные технологии. Основные понятия и определения. Содержание информационной технологии как составной части информатики.
- •2.Создание распределенных систем на базе web-технологий. Общий подход, используемое программное обеспечение, основные информационные технологии.
- •3. Протокол http. Принцип работы. Описание основных заголовков и кодов ответа. Методы передачи данных get и post.
- •Заголовки http
- •4.Методологии разработки программного обеспечения. Microsoft Solution Framework.
- •5. Методологии разработки программного обеспечения.
- •6.Тестирование программного обеспечения. Виды тестирования. Тестирование «черного» и «белого» ящика.
- •7.Информационные технологии поддержки коллективной работы над проектами. Основные понятия. Модели ведения версий.
- •8.Язык гипертекстовой разметки html как основное средство представления информации при использовании Web-технологий. Структура документа. Описание основных тегов. Форматирование документов
- •9. Язык html и табличное представление данных. Создание простых и сложных таблиц. Примеры
- •10. Взаимодействие пользователя и информационной системы. Формы html Передача данных от пользователя к серверу. Примеры
- •11. Создание серверной части информационной системы. Язык php. Описание базового синтаксиса.
- •12. Устранение недостатка протокола http. Создание сеансов на основе сессий и cookie. Механизм работы. Примеры на php.
- •12[2] Примеры установки срока годности cookies:
- •13. Язык php. Организация взаимодействия с субд MySql.
- •14. Язык php. Обработка текстовой информации. Функции работы со строками. Регулярные выражения.
- •15. Язык php. Организация взаимодействия с web-сервером по протоколу http. Понятие socket.
- •16. Создание приложений, выполняющихся на стороне клиента. Язык JavaScript. Описание базового синтаксиса.
14. Язык php. Обработка текстовой информации. Функции работы со строками. Регулярные выражения.
Строковых функций в PHP немало, причем многие из них, так или иначе, просто дублируют друг друга. Однако, приемы работы с основными блоками функций (функции поиска и замены в тексте, функции удаления пробельных символом (trim-функции), функции форматного вывода) надо представлять очень четко.
string htmlspecialchars(string str [, int quote_style [, string charset]]);
Первый аргумент – строка, в которой надо выполнить преобразование. В качестве второго необязательного аргумента принимается константа, задающая режим преобразования кавычек.
Производит преобразование спецсимволов в их HTML эквиваленты. Попросту говоря, эта функция гарантирует, что если Вы вдруг вздумаете написать в гостевой книге или на форуме какой-то код (php, javascript и т.д.) он отобразиться совершенно нормально, но выполняться не будет!
string substr(string string, int start[, int length])
Эта функция возвращает часть строки.
string strpos(string haystack, string needle[, int offset])
Эта функция обеспечивает действие, обратное функции substr. Т.е. она возвращает позицию в строке haystack, в которой найдена переданная ей подстрока needle.
string strstr(string haystack, string needle)
Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца строки. В случае неудачи функция возвращает false.
Пример:
<?
$url = "http://www.softtime.ru";
$www = strstr($url,"w");
echo ($www);
?>
Результат: www.softtime.ru
strlen() - возвращает длину строки, которую принимает в качестве аргумента
chr() Эта функция принимает в качестве аргумента ASCII код символа и возвращает соответствующий этому коду фактический символ:
ord() Выполняет действие, обратное функции chr():
int strcmp(string str1, string str2)
Эта функция сравнения строк. Она сравнивает две строки и возвращает:
0 - если строки полностью совпадают;
1 - если, строка str1 лексикографически больше str2;
1 – если, наоборот, строка str1 лексикографически меньше str2
Ранее для поиска в строке подстроки мы использовали строковые функции, ограничиваясь при этом случаями точного соответствия строк и подстрок. Для работы со строками можно использовать также регулярные выражения, представляющие собой, по сути, мини-язык описаний для поиска в строках информации по заданному шаблону.
С помощью регулярных выражений можно найти в строке подстроку, удовлетворяющую заданному шаблону и извлечь ее, проверить существует ли заданная строка и т.д.
Простейшее регулярное выражение можно записать так:
"abc"
Это выражение соответствует любой строке, которая содержит подстроку "abc".
Существует такое понятие, как выражение в квадратных скобках. Квадратные скобки ограничивают поиск теми символами, которые в них заключены:
"[abc]"
Этому регулярному выражению соответствует любая строка, содержащая abc либо вместе, либо каждый из них в отдельности. Выражение в квадратных скобках иногда еще называют бра-кет выражением.
Допустим, нам нужно создать регулярное выражение, соответствующее всем буквам русского алфавита. В этом случае мы можем, конечно, перечислить все эти буквы в регулярном выражении. Это допустимо, но утомительно и неэлегантно.
[14.1]
Более коротко такое регулярное выражение можно записать следующим образом:
"[а-Я]"
Это выражение соответствует всем буквам русского алфавита, поскольку любые два символа, разделяемые дефисом, задают соответствие диапазону символов, находящихся между ними. Заметьте, что регулярное выражение "[а-Я]" описывает символы как нижнего, так и верхнего регистров, поэтому более подробно это выражение можно записать так:
"[а-яА-Я]"
Точно таким же образом задаются регулярные выражения, соответствующие числам:
"[0-9]"
или
"[0123456789]"
Оба этих выражения эквивалентны и соответствует любой цифре.
При создании регулярных выражений часто удобно пользоваться групповым символом точки ".", который объединяет два одиночных символа, за исключением символа \n. К примеру:
.ок
Это выражение, в частности соответствует строкам "кок", "док", "ток".
В регулярном выражении может быть несколько ветвей, которые разделяются символом |, действующим как оператор OR (ИЛИ). Т. е., если в выражении используются ветви, то для соответствия регулярного выражения какой-либо строке, достаточно, чтобы только одна из ветвей соответствовала этой строке:
"abc|абв"
Этому регулярному выражению соответствует любая строка, содержащая подстроки "abc" или "абв". Ветвление удобно применять при проверке расширений и имен файлов, зон доменных имен и т. д.
Для исключения последовательности символов из поиска перед этой ней ставится символ "^":
"[^а-я]"
Это регулярное выражение отвечает любому символу, не содержащемуся в диапазоне а-я.
Регулярное выражение можно уточнить при помощи квалификаторов - так называются символы +, ?, *. Квалификаторы говорят о том, сколько раз последовательность символов может встретиться в строке и указываются непосредственно после той части выражения, к которой они применяются:
"a+" - хотя бы один а (строки "абв" и "абва" соответствуют этому выражению, а строка "укр" - нет);
"a?" - ноль или один а (строки "абв" и "укр" соответствуют этому выражению, а строка "абва" - нет);
"a*" - ноль или более а (строки "абв" и "абва" и "укр" соответствуют этому выражению).
Границы - это числа в фигурных скобках, указывающие количество вхождений в строку фрагмента выражения, непосредственно предшествующего границе:
"xy{2}" соответствует строке, в которой за x следует два y;
"xy{2,}" соответствует строке, в которой за x следует не менее двух y (может быть и больше);
"xy{2,6}" соответствует строке, в которой за x следует от двух до шести y;
Для указания количества вхождений не одного символа, а их последовательности, используются круглые скобки:
"x(yz){2,6}" соответствует строке, в которой за x следует от двух до шести последовательностей yz;
"x(yz)*" соответствует строке, в которой за x следует ноль и более последовательностей yz;
^ - начало строки
$ - конец
\ -перед спец символами
