Разделы презентаций


Мировые информационные ресурсы Лекция 6. Строки и регулярные выражения

Содержание

Механизмы поиска по шаблонуМеханизмы поиска по шаблону решают четыре основные задачи:поиск строк, в точности совпадающих с заданным шаблоном; поиск фрагментов строк, совпадающих с заданным шаблоном; замену строк и подстрок по шаблону;

Слайды и текст этой презентации

Слайд 1Мировые информационные ресурсы Лекция 6. Строки и регулярные выражения

Мировые информационные ресурсы  Лекция 6. Строки  		и регулярные выражения

Слайд 2Механизмы поиска по шаблону
Механизмы поиска по шаблону решают четыре основные

задачи:
поиск строк, в точности совпадающих с заданным шаблоном;
поиск фрагментов

строк, совпадающих с заданным шаблоном;
замену строк и подстрок по шаблону;
поиск строк, с которыми заданный шаблон не совпадает.
Механизмы поиска по шаблонуМеханизмы поиска по шаблону решают четыре основные задачи:поиск строк, в точности совпадающих с заданным

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



В РНР существуют два семейства функций, каждое из которых относится

к определенному типу регулярных выражений: в стиле POSIX или в стиле Perl.

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

Слайд 4Синтаксис регулярных выражений (POSIX)‏
- различные элементы (операторы) объединяются друг с

другом и образуют более сложные выражения.

Простейшее регулярное выражение совпадает

с одним литеральным символом.
Пример:
последовательность gan совпадает в любой строке, содержащей эти символы (например, gang, organize или Reagan).

Оператор | (вертикальная черта) проверяет совпадение одной из нескольких альтернатив.
Пример:
регулярное выражение php | zend проверяет строку на наличие php или zend.

Синтаксис регулярных выражений (POSIX)‏- различные элементы (операторы) объединяются друг с другом и образуют более сложные выражения. Простейшее

Слайд 5Синтаксис регулярных выражений (POSIX)‏
Квадратные скобки [ ] означают любой символ

из перечисленных в скобках.
Часто используемые интервалы:
[0-9] — совпадает с любой

десятичной цифрой от 0 до 9;
[a-z] — совпадает с любым символом нижнего регистра от а до z;
[A-Z] — совпадает с любым символом верхнего регистра от А до Z;
[a-Z] — совпадает с любым символом нижнего или верхнего регистра от а до Z.

Квантификаторы
р+ означает один или несколько символов р, стоящих подряд;
р* означает ноль и более символов р, стоящих подряд;
р? означает ноль или один символ р;
р{2} означает два символа р, стоящих подряд;
р{2,3} означает от двух до трех символов р, стоящих подряд;
р{2,} означает два и более символов р, стоящих подряд.


Синтаксис регулярных выражений (POSIX)‏Квадратные скобки [ ] означают любой символ из перечисленных в скобках.Часто используемые интервалы:[0-9] —

Слайд 6Синтаксис регулярных выражений (POSIX)‏
Служебные символы $ и ^
Выражение р$

означает строку, которая завершается символом р, а выражение ^р —

строку, начинающуюся с символа р.
Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указаные интервалы (a-z и A-Z).

Служебный символ . (точка) означает «любой символ». Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р.

Обратная косая черта (\)‏
Пример: поиск денежной суммы в долларах: \$[0-9]+ - «знак доллара, за которым следует одна или несколько десятичных цифр».

Синтаксис регулярных выражений (POSIX)‏Служебные символы $ и ^ Выражение р$ означает строку, которая завершается символом р, а

Слайд 7Синтаксис регулярных выражений (POSIX)‏
Примеры:
^.{2}$ — любая строка, содержащая ровно два

символа;
(.*) — произвольная последовательность символов, заключенная между тегами HTML

для вывода жирного текста;
p(hp)* — символ р, за которым следует ноль и более экземпляров последовательности hp (например, phphphp).

Синтаксис регулярных выражений (POSIX)‏Примеры:^.{2}$ — любая строка, содержащая ровно два символа; (.*) — произвольная последовательность символов, заключенная

Слайд 8Синтаксис регулярных выражений (POSIX)‏
Стандартные интервальные выражения (символьные классы)‏
- определены в

стандарте POSIX для удобства программирования
- также называются символьными классами (character

classes).
Символьный класс определяет один символ из заданного интервала — например, букву алфавита или цифру:
[[:alpha:]] — алфавитный символ (aA-zZ);
[[:digit:]]-цифра (0-9);
[[:alnum:]] — алфавитный символ (aA-zZ) или цифра (0-9);
[[:space:]] — пропуски (символы новой строки, табуляции и т. д.).
Синтаксис регулярных выражений (POSIX)‏Стандартные интервальные выражения (символьные классы)‏- определены в стандарте POSIX для удобства программирования- также называются

Слайд 9POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция еrеg(

)
- ищет в заданной строке совпадение для шаблона. Если

совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис:
ereg (шаблон, строка [, совпадения])‏
Поиск производится с учетом регистра алфавитных символов.
Пример: поиск в строках доменов .соm:
$is_com = ereg("(\.)(com$)", $email);
// Функция возвращает TRUE, если $email завершается символами ".com"

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

POSIX-совместимые функции РНР для работы с регулярными выражениями Функция еrеg( ) - ищет в заданной строке совпадение

Слайд 10POSIX-совместимые функции РНР для работы с регулярными выражениями
Пример: разделение

URL на несколько сегментов:

$url = "http://www.apress.com";
// Разделить $url на три

компонента: "http://www". "apress" и "com"
$www_url = ereg("^(http://www)\.([[:alnum:]+\.([[:alnum:]]+)", $url, $regs);
if ($www_url): // Если переменная $www_url содержит URL
echo $regs[0]; // Вся строка "http://www.apress.com"
print "
";
echo $regs[l]; // "http://www"
print "
";
echo $regs[2]; // "apress"
print "
";
echo $regs[3]; // "com"
endif;

Результат:

http://www.apress.com
http://www
apress
com

POSIX-совместимые функции РНР для работы с регулярными выражениями Пример: разделение URL на несколько сегментов:$url =

Слайд 11POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция ereg_replace(

)
- ищет в заданной строке совпадение для шаблона и

заменяет его новым фрагментом.
После выполнения замены функция возвращает модифицированную строку.
Если совпадения отсутствуют, строка остается в прежнем состоянии.
Функция ereg_replace( ), как и еrеg( ), учитывает регистр символов.

Синтаксис:
ereg_replace (шаблон, замена, строка)‏

Пример:
$copy_date = "Copyright 2007";
$copy_date = ereg_replace("([0-9]+)", "2008", $copy_date);
print $copy_date; // Вывод строки "Copyright 2008"

POSIX-совместимые функции РНР для работы с регулярными выражениями Функция ereg_replace( ) - ищет в заданной строке совпадение

Слайд 12POSIX-совместимые функции РНР для работы с регулярными выражениями
Обратные ссылки


- обратные ссылки на части основного выражения, заключенные в круглые

скобки,
- похожи на элементы необязательного параметра совпадения функции еrеg( )‏
- записываются в виде \0, \1, \2 и т. д., где \0 соответствует всей строке, \1 — успешному совпадению первого подвыражения и т. д.
- выражение может содержать до 9 обратных ссылок.

Пример: все адреса в тексте заменяются работающими гиперссылками:
$url = "Yandex (http://www.yandex.ru");
$url = ereg_replace("http://(([A-Za-z0-9.\])*)", "\\0", $url);
print $url;
// Выводится строка:
// Yandex (http://www.yandex.ru)‏

POSIX-совместимые функции РНР для работы с регулярными выражениями Обратные ссылки - обратные ссылки на части основного выражения,

Слайд 13POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция eregi(

)
- ищет в заданной строке совпадение для шаблона. Синтаксис:
eregi

(шаблон, строка [, совпадения])‏

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

Пример:
$password = "abc";
if (! eregi("[[:alnum:]]{8,10}, $password) :
print "Пароль не принят! Пароль должен содержать от 8 до 10 символов.";
endif;

POSIX-совместимые функции РНР для работы с регулярными выражениями Функция eregi( ) - ищет в заданной строке совпадение

Слайд 14POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция eregi_replасе(

)
- работает точно так же, как ereg_replace( ), но

без учета регистра символов. Синтаксис:

eregi_replace (шаблон, замена, строка)‏

POSIX-совместимые функции РНР для работы с регулярными выражениями Функция eregi_replасе( ) - работает точно так же, как

Слайд 15POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция split(

)
разбивает строку на элементы, границы которых определяются по заданному

шаблону. Синтаксис:
split (шаблон, строка [, порог])‏

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

Функция spliti( )
-работает так же, как split( ), но не учитывает регистра символов. Синтаксис:
spliti (шаблон, строка [, порог])‏
POSIX-совместимые функции РНР для работы с регулярными выражениями Функция split( ) разбивает строку на элементы, границы которых

Слайд 16POSIX-совместимые функции РНР для работы с регулярными выражениями
Пример:
$ip =

"123.345.789.000"; // Канонический IP-адрес
$iparr = split ("\.", $ip) // Поскольку

точка является служебным символом ее необходимо экранировать.
print "$iparr[0]
"; // Выводит "123"
print "$iparr[1]
"; // Выводит "456"
print "$iparr[2]
"; // Выводит "789"
print "$iparr[3]
"; // Выводит "000"

POSIX-совместимые функции РНР для работы с регулярными выражениями Пример:$ip =

Слайд 17POSIX-совместимые функции РНР для работы с регулярными выражениями
Функция sql_regcase(

)
- заключает каждый символ входной строки в квадратные скобки

и добавляет к нему парный символ. Синтаксис:
sql_regcase (строка)‏
Если алфавитный символ существует в двух вариантах (верхний и нижний регистры), выражение в квадратных скобках будет содержать оба варианта; в противном случае исходный символ повторяется дважды.
Функция sql_regcase( ) удобна при использовании РНР с программными пакетами, поддерживающими регулярные выражения в одном регистре.
Пример:
$version = "php 4.0";
print sql_regcase($version);
// Вывод - строка [Pp][Hh][Pp][ ][44][..][00]

POSIX-совместимые функции РНР для работы с регулярными выражениями Функция sql_regcase( ) - заключает каждый символ входной строки

Слайд 18Синтаксис регулярных выражений в стиле Perl
- является отдаленным потомком реализации

POSIX, вследствие чего синтаксис POSIX почти совместим с функциями регулярных

выражений стиля Perl.

В регулярных выражениях Perl могут использоваться все квантификаторы для регулярных выражений POSIX.

Примеры:
/food/
/fo+/
/fo{2,4}/

Синтаксис регулярных выражений в стиле Perl- является отдаленным потомком реализации POSIX, вследствие чего синтаксис POSIX почти совместим

Слайд 19Синтаксис регулярных выражений в стиле Perl
Метасимволы

Метасимвол - алфавитный символ с

префиксом \ — признаком особой интерпретации следующего символа. Примеры:
/([\d]+)000/
//
/sa\b/ -

слово заканчивается на sa
/sa\B/

Синтаксис регулярных выражений в стиле PerlМетасимволыМетасимвол - алфавитный символ с префиксом \ — признаком особой интерпретации следующего

Слайд 20Синтаксис регулярных выражений в стиле Perl
Модификаторы
- перечисляются сразу же после

регулярного выражения — например, /stroka/i.
Примеры модификаторов
m Фрагмент текста интерпретируется как состоящий

из нескольких «логических строк». По умолчанию специальные символы ^ и $ совпадают только в начале и в конце всего фрагмента. При включении «многострочного режима» при помощи модификатора m^ и $ будут совпадать в начале и в конце каждой логической строки внутри фрагмента
s По смыслу противоположен модификатору m — при поиске фрагмент интерпретируется как одна строка, а все внутренние символы новой строки игнорируются
i Поиск выполняется без учета регистра символов


Синтаксис регулярных выражений в стиле PerlМодификаторы- перечисляются сразу же после регулярного выражения — например, /stroka/i.Примеры модификаторовm	Фрагмент текста

Слайд 21Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
В РНР существует

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

Функция

preg_match( )
ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис:
preg_match (шаблон, строка [, совпадения})‏

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

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏В РНР существует пять функций поиска по шаблону с использованием

Слайд 22Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
В РНР существует

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

Функция

preg_match( )
ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис:
preg_match (шаблон, строка [, совпадения})‏

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

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏В РНР существует пять функций поиска по шаблону с использованием

Слайд 23Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Пример: проведение поиска

без учета регистра:

$linе = "Vi is the greatest word processor

ever created!";
// Выполнить поиск слова "Vi" без учета регистра символов:
if (preg_match("/\bVi\b\i", $line, $match)) :
print "Соответствие обнаружено!";
endif;

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Пример: проведение поиска без учета регистра:$linе =

Слайд 24Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_match_all( )


- находит все совпадения шаблона в заданной строке.
Синтаксис:
preg_match_all (шаблон, строка,

совпадения [, порядок])‏
Пример: найти весь текст, заключенный между тегами HTML ...:

$user_info = "Name: Rasmus Lerdorf
Title: PHP Guru";
preg_match_all ("/(.*)<\/b>/m", $userinfo, $pat_array);
print $pat_array[0][0]."
".pat_array[0][1]."\n":
Результат:
Rasmus Lerdorf
PHP Guru

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_match_all( ) - находит все совпадения шаблона в заданной

Слайд 25Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_match_all( )


Порядок сохранения в массиве совпадения текста, совпавшего с подвыражениями, определяется

необязательным параметром порядок. Этот параметр может принимать два значения:

1. PREG_PATTERN_ORDER — используется по умолчанию, если параметр порядок не указан. Порядок, определяемый значением PREG_PATTERN_ORDER: первый элемент (с индексом 0) содержит массив совпадений для всего регулярного выражения, второй элемент (с индексом 1) содержит массив всех совпадений для первого подвыражения в круглых скобках и т. д.;
2. PREG_SET_ORDER — порядок сортировки массива: первый элемент (с индексом 0) содержит массив с текстом, совпавшим со всеми подвыражениями в круглых скобках для первого найденного совпадения. Второй элемент (с индексом 1) содержит аналогичный массив для второго найденного совпадения и т. д.

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_match_all( ) Порядок сохранения в массиве совпадения текста, совпавшего

Слайд 26Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_replace( )


- работает точно так же, как и ereg_replасе( ), за

одним исключением — регулярные выражения могут использоваться в обоих параметрах, шаблон и замена.
Синтаксис:
preg_replace ( шаблон, замена, строка [, порог])‏

Необязательный параметр порог определяет максимальное количество замен в строке. Параметры шаблон и замена могут представлять собой масивы. Функция preg_replace( ) перебирает элементы обоих массивов и выполняет замену по мере их нахождения.
Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_replace( ) - работает точно так же, как и

Слайд 27Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_replace( )


- работает точно так же, как и ereg_replасе( ), за

одним исключением — регулярные выражения могут использоваться в обоих параметрах, шаблон и замена.
Синтаксис:
preg_replace ( шаблон, замена, строка [, порог])‏

Необязательный параметр порог определяет максимальное количество замен в строке. Параметры шаблон и замена могут представлять собой масивы. Функция preg_replace( ) перебирает элементы обоих массивов и выполняет замену по мере их нахождения.
Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_replace( ) - работает точно так же, как и

Слайд 28Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_split( )


- аналогична split( ) за одним исключением — параметр шаблон

может содержать регулярное выражение.
Синтаксис:
preg_split (шаблон, строка [, порог [, флаги]])

Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка.
Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_split( ) - аналогична split( ) за одним исключением

Слайд 29Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Пример: выборка информации

из переменной.
$user_info="+WJ+++Gilmore+++++wjgilmore@hotmail.com
+++++++Columbus+++OH";
$fields = preg_split("/\+{1.}/", $user_info);
while ($x < sizeof($fields)):
print $fields[$x].

"
";
$x++;
endwhile;
Результат:
WJ
Gilmore
wjgilmore@hotmail.com
Columbus
OH

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Пример: выборка информации из переменной.$user_info=

Слайд 30Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция preg_grep( )


- перебирает все элементы заданного массива и возвращает все элементы,

в которых совпадает заданное регулярное выражение. Синтаксис:
preg_grep ( шаблон, массив)‏
Пример: поиск в массиве слов, начинающихся на р:
$foods = array ("pasta", "steak", "fish", "potatoes");
$p_foods = preg_grep("/p(\w+)/", $foods):
$х = 0;
while ($x < sizeof($p_foods)) :
print $p_foods[$x]. "
";
$х++;
endwhile;

Результат:
pasta
potatoes

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция preg_grep( ) - перебирает все элементы заданного массива и

Слайд 31Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Дополнение и сжатие

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

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

Функция chop( )
- возвращает строку после удаления из нее завершающих пропусков и символов новой строки.

Пример:
$header = "Table of Contents\n\n";
$header = chop($header);
// $header = "Table of Contents"

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Дополнение и сжатие строкВ процессе форматирования часто возникает необходимость в

Слайд 32Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция str_pad( )


- выравнивает строку до определенной длины заданными символами и возвращает

отформатированную строку. Синтаксис:

str_pad (строка, длина_дополнения [, дополнение [, тип_дополнения]])‏

Если параметр дополнение не указан, строка дополняется пробелами. В противном случае строка дополняется заданными символами.
По умолчанию строка дополняется справа; тем не менее, можно передать в параметре тип_дополнения константу STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH, что приведет к дополнению строки в заданном направлении.

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция str_pad( ) - выравнивает строку до определенной длины заданными

Слайд 33Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Пример:

$food = "salad";
print

str_pad ($food, 5): // Выводит строку "salad "

Пример:

$header

= "Table of Contents";
print str_pad ($header, 5, "=+=+=", STR_PAD_BOTH);
// В браузере выводится строка
=+=+= Таbе of Contents=+=+="

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Пример:$food =

Слайд 34Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция trim( )


- удаляет все пропуски с обоих краев строки и возвращает

полученную строку. Синтаксис:
trim (строка)‏
К числу удаляемых пропусков относятся и специальные символы \n, \r, \t, \v и \0.
Функция ltrim( )
- удаляет все пропуски и специальные символы с левого края строки и возвращает полученную строку. Синтаксис:
ltrim (строка)‏
Функция удаляет те же специальные символы, что и функция trim( ).

Определение длины строки
Функция strlen( ): strlen (строка)‏

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция trim( ) - удаляет все пропуски с обоих краев

Слайд 35Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Сравнение двух строк
Функция

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

Синтаксис:
strcmp (строка1, строка2)
После завершения сравнения strcmp( ) возвращает одно из трех возможных значений:
0, если строка1 и строка2 совпадают;
< 0, если строка1 меньше, чем строка2;
> 0, если строка2 меньше, чем строка1.
Пример:
$string1 = "butter";
$string2 = "butter";
if ((strcmp($string1, $string2)) == 0) :
print "Strings are equivalent!";
endif;

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Сравнение двух строкФункция strcmp( ) - сравнивает две строки с

Слайд 36Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция strcasecmp( )‏
-

работает точно так же, как strcmp( ), но регистр символов

при сравнении не учитывается.

Пример
$string1 = "butter";
$string2 = "Butter";
if ((strcmp($string1, $string2)) == 0) :
print "Strings are equivalent!";
endif;

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция strcasecmp( )‏- работает точно так же, как strcmp( ),

Слайд 37Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Обработка строковых данных

без применения регулярных выражений
Функция strtok( )
- разбивает строку на

лексемы по разделителям, заданным вторым параметром. Синтаксис:
strtok (строка, разделители)

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

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Обработка строковых данных без применения регулярных выраженийФункция strtok( ) -

Слайд 38Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Пример: разбиение строки

по нескольким разделителям:
$info = "John Smith: JohnSmith@hotmail.com | Phoenix, Arizona";
//

Ограничители - двоеточие (:), вертикальная черта (|) и запятая (,)
$tokens = ":|,";
$tokenized = strtok($info, $tokens);
// Вывод элементов массива $tokenized
while ($tokenized) :
echo "Element = $tokenized
";
// При последующих вызовах strtok первый аргумент не передается
$tokenized = strtok($tokens);
endwhile;

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Пример: разбиение строки по нескольким разделителям:$info =

Слайд 39Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Пример: разбиение строки

по нескольким разделителям:
Результат:

Element = John Smith
Element = JohnSmith@hotmail.com
Element = Phoenix
Element

= Arizona

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Пример: разбиение строки по нескольким разделителям:Результат:Element = John SmithElement =

Слайд 40Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция parse_str( )


- выделяет в строке пары «переменная-значение» и присваивает значения переменных

в текущей области видимости. Синтаксис:
parse_str (строка)‏
Функция parse_str( ) особенно удобна при обработке URL, содержащих данные форм HTML или другую расширенную информацию.
Пример: анализируется информация, переданная через URL ( в гиперссылке, либо введена в форму HTML):
$url = "fname=John&lname=Smith&zip=43210";
parse_str($url);
// После выполнения parse_str( ) доступны следующие переменные:
// $fname = "John":
// $lname = "Smith";
// $zip = "43210"

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция parse_str( ) - выделяет в строке пары «переменная-значение» и

Слайд 41Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция explode( )


- делит строку на элементы и возвращает эти элементы в

виде массива. Синтаксис: explode (разделитель, строка [, порог])‏
Разбиение происходит по каждому экземпляру разделителя, причем количество полученных фрагментов может ограничиваться необязательным параметром порог.
Пример:
$info = "wilson | baseball |indians";
$user = explode("|", $info);
// $user[0] = "wilson";
// $user[1] = "baseball";
// $user[2] = "Indians";
Функция explode( ) практически идентична функции регулярных выражений POSIX split( ). Различие: только при вызове split( ) допускается передача регулярных выражений в параметрах.

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция explode( ) - делит строку на элементы и возвращает

Слайд 42Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция implode( )‏
-

объединяет массив в строку. Синтаксис:
implode (разделитель, фрагменты)‏

Пример:
$ohio_cities = array ("Columbus",

"Youngstown", "Cleveland", "Cincinnati");
$city_string = implode("l", $ohio_cities);
// $city_string = "Columbus | Youngstown | Cleveland | Cincinnati";

У implode( ) имеется псевдоним — функция join( ).

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция implode( )‏- объединяет массив в строку. Синтаксис:implode (разделитель, фрагменты)‏Пример:$ohio_cities

Слайд 43Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция strpos( )‏
-

находит в строке первый экземпляр заданной подстроки. Синтаксис: strpos (строка,

подстрока [, смещение])‏
Параметр смещение задает позицию, с которой должен начинаться поиск. Если подстрока не найдена, strpos( ) возвращает FALSE (0).
Пример: определение позиции первого вхождения даты в файл журнала:
$log = "
206.169.23.11:/www/:2006-08-10
206.169.23.11:/www/logs/:2006-02-04
206.169.23.11:/www/img/:2007-01-31";
// В какой позиции в журнале впервые встречается 2007 год?
$pos = strpos($log, "2007");
//$pos = 95, поскольку первый экземпляр "2007" находится в позиции 95 строки, содержащейся в переменной $log

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция strpos( )‏- находит в строке первый экземпляр заданной подстроки.

Слайд 44Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция strrpos( )‏
-

находит в строке последний экземпляр заданного символа. Синтаксис:
strrpos (строка, символ)‏

По

возможностям эта функция уступает функции strpos( ), поскольку позволяет искать только отдельный символ, а не всю строку.
Если параметре символ передается строка, при поиске будет использован только ее первый символ.
Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция strrpos( )‏- находит в строке последний экземпляр заданного символа.

Слайд 45Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция str_replace( )‏
-

ищет в строке все вхождения заданной подстроки и заменяет их

новой подстрокой. Синтаксис:
str_replace (подстрока, замена, строка)‏

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

$favorite_food = "My favorite foods are ice cream and chicken wings";
$favorite_food = str_replace("chicken_wings", "pizza", $favohte_food);
// $favorite_food = "My favorite foods are ice cream and pizza"

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция str_replace( )‏- ищет в строке все вхождения заданной подстроки

Слайд 46Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция strstr( )


- возвращает часть строки, начинающуюся с первого вхождения заданной подстроки.

Синтаксис:
strstr (строка, подстрока)‏

Пример: выделение имени домена из URL:

$url = "http://www.yahoo.com"; $domain - strstr($url, ".");
// $domain = ".yahoo.com"

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция strstr( ) - возвращает часть строки, начинающуюся с первого

Слайд 47Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция substr( )


- возвращает часть строки, начинающуюся с заданной начальной позиции и

имеющую заданную длину. Синтаксис:
substr (строка, начало [, длина])‏
Если параметр длина не указан, считается, что подстрока начинается с заданной начальной позиции и продолжается до конца строки.
При использовании функции необходимо учитывать:
если параметр начало >0, возвращаемая подстрока начинается с позиции строки с заданным номером;
если параметр начало <0, возвращаемая подстрока начинается с позиции (длина строки - начало);
если параметр длина >0, в возвращаемую подстроку включаются все символы от позиции начало до позиции начало+длина. Если последняя величина превышает длину строки, возвращаются символы до конца строки;
если параметр длина <0, возвращаемая подстрока заканчивается на заданном расстоянии от конца строки.


Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция substr( ) - возвращает часть строки, начинающуюся с заданной

Слайд 48Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция substr( )


Параметр начало определяет смещение от первого символа строки; таким образом,

возвращаемая строка в действительности начинается с символа с номером (начало + 1).
Пример: выделение части строки:
$car = "1944 Ford";
$model = substr($car, 6);
// $model = "Ford"
$model = substr($car, 0, 4);
// $model = "1944"
$model = substr($car, 2, -5);
// $model = "44"

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция substr( ) Параметр начало определяет смещение от первого символа

Слайд 49Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция substr_count( )


- возвращает количество вхождений подстроки в заданную строку. Синтаксис:
substr_count (строка,

подстрока)‏

Пример: подсчет количества вхождений подстроки:
$tng_twist = "The rain falls mainly on the plains of Spain";
$count = substr_count($tng_twist, "ain");
// $count = 4

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция substr_count( ) - возвращает количество вхождений подстроки в заданную

Слайд 50Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏
Функция substr_replace( )


- заменяет часть строки, которая начинается с заданной позиции.
Если

задан параметр длина, заменяется фрагмент заданной длины; в противном случае производится замена по всей длине заменяющей строки.
Синтаксис:
substr_replace (строка, замена, начало [, длина])‏
Параметры начало и длина задаются по определенным правилам:
если параметр начало >0, замена начинается с заданной позиции;
если параметр начало <0, замена начинается с позиции (длина строки - начало);
если параметр длина >0, заменяется фрагмент заданной длины;
если параметр длина <0, замена завершается в позиции (длина строки - длина).

Функции РНР для работы с регулярными выражениями (Perl-совместимые)‏Функция substr_replace( ) - заменяет часть строки, которая начинается с

Слайд 51Преобразование текста в HTML
Функция nl2br( ) заменяет все символы новой

строки (\n) эквивалентными конструкциями HTML
. Синтаксис:
nl2br (строка)‏
Символы новой строки

могут быть как видимыми (то есть явно включенными в строку), так и невидимыми (например, введенными в редакторе).
Пример:
$text_recipe = "
Party Sauce recipe:
1 can stewed tomatoes
3 tablespoons fresh lemon juice
Stir together, server cold.";
$html_recipe = nl2br($text_recipe);
print $html_recipe;

Результат:
Party Sauce recipe:

1 can stewed tomatoes

3 tablespoons fresh lemon juice

Stir together, server cold.

Преобразование текста в HTMLФункция nl2br( ) заменяет все символы новой строки (\n) эквивалентными конструкциями HTML . Синтаксис:nl2br

Слайд 52Преобразование текста в HTML
Функция htmlentities( )
- преобразует символы в

эквивалентные конструкции HTML. Синтаксис:
htmlentities (строка)‏
Пример:
$user_input = "The cookbook, entitled 'Cafe

Francaise' costs < $42.25.";
$converted_input = htmlentities($user_input);
// $converted_input = "The cookbook, entitled 'Cafè Française' costs <$42.25.";
Результат:

Функция htmlentities( ) в настоящее время работает только для символов кодировки ISO-8559-1 (ISO-Latin-1).

Преобразование текста в HTMLФункция htmlentities( ) - преобразует символы в эквивалентные конструкции HTML. Синтаксис:htmlentities (строка)‏Пример:$user_input =

Слайд 53Преобразование текста в HTML
Функция htmlspecialchars( )
- заменяет некоторые символы,

имеющие особый смысл в контексте HTML, эквивалентными конструкциями HTML. Синтаксис:
htmlspecialchars

(строка)‏

Функция htmlspecialchars( ) в настоящее время преобразует следующие символы:
& преобразуется в &
" " преобразуется в "
< преобразуется в <
> преобразуется в >.
Функция позволяет предотвратить ввод пользователями разметки HTML в интерактивных web-приложениях (например, в форумах).


Слайд 54Преобразование текста в HTML
Функция htmlspecialchars( )
Пример: удаление потенциально опасных

символов:
$user_input = "I just can't get «enough» of PHP &

those fabulous cooking recipes!";
$conv_input = htmlspecialchars($user_input);
// $conv_input = "I just can't <<enough>> of PHP & those fabulous cooking recipes!"

Если функция htmlspecialchars( ) используется в сочетании с nl2br( ), то последнюю следует вызывать после htmlspecialchars( ), иначе конструкции
, сгенерированные при вызове nl2br( ), преобразуются в видимые символы.

Преобразование текста в HTMLФункция htmlspecialchars( ) Пример: удаление потенциально опасных символов:$user_input =

Слайд 55Преобразование текста в HTML
Функция strtr( )
- транслирует строку, то

есть заменяет в ней все символы, входящие в строку источник,

соответствующими символами строки приемник. Синтаксис:
strtr (строка, источник, приемник)‏

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

Альтернативный синтаксис:
strtr (строка, массив)‏
Параметр массив — ассоциативный массив, ключи которого соответствуют заменяемым подстрокам, а значения — заменяющим подстрокам.

Преобразование текста в HTMLФункция strtr( ) - транслирует строку, то есть заменяет в ней все символы, входящие

Слайд 56Преобразование текста в HTML
Функция strtr( )
Пример:
$source = array("" =>

"", " => "");
$string = "Today In PHP-Powered News";
print strtr($string,

$source);
// Выводится строка "Today in PHP-Powered News"

Слайд 57Преобразование HTML в простой текст
Функция strip_tags( )
- удаляет из

строки все теги HTML и РНР, оставляя в ней только

текст. Синтаксис:
strip_tags (строка [, разрешенные_тerи])‏

Пример:
$user_input = "Пример замены полужирного и курсивного текста обычным начертанием.";
$stripped_input = strip_tags ($user_input);
print $stripped_input;
$strip_input = strip_tags ($user_input, "");
print $strip_input;
Преобразование HTML в простой текстФункция strip_tags( ) - удаляет из строки все теги HTML и РНР, оставляя

Слайд 58Преобразование HTML в простой текст
Функция get_meta_tags( )‏
- предназначена для поиска

в файле HTML тегов МЕТА.
Синтаксис:
get_meta_tags (имя_файла/URL [, включение_пути])‏

Теги МЕТА содержат

информацию о странице, используемую главным образом поисковыми системами. Эти теги находятся внутри пары тегов ....
Функция get_meta_tags( ) ищет в заголовке документа теги, начинающиеся словом МЕТА, и сохраняет имена тегов и их содержимое в ассоциативном массиве.
Данные тегов МЕТА можно извлекать не только из файлов, находящихся на сервере, но и из других URL.

Преобразование HTML в простой текстФункция get_meta_tags( )‏- предназначена для поиска в файле HTML тегов МЕТА.Синтаксис:get_meta_tags (имя_файла/URL [,

Слайд 59Преобразование HTML в простой текст
Пример: example.html

Примеры PHP

код, примеры, программирование, web">

">

Скрипт:
$meta_tags = get_meta_tags("example.html");
// Переменная $meta_tags содержит массив:
// $meta_tags["keywords"] = "PHP, код, примеры, программирование, web";
// $meta_tags["description"] = "Ресурс, посвященный программированию на PHP.";
// $meta_tags["author"] = "П.П.Иванов";

Преобразование HTML в простой текстПример: example.html Примеры PHPСкрипт:$meta_tags = get_meta_tags(

Слайд 60Преобразование строки к верхнему и нижнему регистру
Функция strtolower( )
-

преобразует все алфавитные символы строки к нижнему регистру. Синтаксис:
strtolower(строка)‏
Неалфавитные символы

функцией не изменяются.

Пример:
$sentence = "В этом ПРЕДЛОЖЕНИИ все СЛОВА набраны В НИЖНЕМ регистре.";
$sentence = strtolower($sentence);

Функция strtoupper()‏
- преобразование к верхнему регистру.
Неалфавитные символы функцией не изменяются.

Преобразование строки к верхнему и нижнему региструФункция strtolower( ) - преобразует все алфавитные символы строки к нижнему

Слайд 61Преобразование строки к верхнему и нижнему регистру
Функция ucfirst( )
-

преобразует к верхнему регистру первый символ строки — при условии,

что он является алфавитным символом. Синтаксис:
ucfirst (строка)‏
Неалфавитные символы функцией не изменяются.

Функция ucwords( )
- преобразует к верхнему регистру первую букву каждого слова в строке. Синтаксис:
ucwords (строка)‏
Неалфавитные символы функцией не изменяются.
«Слово» определяется как последовательность символов, отделенная от других элементов строки пробелами.

Преобразование строки к верхнему и нижнему региструФункция ucfirst( ) - преобразует к верхнему регистру первый символ строки

Слайд 62Пример: идентификация браузера
Чтобы пользователь мог просматривать страницу в формате, соответствующем

специфике его браузера и операционной системы, из входящего запроса на

получение страницы извлекается информация о браузере и платформе. После получения необходимых данных пользователь перенаправляется на нужную страницу.
Программа определяет тип и версию браузера и операционной системы, после чего выводит полученную информацию в окне браузера.
В стандартной переменной $HTTP_USER_AGENT в строковом формате хранятся различные сведения о браузере и операционной системе пользователя.
Пример:
Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)‏

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

Слайд 63Пример: идентификация браузера
Алгоритм:
Определить две функции для идентификации браузера и операционной

системы: browser_info( ) и opsys_info( ).
Функция browser_info( ):
Определить

тип браузера, используя функцию ereg( ).
Воспользоваться конструкцией if/elseif для идентификации следующих браузеров и их версий: Internet Explorer, Opera, Netscape и браузер неизвестного типа.
Вернуть информацию о типе и версии браузера в виде массива.
Функция opsys_info( ) определяет тип операционной системы.
Использовать функцию strstr( ).
Воспользоваться конструкцией if/elseif для идентификации следующих систем: Windows, Linux, UNIX, Macintosh и неизвестная операционная система.
Вернуть информацию об операционной системе.

Пример: идентификация браузераАлгоритм:Определить две функции для идентификации браузера и операционной системы: browser_info( ) и opsys_info( ). Функция

Слайд 64Пример: идентификация браузера

= "IE";
$browse version = $version[1];
elseif (ereg( 'Opera ([0-9].[0-9]{1,2})'. $agent, $version)):
$browse_type

= "Opera":
$browse_version = $version[1]:
elseif (ereg( 'Mozilla/([0-9].[0-9]{1,2})'. $agent, $version)) :
$browse_type = "Netscape";
$browse_version = $version[1];
else :
$browse_type = "Unknown";
$browse_version = "Unknown";
endif:
return array ($browse_type, $browse_version);
}

Пример: идентификация браузера

Слайд 65Пример: идентификация браузера
function opsys_info($agent) {
if (strstr ($agent, 'win') ) :
$opsys

= "windows";
elseif ( strstr($agent, 'Linux') ) :
$opsys = "Linux";
elseif (

strstr ($agent, 'Unix') ) :
$opsys = "Unix";
elseif ( strstr ($agent, 'Mac') ) :
$opsys = "Macintosh";
$opsys = "Unknown";
endif;
return $opsys;
}

Пример: идентификация браузераfunction opsys_info($agent) {if (strstr ($agent, 'win') ) :$opsys =

Слайд 66Пример: идентификация браузера
list ($browse_type, $browse_version)=browser_info($HTTP_USER_AGENT);
$operating_sys = opsys_info ($HTTP_USER_AGENT);
print "Browser

Type: $browse_type
";
print "Browser Version: $browse_version
";
print "Operating System: $operating_sys


";
?>

Например, если пользователь работает в браузере Netscape 4.75 на компьютере с системой Windows, будет выведен результат:

Browser Type: Netscape
Browser Version: 4.75
Operating System: Windows

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика