﻿<?php
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
echo "<HTML><HEAD><TITLE></TITLE>\n";
echo "<META content=\"TEXT/HTML; CHARSET=WINDOWS-1251\" http-equiv=CONTENT-TYPE>\n";
echo "<META content=\"Microsoft FrontPage 4.0\" name=GENERATOR>\n";
echo "<STYLE></STYLE>\n";
echo "</HEAD>\n";
echo "<body background=../FON.JPG>\n";
echo "<ul>\n";
echo "\n";
echo "  <li><a href=\"#a\"><font face=\"Times New Roman\" size=3>Глава 8.\n";
echo "    Строки и регулярные выражения</font></a> </li>\n";
echo "  <ul>\n";
echo "    <li><a href=\"#b\"><font face=\"Times New Roman\" size=\"3\">Регулярные\n";
echo "      выражения</font></a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#c\"><font face=\"Times New Roman\" size=\"3\">синтаксис\n";
echo "          регулярных выражений(POSIX)</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#d\"><font face=\"Times New Roman\" size=\"3\">Функции PHP\n";
echo "      для работы с регулярными выражениями(POSIX-совместимые)</font></a></li>\n";
echo "    <li><a href=\"#e\"><font face=\"Times New Roman\" size=\"3\">Синтаксис\n";
echo "      регулярных выражений в стиле Perl</font></a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#f\"><font face=\"Times New Roman\" size=\"3\">Метасимволы</font></a></li>\n";
echo "        <li><a href=\"#g\"><font face=\"Times New Roman\" size=\"3\">Модификаторы</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#h\"><font face=\"Times New Roman\" size=\"3\">Функции PHP\n";
echo "      для работы с регулярными выражениями(Perl-совместимые)</font></a></li>\n";
echo "    <li><a href=\"#i\"><font face=\"Times New Roman\" size=\"3\">Другие\n";
echo "      строковые функции</font></a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#j\"><font face=\"Times New Roman\" size=\"3\">Дополнение\n";
echo "          и сжатие строк</font></a></li>\n";
echo "        <li><a href=\"#k\"><font face=\"Times New Roman\" size=\"3\">Определение\n";
echo "          длины строки</font></a></li>\n";
echo "        <li><a href=\"#l\"><font face=\"Times New Roman\" size=\"3\">Сравнение\n";
echo "          двух строк</font></a></li>\n";
echo "        <li><a href=\"#m\"><font face=\"Times New Roman\" size=\"3\">Обработка\n";
echo "          строковых данных без применения\n";
echo "          регулярных выражений</font></a></li>\n";
echo "        <li><a href=\"#n\"><font face=\"Times New Roman\" size=\"3\">Преобразование\n";
echo "          строк и файлов к формату HTML и наоборот</font></a></li>\n";
echo "        <li><a href=\"#o\"><font face=\"Times New Roman\" size=\"3\">Преобразование\n";
echo "          HTML в простой текст</font></a></li>\n";
echo "        <li><a href=\"#p\"><font face=\"Times New Roman\" size=\"3\">Преобразование\n";
echo "          строки к верхнему и нижнему регистру</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#q\"><font face=\"Times New Roman\" size=\"3\">Проект: идентификация\n";
echo "      браузера</font></a></li>\n";
echo "    <li><a href=\"#r\"><font face=\"Times New Roman\" size=\"3\">Итоги</font></a>\n";
echo "    </li>\n";
echo "  </ul>\n";
echo "</ul>\n";
echo "<A NAME=\"a\"></A>\n";
echo "\n";
echo "<p>&nbsp;</p>\n";
echo "\n";
echo "<p><font color=\"#000000\" face=\"Times New Roman\" size=\"5\">ГЛАВА 8</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Times New Roman\" size=\"5\">Строки и\n";
echo "регулярные выражения</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Возможности\n";
echo "эффективной организации, поиска и\n";
echo "распространения информации давно\n";
echo "представляли интерес для специалистов в\n";
echo "области компьютерных технологий. Поскольку\n";
echo "информация в основном представляет собой\n";
echo "текст, состоящий из алфавитно-цифровых\n";
echo "символов, разработка средств поиска и\n";
echo "обработки информации по шаблонам,\n";
echo "описывающим текст, стала предметом\n";
echo "серьезных теоретических исследований.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Поиск по\n";
echo "шаблону позволяет не только находить\n";
echo "определенные фрагменты текста, но и\n";
echo "заменять их другими фрагментами. Одним из\n";
echo "стандартных примеров поиска по шаблону\n";
echo "являются команды поиска/замены в текстовых\n";
echo "редакторах — например, в MS Word, Emacs и в моем\n";
echo "любимом редакторе vi. Всем пользователям UNIX\n";
echo "хорошо известны такие программы, как sed, awk и\n";
echo "grep; богатство возможностей этих программ в\n";
echo "значительной степени обусловлено\n";
echo "средствами поиска по шаблону. Механизмы\n";
echo "поиска по шаблону решают четыре основные\n";
echo "задачи:</font></p>\n";
echo "<ul>\n";
echo "  <li><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">поиск\n";
echo "    строк, в точности совпадающих с заданным\n";
echo "    шаблоном;</font></font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">поиск\n";
echo "    фрагментов строк, совпадающих с заданным\n";
echo "    шаблоном;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">замену\n";
echo "    строк и подстрок по шаблону;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">поиск\n";
echo "    строк, с которыми заданный шаблон </font><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">не\n";
echo "    совпадает.</font></li>\n";
echo "  </ul>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Появление Web\n";
echo "породило необходимость в более быстрых и\n";
echo "эффективных средствах поиска данных,\n";
echo "которые бы позволяли пользователям со\n";
echo "всего мира находить нужную информацию\n";
echo "среди миллиардов web-страниц. Поисковые\n";
echo "системы, онлайновые финансовые службы и\n";
echo "сайты электронной коммерции — все это\n";
echo "стало бы абсолютно бесполезным без средств\n";
echo "анализа гигантских объемов данных в этих\n";
echo "секторах. Действительно, средства\n";
echo "обработки строковой информации являются\n";
echo "жизненно важной составляющей практически\n";
echo "любого сектора, так или иначе связанного с\n";
echo "современными информационными технологиями.\n";
echo "В этой главе основное внимание посвящено\n";
echo "средствам обработки строк в РНР. Мы\n";
echo "рассмотрим некоторые стандартные\n";
echo "строковые функции (в языке их больше 60!), а из\n";
echo "приведенных определений и примеров вы\n";
echo "получите сведения, необходимые для\n";
echo "создания web-приложений. Но прежде чем\n";
echo "переходить к специфике</font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">РНР,\n";
echo "я хочу познакомить вас с базовым механизмом,\n";
echo "благодаря которому становится возможным\n";
echo "поиск по шаблону. Речь идет о регулярных\n";
echo "выражениях.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"b\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Регулярные\n";
echo "выражения</font></p>\n";
echo "</b><i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Регулярные\n";
echo "выражения </font></i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">лежат\n";
echo "в основе всех современных технологий\n";
echo "поиска по шаблону. Регулярное выражение\n";
echo "представляет собой последовательность\n";
echo "простых и служебных символов, описывающих\n";
echo "искомый текст. Иногда регулярные выражения\n";
echo "бывают простыми и понятными (например,\n";
echo "слово dog), но часто в них присутствуют\n";
echo "служебные символы, обладающие особым\n";
echo "смыслом в синтаксисе регулярных выражений,\n";
echo "— например, &lt;(?)&gt;.*&lt;\/.?&gt;.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В РНР\n";
echo "существуют два семейства функций, каждое из\n";
echo "которых относится к определенному типу\n";
echo "регулярных выражений: в стиле POSIX или в\n";
echo "стиле Perl. Каждый тип регулярных выражений\n";
echo "обладает собственным синтаксисом и\n";
echo "рассматривается в соответствующей части\n";
echo "главы. На эту тему были написаны\n";
echo "многочисленные учебники, которые можно\n";
echo "найти как в Web, так и в книжных магазинах.\n";
echo "Поэтому я приведу лишь основные сведения о\n";
echo "каждом типе, а дальнейшую информацию при\n";
echo "желании вы сможете найти самостоятельно.\n";
echo "Если вы еще не знакомы с принципами работы\n";
echo "регулярных выражений, обязательно\n";
echo "прочитайте краткий вводный курс,\n";
echo "занимающий всю оставшуюся часть этого\n";
echo "раздела. А если вы хорошо разбираетесь в\n";
echo "этой области, смело переходите к следующему\n";
echo "разделу.</font></p>\n";
echo "<p><A NAME=\"c\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Синтаксис\n";
echo "регулярных выражений (POSIX)</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Структура\n";
echo "регулярных выражений POSIX чем-то напоминает\n";
echo "структуру типичных математических\n";
echo "выражений — различные элементы (операторы)\n";
echo "объединяются друг с другом и образуют более\n";
echo "сложные выражения. Однако именно смысл\n";
echo "объединения элементов делает регулярные\n";
echo "выражения таким мощным и выразительным\n";
echo "средством. Возможности не ограничиваются\n";
echo "поиском литерального текста (например,\n";
echo "конкретного слова или числа); вы можете\n";
echo "провести поиск строк с разной семантикой,\n";
echo "но похожим синтаксисом — например, всех\n";
echo "тегов HTML в файле.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Простейшее\n";
echo "регулярное выражение совпадает с одним\n";
echo "литеральным символом — например, выражение\n";
echo "g совпадает в таких строках, как g<i>, </i>haggle и\n";
echo "bag. Выражение, полученное при объединении\n";
echo "нескольких литеральных символов, совпадает\n";
echo "по тем же правилам — например,\n";
echo "последовательность gan совпадает в любой\n";
echo "строке, содержащей эти символы (например, gang,\n";
echo "organize или Reagan).</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Оператор | (вертикальная\n";
echo "черта) проверяет совпадение одной из\n";
echo "нескольких альтернатив. Например,\n";
echo "регулярное выражение php | zend проверяет\n";
echo "строку на наличие php или zend.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Квадратные\n";
echo "скобки</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Квадратные\n";
echo "скобки ([ ]) имеют особый смысл в контексте\n";
echo "регулярных выражений — они означают «любой\n";
echo "символ из перечисленных в скобках». В\n";
echo "отличие от регулярного выражения php,\n";
echo "которое совпадает во всех строках,\n";
echo "содержащих литеральный текст php, выражение [php]\n";
echo "совпадает в любой строке, содержащей\n";
echo "символы р или h. Квадратные скобки играют\n";
echo "важную роль при работе с регулярными\n";
echo "выражениями, поскольку в процессе поиска\n";
echo "часто возникает задача поиска символов из\n";
echo "заданного интервала. Ниже перечислены\n";
echo "некоторые часто используемые интервалы:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[0-9] —\n";
echo "    совпадает с любой десятичной цифрой от 0\n";
echo "    до 9;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[a-z] —\n";
echo "    совпадает с любым символом нижнего\n";
echo "    регистра от а до z;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[A-Z] —\n";
echo "    совпадает с любым символом верхнего\n";
echo "    регистра от А до Z;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[a -Z] —\n";
echo "    совпадает с любым символом нижнего или\n";
echo "    верхнего регистра от а до Z.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Конечно,\n";
echo "перечисленные выше интервалы всего лишь\n";
echo "демонстрируют общий принцип. Например, вы\n";
echo "можете воспользоваться интервалом [0-3] для\n";
echo "обозначения любой десятичной цифры от 0 до 3\n";
echo "или интервалом [b-v] для обозначения любого\n";
echo "символа нижнего регистра от b до v. Короче\n";
echo "говоря, интервалы определяются совершенно\n";
echo "произвольно.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Квантификаторы</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Существует\n";
echo "особый класс служебных символов,\n";
echo "обозначающих количество повторений\n";
echo "отдельного символа или конструкции,\n";
echo "заключенной в квадратные скобки. Эти\n";
echo "служебные символы (+, * и {...}) называются </font><i><font COLOR=\"#000000\">квантификаторами.\n";
echo "</font></i><font COLOR=\"#000000\">Принцип их действия проще\n";
echo "всего пояснить на примерах:</font></font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р+ означает\n";
echo "    один или несколько символов р, стоящих\n";
echo "    подряд;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р* означает\n";
echo "    ноль и более символов р, стоящих подряд;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р? означает\n";
echo "    ноль или один символ р;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р{2}\n";
echo "    означает два символа р, стоящих подряд;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р{2,3}\n";
echo "    означает от двух до трех символов р,\n";
echo "    стоящих подряд;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">р{2,}\n";
echo "    означает два и более символов р, стоящих\n";
echo "    подряд.</font></li>\n";
echo "</ul>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Прочие\n";
echo "служебные символы</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Служебные\n";
echo "символы $ и ^ совпадают не с символами, а с\n";
echo "определенными позициями в строке. Например,\n";
echo "выражение р$ означает строку, которая\n";
echo "завершается символом р, а выражение ^р —\n";
echo "строку, начинающуюся с символа р.</font></p>\n";
echo "<ul>\n";
echo "  <li><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Конструкция\n";
echo "    [^a-zA-Z] совпадает с любым символом, </font><i><font COLOR=\"#000000\">не\n";
echo "    входящим </font></i><font COLOR=\"#000000\">в указаные\n";
echo "    интервалы (a-z и A-Z).</font></font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Служебный\n";
echo "    символ . (точка) означает «любой символ».\n";
echo "    Например, выражение р.р совпадает с\n";
echo "    символом р, за которым следует\n";
echo "    произвольный символ, после чего опять\n";
echo "    следует символ р.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Объединение\n";
echo "служебных символов приводит к появлению\n";
echo "более сложных выражений. Рассмотрим\n";
echo "несколько примеров:</font></p>\n";
echo "<ul>\n";
echo "  <li><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">^.{2}$ —\n";
echo "    любая строка, содержащая </font><i><font COLOR=\"#000000\">ровно\n";
echo "    </font></i><font COLOR=\"#000000\">два символа;</font></font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">&lt;b&gt;(.*)&lt;/b&gt;\n";
echo "    — произвольная последовательность\n";
echo "    символов, заключенная между &lt;Ь&gt; и &lt;/Ь&gt;\n";
echo "    (вероятно, тегами HTML для вывода жирного\n";
echo "    текста);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">p(hp)* —\n";
echo "    символ р, за которым следует ноль и более\n";
echo "    экземпляров последовательности hp (например,\n";
echo "    phphphp).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Иногда\n";
echo "требуется найти служебные символы в\n";
echo "строках вместо того, чтобы использовать их\n";
echo "в описанном специальном контексте. Для\n";
echo "этого служебные символы экранируются\n";
echo "обратной косой чертой (\). Например, для\n";
echo "поиска денежной суммы в долларах можно\n";
echo "воспользоваться выражением \$[0-9]+, то есть «знак\n";
echo "доллара, за которым следует одна или\n";
echo "несколько десятичных цифр». Обратите\n";
echo "внимание на обратную косую черту перед $.\n";
echo "Возможными совпадениями для этого\n";
echo "регулярного выражения являются $42, $560 и $3.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Стандартные\n";
echo "интервальные выражения (символьные классы)</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Для\n";
echo "удобства программирования в стандарте POSIX\n";
echo "были определены некоторые стандартные\n";
echo "интервальные выражения, также называемые </font><i><font COLOR=\"#000000\">символьными\n";
echo "классами </font></i><font COLOR=\"#000000\">(character classes).\n";
echo "Символьный класс определяет один символ из\n";
echo "заданного интервала — например, букву\n";
echo "алфавита или цифру:</font></font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[[:alpha:]] —\n";
echo "    алфавитный символ (aA-zZ);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[[:digit:]]-цифра\n";
echo "    (0-9);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[[:alnum:]] —\n";
echo "    алфавитный символ (aA-zZ) или цифра (0-9);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">[[:space:]] —\n";
echo "    пропуски (символы новой строки, табуляции\n";
echo "    и т. д.).</font></li>\n";
echo "</ul>\n";
echo "<b>\n";
echo "<p><A NAME=\"d\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Функции РНР\n";
echo "для работы с регулярными выражениями (POSIX-совместимые)</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В настоящее\n";
echo "время РНР поддерживает семь функций поиска\n";
echo "с использованием регулярных выражений в\n";
echo "стиле POSIX:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">еrеg( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">еrеg_rерlасе(\n";
echo "    );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">eregi( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">eregi_replace( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">split( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">spliti( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">sql_regcase( ).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Описания\n";
echo "этих функций приведены в следующих\n";
echo "разделах.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ereg( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция еrеg(\n";
echo ") ищет в заданной строке совпадение для\n";
echo "шаблона. Если совпадение найдено,\n";
echo "возвращается TRUE, в противном случае\n";
echo "возвращается FALSE.</font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Синтаксис\n";
echo "функции ereg( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">ereg\n";
echo "(string шаблон, string строка [, array совпадения])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Поиск\n";
echo "производится с учетом регистра алфавитных\n";
echo "символов. Пример использования ereg( ) для\n";
echo "поиска в строках доменов .соm:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$is_com - ereg(&quot;(\.)(com$)&quot;,\n";
echo "$email):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Функция\n";
echo "возвращает TRUE, если $email завершается\n";
echo "символами &quot;.com&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// В\n";
echo "частности, поиск будет успешным для строк</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// &quot;www.wjgilmore.com&quot;\n";
echo "и &quot;someemail@apress.com&quot;</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Обратите\n";
echo "внимание: из-за присутствия служебного\n";
echo "символа $ регулярное выражение совпадает\n";
echo "только в том случае, если строка\n";
echo "завершается символами .com. Например, оно\n";
echo "совпадет в строке &quot;www.apress.com&quot;, но </font><i><font COLOR=\"#000000\">не\n";
echo "совпадет </font></i><font COLOR=\"#000000\">в строке</font></font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">&quot;www.apress.com/catalog&quot;.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр совпадения содержит массив\n";
echo "совпадений для всех подвыражений,\n";
echo "заключенных в регулярном выражении в\n";
echo "круглые скобки. В листинге 8.1 показано, как\n";
echo "при помощи этого массива разделить URL на\n";
echo "несколько сегментов.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "8.1.</font></font></i></b><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><i>\n";
echo "</i></font><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Вывод\n";
echo "элементов массива $regs</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$url = &quot;http://www.apress.com&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Разделить\n";
echo "$url на три компонента: &quot;http://www&quot;. &quot;apress&quot;\n";
echo "и &quot;com&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$www_url = ereg(&quot;^(http://www)\.([[:alnum:]+\.([[:alnum:]]+)&quot;.\n";
echo "$url, $regs);</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">if ($www_url) :\n";
echo "// Если переменная $www_url содержит URL</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">echo $regs[0]; //\n";
echo "Вся строка &quot;http://www.apress.com&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">echo $regs[l]; //\n";
echo "&quot;http://www&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">echo $regs[2]; //\n";
echo "&quot;apress&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">echo $regs[3]; //\n";
echo "&quot;com&quot; endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При\n";
echo "выполнении сценария в листинге 8.1 будет\n";
echo "получен следующий результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">http://www.apress.com\n";
echo "http://www apress com</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ereg_replace( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "ereg_replace( ) ищет в заданной строке совпадение\n";
echo "для шаблона и заменяет его новым фрагментом.\n";
echo "Синтаксис функции ereg_replace( ):</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string ereg_replace (string\n";
echo "</font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">шаблон,\n";
echo "string замена, string строке)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "ereg_replace( ) работает по тому же принципу, что и\n";
echo "ereg( ), но ее возможности расширены от\n";
echo "простого поиска до поиска с заменой. После\n";
echo "выполнения замены функция возвращает\n";
echo "модифицированную строку. Если совпадения</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">отсутствуют,\n";
echo "строка остается в прежнем состоянии.\n";
echo "Функция ereg_replace( ), как и еrеg( ), учитывает\n";
echo "регистр символов. Ниже приведен простой\n";
echo "пример, демонстрирующий применение этой\n";
echo "функции:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$copy_date = &quot;Copyright\n";
echo "1999&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$copy_date =\n";
echo "ereg_replace(&quot;([0-9]+)&quot;. &quot;2000&quot;, $copy_date);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $copy_date: //\n";
echo "Выводится строка &quot;Copyright 2000&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">У средств\n";
echo "поиска с заменой в языке РНР имеется одна\n";
echo "интересная возможность — возможность\n";
echo "использования обратных ссылок на части\n";
echo "основного выражения, заключенные в круглые\n";
echo "скобки. Обратные ссылки похожи на элементы\n";
echo "необязательного параметра-массива\n";
echo "совпадения функции еrеg( ) за одним\n";
echo "исключением: обратные ссылки записываются\n";
echo "в виде \0, \1, \2 и т. д., где \0 соответствует всей\n";
echo "строке, \1 — успешному совпадению первого\n";
echo "подвыражения и т. д. Выражение может\n";
echo "содержать до 9 обратных ссылок. В следующем\n";
echo "примере все ссылки на URL в тексте заменяются\n";
echo "работающими гиперссылками:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$url = &quot;Apress (http://www.apress.com&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$url = ereg_replace(&quot;http://(([A-Za-z0-9.\-])*)&quot;,\n";
echo "&quot;&lt;a href=\&quot;\\0\&quot;&gt;\\0&lt;/a&gt;&quot;, $url);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $url;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Выводится\n";
echo "строка:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Apress (&lt;a href=&quot;http://www.apress.com&quot;&gt;http://www.apress.com&lt;/a&gt;)</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">eregi( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция eregi( )\n";
echo "ищет в заданной строке совпадение для\n";
echo "шаблона. Синтаксис</font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">функции\n";
echo "eregi(\n";
echo "):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">eregi\n";
echo "(string шаблон, string строка [, array совпадения])</font></font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Поиск\n";
echo "производится </font><i><font COLOR=\"#000000\">без учета </font></i><font COLOR=\"#000000\">регистра\n";
echo "алфавитных символов. Функция eregi( ) особенно\n";
echo "удобна при проверке правильности введенных\n";
echo "строк (например, паролей). Использование\n";
echo "функции eregi( ) продемонстрировано в\n";
echo "следующем примере:</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$password = &quot;abc&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (! eregi(&quot;[[:alnum:]]{8.10},\n";
echo "$password) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Invalid\n";
echo "password! Passwords must be from 8 through 10 characters in length.&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// В\n";
echo "результате выполнения этого фрагмента\n";
echo "выводится сообщение об ошибке.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// поскольку\n";
echo "длина строки &quot;abc&quot; не входит в\n";
echo "разрешенный интервал</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// от 8 до 10\n";
echo "символов.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">eregi_replace( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "eregi_replасе( ) работает точно так же, как ereg_replace(\n";
echo "), за одним исключением: поиск производится\n";
echo "без учета регистра символов. Синтаксис\n";
echo "функции ereg_replace( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">eregi_replace\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">шаблон,\n";
echo "string замена, string строка)</font></font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">split( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция split( )\n";
echo "разбивает строку на элементы, границы\n";
echo "которых определяются по заданному шаблону.\n";
echo "Синтаксис функции split( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">array </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">split\n";
echo "(string шаблон, string строка [, int порог])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр порог определяет максимальное\n";
echo "количество элементов, на которые делится\n";
echo "строка слева направо. Если шаблон содержит\n";
echo "алфавитные символы, функция spl it( ) работает\n";
echo "с учетом регистра символов. Следующий\n";
echo "пример демонстрирует использование\n";
echo "функции split( ) для разбиения канонического IP-адреса\n";
echo "на триплеты:</font></p>\n";
echo "<p><font size=\"3\"><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">$ip =\n";
echo "&quot;123.345.789.000&quot;; // Канонический IP-адрес</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">$iparr =\n";
echo "split (&quot;\.&quot;, $ip) // Поскольку точка является\n";
echo "служебным символом.</font></p>\n";
echo "<font FACE=\"Courier New\" SIZE=\"1\" COLOR=\"#000000\">\n";
echo "<p></font><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// ее\n";
echo "необходимо экранировать.</font></p>\n";
echo "<p><font size=\"3\"><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;$iparr[0]\n";
echo "&lt;br&gt;&quot;; // Выводит &quot;123&quot;</font></font></p>\n";
echo "<p><font size=\"3\"><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;$iparr[1]\n";
echo "&lt;br&gt;&quot;; // Выводит &quot;456&quot;</font></font></p>\n";
echo "<p><font size=\"3\"><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;$iparr[2]\n";
echo "&lt;br&gt;&quot;; // Выводит &quot;789&quot;</font></font></p>\n";
echo "<p><font size=\"3\"><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;$iparr[3]\n";
echo "&lt;br&gt;&quot;; // Выводит &quot;000&quot;</font></font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">spliti( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "spliti( ) работает точно так же, как ее прототип\n";
echo "split( ), за одним исключением: она </font><i><font COLOR=\"#000000\">не\n";
echo "учитывает </font></i><font COLOR=\"#000000\">регистра\n";
echo "символов. Синтаксис функции spliti( ):</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">array </font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">spliti\n";
echo "(string шаблон, string строка [, int порог])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Разумеется,\n";
echo "регистр символов важен лишь в том случае,\n";
echo "если шаблон содержит алфавитные символы.\n";
echo "Для других символов выполнение spliti( )\n";
echo "полностью аналогично split( ).</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">sql_regcase( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вспомогательная\n";
echo "функция sql_regcase( ) заключает каждый символ\n";
echo "входной строки в квадратные скобки и\n";
echo "добавляет к нему парный символ. Синтаксис\n";
echo "функции</font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">sql_regcase( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">sql_regcase\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если\n";
echo "алфавитный символ существует в двух\n";
echo "вариантах (верхний и нижний регистры),\n";
echo "выражение в квадратных скобках будет\n";
echo "содержать оба варианта; в противном случае\n";
echo "исходный символ повторяется дважды.\n";
echo "Функция sql_regcase( ) особенно удобна при\n";
echo "использовании РНР с программными пакетами,\n";
echo "поддерживающими регулярные выражения в\n";
echo "одном регистре. Пример преобразования\n";
echo "строки функцией sql_regcase( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$version = &quot;php 4.0&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print sql_regcase($version);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Выводится\n";
echo "строка [Pp][Hh][Pp][ ][44][..][00]</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"e\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Синтаксис\n";
echo "регулярных выражений в стиле Perl</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Perl (<a href=\"http://www.perl.com\">http://www.perl.com</a>)\n";
echo "давно считается одним из самых лучших\n";
echo "языков обработки текстов. Синтаксис Perl\n";
echo "позволяет осуществлять поиск и замену даже\n";
echo "для самых сложных шаблонов. Разработчики РHР\n";
echo "сочли, что не стоит заново изобретать уже\n";
echo "изобретенное, а лучше сделать знаменитый\n";
echo "синтаксис регулярных выражений Perl\n";
echo "доступным для пользователей РНР. Так\n";
echo "появились функции для работы с регулярными\n";
echo "выражениями в стиле Perl.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Диалект\n";
echo "регулярных выражений Perl не так уж сильно\n";
echo "отличается от диалекта POSIX. В сущности,\n";
echo "синтаксис регулярных выражений Perl является\n";
echo "отдаленным потомком реализации POSIX,\n";
echo "вследствие чего синтаксис POSIX почти\n";
echo "совместим с функциями регулярных выражений\n";
echo "стиля Perl.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Оставшаяся\n";
echo "часть этого раздела будет посвящена\n";
echo "краткому знакомству с диалектом регулярных\n";
echo "выражений Perl. Рассмотрим простой пример:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/food/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Обратите\n";
echo "внимание: строка food заключена между двумя\n";
echo "косыми чертами. Как и в стандарте POSIX, вы\n";
echo "можете создавать более сложные шаблоны при\n";
echo "помощи квантификаторов:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/fo+/</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Этот\n";
echo "шаблон совпадает с последовательностью fo,\n";
echo "за которой могут следовать дополнительные\n";
echo "символы о. Например, совпадения будут\n";
echo "обнаружены в строках food, fool и fo4. Рассмотрим\n";
echo "другой пример использования\n";
echo "квантификатора:</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/fo{2,4}/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Шаблон\n";
echo "совпадает с символом f, за которым следуют\n";
echo "от 2 до 4 экземпляров символа о. К числу\n";
echo "потенциальных совпадений относятся строки\n";
echo "fool , fooool и foosball .</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В регулярных\n";
echo "выражениях Perl могут использоваться все\n";
echo "квантификаторы, упомянутые в предыдущем\n";
echo "разделе для регулярных выражений POSIX.</font></p>\n";
echo "<p><A NAME=\"f\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Метасимволы</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Одной из\n";
echo "интересных особенностей Perl является\n";
echo "использование </font><i><font COLOR=\"#000000\">метасимволов\n";
echo "</font></i><font COLOR=\"#000000\">при поиске. </font><i><font COLOR=\"#000000\">Метасимвол</font></i><font COLOR=\"#000000\">\n";
echo "[Следует отметить, что авторское толкование\n";
echo "термина «метасимвол» противоречит не\n";
echo "только всем традициям, по и официальной\n";
echo "документации РНР. — </font><i><font COLOR=\"#000000\">Примеч.\n";
echo "перев.</font></i><font COLOR=\"#000000\">]</font><i><font COLOR=\"#000000\"> </font></i><font COLOR=\"#000000\">представляет\n";
echo "собой алфавитный символ с префиксом \ —\n";
echo "признаком особой интерпретации следующего\n";
echo "символа. Например, метасимвол \d может\n";
echo "использоваться при поиске денежных сумм:</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/([d]+)000/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Комбинация \d\n";
echo "обозначает любую цифру. Конечно, в процессе\n";
echo "поиска часто возникает задача\n";
echo "идентификации алфавитно-цифровых символов,\n";
echo "поэтому в Perl для них был определен\n";
echo "метасимвол \w:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/&lt;([\w]+)&gt;/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Этот шаблон\n";
echo "совпадает с конструкциями, заключенными в\n";
echo "угловые скобки, — например, тёгами HTML.\n";
echo "Кстати, метасимвол \W имеет прямо\n";
echo "противоположный смысл и используется для\n";
echo "идентификации символов, не являющихся\n";
echo "алфавитно-цифровыми.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Еще один\n";
echo "полезный метасимвол, \b, совпадает с\n";
echo "границами слов:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/sa\b/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Поскольку\n";
echo "метасимвол границы слова расположен справа\n";
echo "от текста, этот шаблон совпадет в строках\n";
echo "salsa и lisa, но не в строке sand. Противоположный\n";
echo "метасимвол, \В, совпадает с чем угодно, кроме\n";
echo "границы слова:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/sa\B/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Шаблон\n";
echo "совпадает в таких строках, как sand и Sally, но не\n";
echo "совпадает в строке salsa.</font></p>\n";
echo "<p><A NAME=\"g\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Модификаторы</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Модификаторы\n";
echo "заметно упрощают работу с регулярными\n";
echo "выражениями. Впрочем, модификаторов много,\n";
echo "и в табл. 8.1 приведены лишь наиболее\n";
echo "интересные из них. Модификаторы\n";
echo "перечисляются сразу же после регулярного\n";
echo "выражения — например, /string/i.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Таблица\n";
echo "8.1.<i>\n";
echo " </i> </font></font></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Примеры\n";
echo "модификаторов</font></font></i></p>\n";
echo "<table border=\"1\" width=\"500\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "  <tr>\n";
echo "    <td width=\"100\" align=\"center\">\n";
echo "      <p align=\"left\"><b><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Модификатор</font></b></p>\n";
echo "    </td>\n";
echo "    <td width=\"351\" align=\"center\">\n";
echo "      <p align=\"left\"><b><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Описание</font></b></p>\n";
echo "    </td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"150\" align=\"center\"><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">m</font></font></td>\n";
echo "    <td width=\"351\"><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Фрагмент\n";
echo "      текста интерпретируется как состоящий\n";
echo "      из нескольких «логических строк». По\n";
echo "      умолчанию специальные символы ^ и $\n";
echo "      совпадают только в начале и в конце\n";
echo "      всего фрагмента. При включении «многострочного\n";
echo "      режима» при помощи модификатора m^ и $\n";
echo "      будут совпадать в начале и в конце </font><i><font COLOR=\"#000000\">каждой\n";
echo "      </font></i><font COLOR=\"#000000\">логической строки\n";
echo "      внутри фрагмента</font></font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"143\" align=\"center\">s</td>\n";
echo "    <td width=\"351\"><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">По\n";
echo "      смыслу противоположен модификатору m —\n";
echo "      при поиске фрагмент интерпретируется\n";
echo "      как одна строка, а все внутренние\n";
echo "      символы новой строки игнорируются</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"143\" align=\"center\">i</td>\n";
echo "    <td width=\"351\"><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Поиск\n";
echo "      выполняется без учета регистра символов</font></td>\n";
echo "  </tr>\n";
echo "</table>\n";
echo "<b></b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вводный курс\n";
echo "получился очень кратким, поскольку\n";
echo "полноценное описание по регулярным\n";
echo "выражениям выходит за рамки этой книги и\n";
echo "требует нескольких глав вместо нескольких\n";
echo "страниц. За дополнительной информацией о\n";
echo "синтаксисе регулярных выражений\n";
echo "обращайтесь к следующим ресурсам Интернета:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><a href=\"http://www.php.net/manual/pcre.pattern.modifiers.php\">http://www.php.net/manual/pcre.pattern.modifiers.php</a>;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><a href=\"http://www.php.net/manual/pcre.pattern.syntax.php\">http://www.php.net/manual/pcre.pattern.syntax.php</a>;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><a href=\"http://www.perlcom/pub/doc/manual/html/pod/perlre.html\">http://www.perlcom/pub/doc/manual/html/pod/perlre.html</a>;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><a href=\"http://www.codebits.com/p5be\">http://www.codebits.com/p5be</a>;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><a href=\"http://www.metronet.com/1/perlinfo/doc/FMTEYEWTK/regexps.html\">http://www.metronet.com/1/perlinfo/doc/FMTEYEWTK/regexps.html</a>.</font></li>\n";
echo "</ul>\n";
echo "<b>\n";
echo "<p><A NAME=\"h\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Функции РНР\n";
echo "для работы с регулярными выражениями (Perl-совместимые)</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В РНР\n";
echo "существует пять функций поиска по шаблону с\n";
echo "использованием Perl-совместимых регулярных\n";
echo "выражений:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_match( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_match_all( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_replace( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_split( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_grep( ).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Эти функции\n";
echo "подробно описаны в следующих разделах.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_match( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "pregjnatch( ) ищет в заданной строке совпадение\n";
echo "для шаблона. Если совпадение найдено,\n";
echo "возвращается TRUE, в противном случае\n";
echo "возвращается FALSE. Синтаксис функции pregjnatch( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">pregjnatch\n";
echo "(string шаблон, string строка [, array совпадения})</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При передаче\n";
echo "необязательного параметра совпадения\n";
echo "массив заполняется совпадениями различных\n";
echo "подвыражений, входящих в основное\n";
echo "регулярное выражение. В следующем примере\n";
echo "функция preg_match( ) используется для\n";
echo "проведения поиска без учета регистра:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$linе = &quot;Vi is\n";
echo "the greatest word processor ever created!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Выполнить\n";
echo "поиск слова &quot;Vi&quot; без учета регистра\n";
echo "символов:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (preg_match(&quot;/\bVi\b\i&quot;, $line, $matcn)) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Match found!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Команда if в этом примере возвращает TRUE</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">preg_match_all( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "preg_match_all( ) находит все совпадения шаблона в\n";
echo "заданной строке.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Синтаксис\n";
echo "функции preg_match_all( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\">Int </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">preg_match_all\n";
echo "(string шаблон, string строка,\n";
echo "array совпадения [, int </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">порядок])</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Порядок\n";
echo "сохранения в массиве совпадения текста,\n";
echo "совпавшего с подвыражениями, определяется\n";
echo "необязательным параметром порядок. Этот\n";
echo "параметр может принимать два значения:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">PREG_PATTERN_ORDER\n";
echo "    — используется по умолчанию, если\n";
echo "    параметр порядок не указан. Порядок,\n";
echo "    определяемый значением PREG_PATTERN_ORDER, на\n";
echo "    первый взгляд выглядит не совсем логично:\n";
echo "    первый элемент (с индексом 0) содержит\n";
echo "    массив совпадений для всего регулярного\n";
echo "    выражения, второй элемент (с индексом 1)\n";
echo "    содержит массив всех совпадений для\n";
echo "    первого подвыражения в круглых скобках и\n";
echo "    т. д.;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">PREG_SET_ORDER —\n";
echo "    порядок сортировки массива несколько\n";
echo "    отличается от принятого по умолчанию.\n";
echo "    Первый элемент (с индексом 0) содержит\n";
echo "    массив с текстом, совпавшим со всеми\n";
echo "    подвыражениями в круглых скобках для\n";
echo "    первого найденного совпадения. Второй\n";
echo "    элемент (с индексом 1) содержит\n";
echo "    аналогичный массив для второго\n";
echo "    найденного совпадения и т. д.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующий\n";
echo "пример показывает, как при помощи функции\n";
echo "preg_match_al( ) найти весь текст, заключенный\n";
echo "между тегами HTML &lt;b&gt;...&lt;/b&gt;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_info = &quot;Name:\n";
echo "&lt;b&gt;Rasmus Lerdorf&lt;/b&gt; &lt;br&gt; Title: &lt;b&gt;PHP Guru&lt;/b&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">preg_match_all (&quot;/&lt;b&gt;(.*)&lt;\/b&gt;/U&quot;,\n";
echo "Suserinfo. $pat_array);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $pat_array[0][0].&quot; &lt;br&gt; &quot;.pat_array[0][l].&quot;\n&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Rasmus Lerdorf</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">PHP</font> <font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Guru</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_replace( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "preg_repl ace( ) работает точно так же, как и ereg_replасе(\n";
echo "), за одним исключением — регулярные\n";
echo "выражения могут использоваться в обоих\n";
echo "параметрах, шаблон и замена. Синтаксис\n";
echo "функции preg_replace( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">mixed </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">preg_replace\n";
echo "(mixed шаблон, mixed замена,\n";
echo "mixed строка [, int порог])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр порог определяет максимальное\n";
echo "количество замен в строке. Интересный факт:\n";
echo "параметры шаблон и замена могут\n";
echo "представлять собой масивы. Функция preg_replace(\n";
echo ") перебирает элементы обоих массивов и\n";
echo "выполняет замену по мере их нахождения.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_split( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция preg_spl\n";
echo "it( ) аналогична split( ) за одним исключением —\n";
echo "параметр шаблон может содержать регулярное\n";
echo "выражение. Синтаксис функции preg_split( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">array preg_split (string\n";
echo "шаблон, string строка [, int порог [, int флаги]]) </font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр порог определяет максимальное\n";
echo "количество элементов, на которые делится\n";
echo "строка. В следующем примере функция preg_split( )\n";
echo "используется для выборки информации из\n";
echo "переменной.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_info=&quot;+wj+++Gilmore+++++wjgi]more@hotmail.com</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">+++++++Columbus+++OH&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$fields = preg_split(&quot;/\+{1.}/&quot;, $user_info);&nbsp;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\"> while ($x &lt;\n";
echo "sizeof($fields)):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $fields[$x].\n";
echo "&quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$x++;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">WJ</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Gilmore</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">wjgilmore@hotmail.com</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Columbus</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">OH</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">preg_grep( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "preg_grep( ) перебирает все элементы заданного\n";
echo "массива и возвращает все элементы, в\n";
echo "которых совпадает заданное регулярное\n";
echo "выражение. Синтаксис функции preg_grep():</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">array preg_grep (string\n";
echo "</font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">шаблон,\n";
echo "array массив)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Пример\n";
echo "использования функции preg_grep( ) для поиска в\n";
echo "массиве слов, начинающихся на р:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$foods = array (&quot;pasta&quot;,\n";
echo "&quot;steak&quot;, &quot;fish&quot;, &quot;potatoes&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Поиск\n";
echo "элементов, начинающихся с символа &quot;р&quot;.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// за которым следует один или несколько\n";
echo "символов</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$p_foods = preg_grep(&quot;/p(\w+)/&quot;, $foods):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$х = 0;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">while ($x &lt; sizeof($p_foods))\n";
echo ":</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $p_foods[$x].\n";
echo "&quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$Х++;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">pasta</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">potatoes</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"i\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Другие\n";
echo "строковые функции</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Кроме\n";
echo "функций для работы с регулярными\n";
echo "выражениями, описанными в первой части этой\n";
echo "главы, в РНР существует более 70 функций для\n";
echo "выполнения практически всех мыслимых\n";
echo "операций со строками. Подробное\n";
echo "перечисление и описание всех функций\n";
echo "выходит за рамки этой книги и приведет к\n";
echo "обычному повторению информации,\n";
echo "приведенной в документации РНР. По этой\n";
echo "причине я превратил оставшуюся часть главы\n";
echo "в своего рода список FAQ из вопросов, часто\n";
echo "встречающихся во многих электронных\n";
echo "конференциях РНР и на многих сайтах этой\n";
echo "тематики. На мой взгляд, этот способ\n";
echo "позволяет гораздо эффективнее описать\n";
echo "общие принципы громадной библиотеки\n";
echo "строковых функций РНР.</font></p>\n";
echo "<p><A NAME=\"j\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Дополнение и\n";
echo "сжатие строк</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В процессе\n";
echo "форматирования часто возникает\n";
echo "необходимость в изменении длины строки\n";
echo "посредством дополнения или удаления\n";
echo "символов. В РНР существует несколько\n";
echo "функций, предназначенных для решения этой\n";
echo "задачи.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">chop ( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "chop( ) возвращает строку после удаления из\n";
echo "нее завершающих пропусков и символов новой\n";
echo "строки. Синтаксис функции chop( ):\n";
echo "</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string chop(string\n";
echo "</font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере функция chop( ) удаляет лишние символы\n";
echo "новой строки:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$header = &quot;Table\n";
echo "of Contents\n\n&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$header = chop($header);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $header = &quot;Table\n";
echo "of Contents&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">str_pad( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция str_pad(\n";
echo ") выравнивает строку до определенной длины\n";
echo "заданными символами и возвращает\n";
echo "отформатированную строку. Синтаксис\n";
echo "функции str_pad( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">str_pad\n";
echo "(string строка, int длина_дополнения [, string дополнение\n";
echo "[, int тип_дополнения]])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если\n";
echo "необязательный параметр дополнение не\n";
echo "указан, строка дополняется пробелами. В\n";
echo "противном случае строка дополняется\n";
echo "заданными символами. По умолчанию строка\n";
echo "дополняется справа; тем не менее, вы можете\n";
echo "передать в параметре тип_дополнения\n";
echo "константу STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH, что\n";
echo "приведет к дополнению строки в заданном\n";
echo "направлении. Пример демонстрирует\n";
echo "дополнение строки функцией str_pad( ) с\n";
echo "параметрами по умолчанию:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$food = &quot;salad&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print str_pad ($food,\n";
echo "5): // Выводит строку &quot;salad</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере используются необязательные\n";
echo "параметры функции str_pad( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">$header = &quot;Table\n";
echo "of Contents&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">print str_pad ($header, 5, &quot;=+=+=&quot;, STR_PAD_BOTH);</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">// В браузере выводится строка =+=+= Таbе of Contents=+=+=&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">trim ( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция trim( )\n";
echo "удаляет псе пропуски с обоих краев строки и\n";
echo "возвращает полученную строку. Синтаксис\n";
echo "функции trim( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">string trim (string страна] </font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">К числу\n";
echo "удаляемых пропусков относятся и\n";
echo "специальные символы \n, \r, \t, \v и \0.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ltrim( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция lrim( )\n";
echo "удаляет все пропуски и специальные символы\n";
echo "с левого края строки и возвращает\n";
echo "полученную строку. Синтаксис функции ltrim( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string l</font></font><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">trim\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "удаляет те же специальные символы, что и\n";
echo "функция trim( ).</font></p>\n";
echo "<p><A NAME=\"k\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Определение\n";
echo "длины строки</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Длину строки\n";
echo "в символах можно определить при помощи\n";
echo "функции strlen( ). Синтаксис .функции strlen( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strlen\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующий\n";
echo "пример демонстрирует определение длины\n";
echo "строки функцией strlen( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string = &quot;hello&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$length = strlen($string);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $length = 5</font></p>\n";
echo "<p><A NAME=\"l\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Сравнение\n";
echo "двух строк</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Сравнение\n";
echo "двух строк принадлежит к числу важнейших\n";
echo "строковых операций любого языка. Хотя эту\n";
echo "задачу можно решить несколькими разными\n";
echo "способами, в РНР существуют четыре функции\n";
echo "сравнения строк:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcmp( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcasecmp( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strspn( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcspn( ).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Все эти\n";
echo "функции подробно описаны в следующих\n";
echo "разделах.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcmp( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strcmp(\n";
echo ") сравнивает две строки с учетом регистра\n";
echo "символов. Синтаксис</font> <font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">функции strcmp(\n";
echo "):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">int strcmp (string строка1,\n";
echo "string строка2) </font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">После\n";
echo "завершения сравнения strcmp( ) возвращает одно\n";
echo "из трех возможных значений:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">0, если\n";
echo "    строка1 и строка2 совпадают;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">&lt; 0, если\n";
echo "    строка1 меньше, чем строка2;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">&gt; 0, если\n";
echo "    строка2 меньше, чем строка1.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "фрагменте сравниваются две одинаковые\n";
echo "строки:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sthng1 = &quot;butter&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string2 = &quot;butter&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ((strcmp($string1.\n";
echo "$string2)) == 0) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Strings are\n";
echo "equivalent!&quot;; endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Команда if возвращает TRUE</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcasecmp( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "strcasecmp( ) работает точно так же, как strcmp( ), за\n";
echo "одним исключением — регистр символов при\n";
echo "сравнении </font><i><font COLOR=\"#000000\">не учитывается. </font></i><font COLOR=\"#000000\">Синтаксис\n";
echo "функции strcasecmp( ):</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">int strcasecmp (string cтpoкa1,\n";
echo "string строка2)</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "фрагменте сравниваются две одинаковые\n";
echo "строки:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string1 = &quot;butter&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string2 = &quot;Butter&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ((strcmp($string1,\n";
echo "$string2)) == 0) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Strings are\n";
echo "equivalent!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Команда if возвращает TRUE</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strspn( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strspn(\n";
echo ") возвращает длину первого сегмента строки1,\n";
echo "содержащего символы, присутствующие в\n";
echo "строке2. Синтаксис функции strspn( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strspn\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка1,\n";
echo "string строка2)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующий\n";
echo "фрагмент показывает, как функция strspn( )\n";
echo "используется для проверки пароля:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$password =\n";
echo "&quot;12345&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (strspn($password,\n";
echo "&quot;1234567890&quot;) != strlen($password)) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Password\n";
echo "cannot consist solely of numbers!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif:</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strcspn( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "strcspn( ) возвращает длину первого сегмента\n";
echo "строки1, содержащего символы, </font><i><font COLOR=\"#000000\">отсутствующие\n";
echo "</font></i><font COLOR=\"#000000\">в строке2. Синтаксис\n";
echo "функции strcspn( ):</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int strcspn (string </font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка1,\n";
echo "string строка2)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "фрагменте функция strcspn( ) используется для\n";
echo "проверки пароля:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$password =\n";
echo "&quot;12345&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (strcspn($password,\n";
echo "&quot;1234567890&quot;) == 0) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Password\n";
echo "cannot consist solely of numbers!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><A NAME=\"m\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Обработка\n";
echo "строковых данных без применения регулярных\n";
echo "выражений</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При\n";
echo "обработке больших объемов информации\n";
echo "функции регулярных выражений сильно\n";
echo "замедляют выполнение программы. Эти\n";
echo "функции следует применять лишь при\n";
echo "обработке относительно сложных строк, в\n";
echo "которых регулярные выражения\n";
echo "действительно необходимы. Если же анализ\n";
echo "текста выполняется по относительно простым\n";
echo "правилам, можно воспользоваться\n";
echo "стандартными функциями РНР, которые\n";
echo "заметно ускоряют обработку. Все эти функции\n";
echo "описаны ниже.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtok( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strtok(\n";
echo ") разбивает строку на лексемы по\n";
echo "разделителям, заданным вторым параметром.\n";
echo "Синтаксис функции strtok( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">string strtok (string строка,\n";
echo "string разделители) </font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">У функции\n";
echo "strtok( ) есть одна странность: чтобы полностью\n";
echo "разделить строку, функцию необходимо\n";
echo "последовательно вызвать несколько раз. При\n";
echo "очередном вызове функция выделяет из\n";
echo "строки следующую лексему. При этом параметр\n";
echo "строка задается всего один раз — функция\n";
echo "отслеживает текущую позицию в строке до тех\n";
echo "пор, пока строка не будет полностью\n";
echo "разобрана на лексемы или не будет задан\n";
echo "новый параметр строка. Следующий пример\n";
echo "демонстрирует разбиение строки по\n";
echo "нескольким разделителям:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$info = &quot;WJ\n";
echo "Gi1more:wjgilmore@hotmail.com | Columbus, Ohio&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Ограничители - двоеточие (:), вертикальная\n";
echo "черта (|) и запятая (.) $tokens = &quot;:|,&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$tokenized = strtok($info,\n";
echo "$tokens);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Вывести элементы массива $tokenized</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">while ($tokenized)\n";
echo ":</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">echo &quot;Element =\n";
echo "$tokenized&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Обратите\n";
echo "внимание: при последующих вызовах strtok</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// первый\n";
echo "аргумент не передается</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$tokenized = strtok($tokens);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endwhile;</font></p>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Element = WJGilmore</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Element =\n";
echo "wjgilmore@hotmail.com</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Element = Columbus</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Element = Ohio</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">parse_str( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "parse_str( ) выделяет в строке пары «переменная-значение»\n";
echo "и присваивает значения переменных в\n";
echo "текущей области видимости. Синтаксис\n";
echo "функции parse_str( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">void </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">parse_str\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "parse_str( ) особенно удобна при обработке URL,\n";
echo "содержащих данные форм HTML или другую\n";
echo "расширенную информацию. В следующем\n";
echo "примере анализируется информация,\n";
echo "переданная через URL. Строка представляет\n";
echo "собой стандартный\n";
echo "способ передачи данных между страницами\n";
echo "либо откомпилированных в гиперссылке, либо\n";
echo "введенных в форму HTML:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$url = &quot;fname=wj&amp;lname=gilmore&amp;zip=43210&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">parse_str($url);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// После\n";
echo "выполнения parse_str( ) доступны следующие\n";
echo "переменные:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $fname = &quot;wj&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $lname = &quot;gilmore&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $zip =\n";
echo "&quot;43210&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Поскольку\n";
echo "эта функция создавалась для работы с URL, она\n";
echo "игнорирует символ амперсанд (&amp;).</font></p>\n";
echo "<p><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\"><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Работа\n";
echo "с формами HTML в РНР описана в главе 10.</font>\n";
echo "</i></p>\n";
echo "<p>&nbsp;</p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">explode ( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция explode(\n";
echo ") делит строку на элементы и возвращает эти\n";
echo "элементы в виде массива.\n";
echo "Синтаксис функции explode( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" face=\"Courier New\" size=\"3\">array explode (string разделитель, string строка\n";
echo "[, int порог])</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Разбиение\n";
echo "происходит по каждому экземпляру\n";
echo "разделителя, причем количество полученных\n";
echo "фрагментов может ограничиваться\n";
echo "необязательным параметром порог.\n";
echo "Разделение строки функцией explode( )\n";
echo "продемонстрировано в следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$info = &quot;wilson |\n";
echo "baseball | indians&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user = explode(&quot;|&quot;,\n";
echo "$info);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $user[0] =\n";
echo "&quot;wilson&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $user[1] = &quot;baseball&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $user[2] = &quot;Indians&quot;;</font></p>\n";
echo "<p><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\"><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "explode( ) практически идентична функции\n";
echo "регулярных выражений POSIX split( ), описанной\n";
echo "выше. Главное различие заключается в том,\n";
echo "что передача регулярных выражений в\n";
echo "параметрах допускается только при вызове\n";
echo "split( ).</font></p>\n";
echo "</i><b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">implode ( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если функция\n";
echo "explode( ) разделяет строку на элементы массива,\n";
echo "то ее двойник — функция implode( ) - объединяет\n";
echo "массив в строку. Синтаксис функции implode( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">implode\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">разделитель,\n";
echo "array фрагменты)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Формирование\n";
echo "строки из массива продемонстрировано в\n";
echo "следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$ohio_cities = array\n";
echo "(&quot;Columbus&quot;, &quot;Youngstown&quot;, &quot;Cleveland&quot;, &quot;Cincinnati&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$city_string = implode(&quot;l&quot;,\n";
echo "$ohio_cities);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $city_string =\n";
echo "&quot;Columbus | Youngstown | Cleveland | Cincinnati&quot;;</font></p>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\">У\n";
echo "implode( ) имеется псевдоним — функция join( ).</font>\n";
echo "</i></p>\n";
echo "<p>&nbsp;<b><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strpos ( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strpos(\n";
echo ") находит в строке первый экземпляр\n";
echo "заданной подстроки. Синтаксис функции strpos(\n";
echo "):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">strpos\n";
echo "(string строка, string\n";
echo "подстрока [, int смещение])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр offset задает позицию, с которой\n";
echo "должен начинаться поиск. Если подстрока не\n";
echo "найдена, strpos( ) возвращает FALSE (0).</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере определяется позиция первого\n";
echo "вхождения даты в файл журнала:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$log = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">206.169.23.11:/www/:2000-08-10</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">206.169.23.11:/www/logs/:2000-02-04</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">206.169.23.11:/www/img/:1999-01-31&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// В какой\n";
echo "позиции в журнале впервые встречается 1999\n";
echo "год?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$pos = strpos($log,\n";
echo "&quot;1999&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $pos = 95.\n";
echo "поскольку первый экземпляр &quot;1999&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// находится\n";
echo "в позиции 95 строки, содержащейся в\n";
echo "переменной $log</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">strrpos( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strrpos(\n";
echo ") находит в строке последний экземпляр\n";
echo "заданного символа. Синтаксис функции strrpos( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strpos\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка,\n";
echo "char символ)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">По\n";
echo "возможностям эта функция уступает своему\n";
echo "двойнику — функции strpos( ), поскольку она\n";
echo "позволяет искать только отдельный символ, а\n";
echo "не всю строку. Если во втором параметре strrpos(\n";
echo ") передается строка, при поиске будет\n";
echo "использован только ее первый символ.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">str_replace( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "str_replace( ) ищет в строке все вхождения\n";
echo "заданной подстроки и заменяет их новой\n";
echo "подстрокой. Синтаксис функции str_replace( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">str_replace\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">подстрока,\n";
echo "string замена, string строка)</font></font></p>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Sovet.gif\" align=left width=\"36\" height=\"35\">Функция\n";
echo "substr_replace( ), описанная ниже в этом разделе,\n";
echo "позволяет провести заме ну лишь в\n";
echo "определенной части строки. Ниже показано,\n";
echo "как функция str_replace( ) используется для\n";
echo "проведения глобальной замены в строке.</font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если\n";
echo "подстрока ни разу не встречается в строке,\n";
echo "исходная строка не изменяется:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$favorite_food = &quot;My\n";
echo "favorite foods are ice cream and chicken wings&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$favorite_food =\n";
echo "str_replace(&quot;chicken_wings&quot;, &quot;pizza&quot;, $favohte_food);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "$favorite_food = &quot;My favorite foods are ice cream and pizza&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strstr( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strstr(\n";
echo ") возвращает часть строки, начинающуюся с\n";
echo "первого вхождения заданной подстроки.\n";
echo "Синтаксис функции strstr( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strstr\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка,\n";
echo "string подстрока)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере функция strstr( ) используется для\n";
echo "выделения имени домена из URL:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$url = &quot;http://www.apress.com&quot;;\n";
echo "$domain - strstr($url, &quot;.&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $domain = &quot;.apress.com&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">substr( )</font></p>\n";
echo "</b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Функция\n";
echo "substr( ) возвращает часть строки, начинающуюся\n";
echo "с заданной начальной позиции и имеющую\n";
echo "заданную длину. Синтаксис функции substr( ):</font></font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font><font size=\"3\"><font COLOR=\"#000000\">substr\n";
echo "(string строка, int\n";
echo "начало [, int </font></font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">длина])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если\n";
echo "необязательный параметр длина не указан,\n";
echo "считается, что подстрока начинается с\n";
echo "заданной начальной позиции и продолжается\n";
echo "до конца строки. При использовании этой\n";
echo "функции необходимо учитывать четыре\n";
echo "обстоятельства:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр начало положителен, возвращаемая\n";
echo "подстрока начинается с позиции строки с\n";
echo "заданным номером;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр начало отрицателен, возвращаемая\n";
echo "подстрока начинается с позиции (длина\n";
echo "строки - начало);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр длина положителен, в возвращаемую\n";
echo "подстроку включаются все символы от\n";
echo "позиции начало до позиции начало+длина.\n";
echo "Если последняя величина превышает длину\n";
echo "строки, возвращаются символы до конца\n";
echo "строки;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр длина отрицателен, возвращаемая\n";
echo "подстрока заканчивается на заданном\n";
echo "расстоянии от конца строки.</font></li>\n";
echo "</ul>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Sovet.gif\" align=left width=\"36\" height=\"35\">Помните\n";
echo "о том, что параметр начало определяет\n";
echo "смещение от первого символа строки; таким\n";
echo "образом, возвращаемая строка в\n";
echo "действительности начинается с символа с\n";
echo "номером (начало + 1).</font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующий\n";
echo "пример демонстрирует выделение части\n";
echo "строки функцией substr( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$car = &quot;1944 Ford&quot;;\n";
echo "Smodel = substr($car, 6);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Smodel = &quot;Ford&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Пример с\n";
echo "положительным параметром длина:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$car = &quot;1944 Ford&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$model = substr($car,\n";
echo "0, 4);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $model =\n";
echo "&quot;1944&quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Пример с\n";
echo "отрицательным параметром длина:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$car = &quot;1944 Ford&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$model = substr($car,\n";
echo "2, -5);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $model =\n";
echo "&quot;44&quot;</font></p>\n";
echo "<b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>&nbsp;substr_count( )</p>\n";
echo "</font></b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "substr_count( ) возвращает количество вхождений\n";
echo "подстроки в заданную строку. Синтаксис\n";
echo "функции substr_count( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">int </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">substr_count\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка,\n";
echo "string подстрока)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере функция substr_count( ) подсчитывает\n";
echo "количество вхождений подстроки ain:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$tng_twist = &quot;The\n";
echo "rain falls mainly on the plains of Spain&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$count = substr_count($tng_twist,\n";
echo "&quot;ain&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $count = 4</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">substr_replace( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "substr_replace( ) заменяет часть строки, которая\n";
echo "начинается с заданной позиции. Если задан\n";
echo "необязательный параметр длина, заменяется\n";
echo "фрагмент заданной длины; в противном случае\n";
echo "производится замена по всей длине\n";
echo "заменяющей строки. Синтаксис функции\n";
echo "substr_replace( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">substr_replace\n";
echo "(string строка, string замена,\n";
echo "int начало [, int длина])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Параметры\n";
echo "начало и длина задаются по определенным\n";
echo "правилам:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр начало положителен, замена\n";
echo "начинается с заданной позиции;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр начало отрицателен, замена\n";
echo "начинается с позиции (длина строки -начало);</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр длина положителен, заменяется\n";
echo "фрагмент заданной длины;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">если\n";
echo "параметр длина отрицателен, замена\n";
echo "завершается в позиции (длина строки -длина).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Простая\n";
echo "замена текста функцией substr_replace( )\n";
echo "продемонстрирована в следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$favs = &quot; 's\n";
echo "favorite links&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$name = &quot;Alessia&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Параметры\n";
echo "&quot;0, 0&quot; означают, что заменяемый фрагмент\n";
echo "начинается</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// и\n";
echo "завершается в первой позиции строки.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$favs - substr_replace($favs,\n";
echo "$name, 0, 0);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print $favs:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Alessia's favorite\n";
echo "links</font></p>\n";
echo "<p><A NAME=\"n\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Преобразование\n";
echo "строк и файлов к формату HTML и наоборот</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Преобразовать\n";
echo "строку или целый файл к формату,\n";
echo "подходящему для просмотра в web-браузере (или\n";
echo "наоборот), проще, чем может показаться на\n";
echo "первый взгляд. В РНР для этого существуют\n";
echo "специальные функции.</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Преобразование\n";
echo "текста в HTML</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Быстрое\n";
echo "преобразование простого текста к формату\n";
echo "web-браузера — весьма распространенная\n";
echo "задача. В ее решении вам помогут функции,\n";
echo "описанные в этом разделе.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">nl2br( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция nl2br( )\n";
echo "заменяет все символы новой строки (\n)\n";
echo "эквивалентными конструкциями HTML &lt;br&gt;.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Синтаксис\n";
echo "функции nl2br( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">nl2br\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Символы\n";
echo "новой строки могут быть как видимыми (то\n";
echo "есть явно включенными в строку), так и\n";
echo "невидимыми (например, введенными в\n";
echo "редакторе). В следующем примере текстовая\n";
echo "строка преобразуется в формат HTML\n";
echo "посредством замены символов \n разрывами\n";
echo "строк:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Текстовая\n";
echo "строка, отображаемая в редакторе.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$text_recipe = &quot;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Party Sauce recipe:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">1 can stewed tomatoes</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">3 tablespoons fresh\n";
echo "lemon juice</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Stir together, server\n";
echo "cold.&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Преобразовать символы новой строки в &lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$htinl_recipe = nl2br($text_recipe)</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">При\n";
echo "последующем выводе $html_recipe браузеру будет\n";
echo "передан следующий текст в формате HTML:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Party Sauce recipe:&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">1 can stewed tomatoes&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">3 tablespoons fresh\n";
echo "lemon juice&lt;br&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Stir together, server\n";
echo "cold.&lt;br&gt;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">htmlentities( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "htmlentities( ) преобразует символы в\n";
echo "эквивалентные конструкции HTML. Синтаксис\n";
echo "функции htmlentities:</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">htmlentities\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере производится необходимая замена\n";
echo "символов строки для вывода в браузере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_input = &quot;The\n";
echo "cookbook, entitled Cafe Francaise' costs &lt; $42.25.&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$converted_input =\n";
echo "htmlentities($user_input);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $converted_input =\n";
echo "&quot;The cookbook, entitled 'Caf&amp;egrave;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Frac&amp;ccediliaise'\n";
echo "costs &amp;lt; 42.25.&quot;;</font></p>\n";
echo "<p><i><font COLOR=\"#000000\"><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\">Функция htmlentities( ) в\n";
echo "настоящее время работает только для\n";
echo "символов кодировки ISO-8559-1 (ISO-Latin-1). Кроме\n";
echo "того, она не преобразует пробелы в &amp;nbsp;,\n";
echo "как следовало бы ожидать.</font></p>\n";
echo "</i><b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">htmlspecialchars( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "htmlspecialchars( ) заменяет некоторые символы,\n";
echo "имеющие особый смысл в контексте HTML,\n";
echo "эквивалентными конструкциями HTML. Синтаксис\n";
echo "функции htmlspecialchars( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">htmlspecialchars\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция html\n";
echo "special chars( ) в настоящее время преобразует\n";
echo "следующие символы:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&amp;\n";
echo "преобразуется в &amp;amp;; &quot; &quot;\n";
echo "преобразуется в &amp;quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;\n";
echo "преобразуется в &amp;lt;; &gt; преобразуется в\n";
echo "&amp;gt;.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В частности,\n";
echo "эта функция позволяет предотвратить ввод\n";
echo "пользователями разметки HTML в интерактивных\n";
echo "web-приложениях (например, в электронных\n";
echo "форумах). Ошибки, допущенные в разметке HTML,\n";
echo "могут привести к тому, что вся страница\n";
echo "будет формироваться неправильно. Впрочем, у\n";
echo "этой задачи существует и более эффективное\n";
echo "решение — полностью удалить теги из строки\n";
echo "функцией strip_tags( ).</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующий\n";
echo "пример демонстрирует удаление\n";
echo "потенциально опасных символов функцией\n";
echo "htmlspeclalchars( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_input = &quot;I\n";
echo "just can't get «enough» of PHP &amp; those fabulous cooking recipes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$conv_input =\n";
echo "htmlspecialchars($user_input);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $conv_input = &quot;I\n";
echo "just can't &amp;lt;&amp;lt;enough&amp;gt;&amp;gt; of PHP &amp;amp those fabulous\n";
echo "cooking</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">recipes!&quot;</font></p>\n";
echo "<p><i><font COLOR=\"#000000\"><img border=\"0\" src=\"Sovet.gif\" align=left width=\"36\" height=\"35\">Если\n";
echo "функция htmlspecialchars( ) используется в\n";
echo "сочетании с nl2br( ), то последнюю следует\n";
echo "вызывать после htmlspecialchars(\n";
echo "). В противном случае конструкции &lt;br&gt;,\n";
echo "сгенерированные при вызове nl2br( ),\n";
echo "преобразуются в видимые символы. </font></i></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">get_html_translation_table\n";
echo "( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "get_html_translation_table( ) обеспечивает удобные\n";
echo "средства преобразования текста в\n";
echo "эквиваленты HTML Синтаксис функции\n";
echo "get_htrril_translation_table( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">get_html_translation_table\n";
echo "(int </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">таблица)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "get_html_translation_table( ) возвращает одну из двух\n";
echo "таблиц преобразования (определяется\n";
echo "параметром таблица), используемых в работе\n";
echo "стандартных функций htmlspecialchars( ) и htmlentities( ).\n";
echo "Возвращаемое значение может\n";
echo "использоваться в сочетании с другой\n";
echo "стандартной функцией, strtr( ) (см. далее), для\n";
echo "преобразования текста в код HTML.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Параметр\n";
echo "таблица принимает одно из двух значений:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">HTML_ENTITIES;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">HTML_SPECIALCHARS.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере функция get_html_translation_table( )\n";
echo "используется при преобразовании текста в\n";
echo "код HTML:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string = &quot;La\n";
echo "pasta e il piatto piu amato in Italia&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$translate =\n";
echo "get_html_translation_table(HTML_ENTITIES);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print strtr($string, $translate);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Специальные символы преобразуются в\n";
echo "конструкции HTML</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// и правильно отображаются в\n";
echo "браузере.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Кстати,\n";
echo "функция array_flip( ) позволяет провести\n";
echo "преобразование текста в HTML в обратном\n";
echo "направлении и восстановить исходный текст.\n";
echo "Предположим, что вместо вывода результата\n";
echo "strtr( ) в предыдущем примере мы присвоили его\n";
echo "переменной $translated string.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере исходный текст восстанавливается\n";
echo "функцией array_flip( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$translate = array_flip($translate);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$translated_string -\n";
echo "&quot;La pasta &amp;eacute; il piatto pi&amp;uacute; amato in Italia&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$original_string = strtr($translated_string,\n";
echo "$translate);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $original_string =\n";
echo "&quot;La pasta e il piatto piu amato in Italia&quot;;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtr( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция strtr( )\n";
echo "транслирует строку, то есть заменяет в ней\n";
echo "все символы, входящие в строку источник,\n";
echo "соответствующими символами строки\n";
echo "приемник. Синтаксис функции strtr( ):</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\"><font COLOR=\"#000000\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtr\n";
echo "(string </font><font face=\"Courier New\" size=\"3\"><font COLOR=\"#000000\">строка,\n";
echo "string источник, string приемник)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Если строки\n";
echo "источник и приемник имеют разную длину,\n";
echo "длинная строка усекается до размеров\n";
echo "короткой строки.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Существует\n";
echo "альтернативный синтаксис вызова strtr( ) с\n";
echo "двумя параметрами; в этом случае второй\n";
echo "параметр содержит ассоциативный массив,\n";
echo "ключи которого соответствуют заменяемым\n";
echo "подстрокам, а значения — заменяющим\n";
echo "подстрокам. В следующем примере теги HTML\n";
echo "заменяются XML-подобными конструкциями:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$source = array(&quot;&lt;title&gt;&quot;\n";
echo "=&gt; &quot;&lt;h1&gt;&quot;. &quot;&lt;/title&gt; =&gt;\n";
echo "&quot;&lt;/h1&gt;&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$string =\n";
echo "&quot;&lt;h1&gt;Today In PHP-Powered News&quot;&lt;/h1&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print strtr($string,\n";
echo "$source);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Выводится\n";
echo "строка &quot;&lt;title&gt;Today in PHP-Powered News&lt;/title&gt;&quot;</font></p>\n";
echo "<p><A NAME=\"o\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Преобразование\n";
echo "HTML в простой текст</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Иногда\n";
echo "возникает необходимость преобразовать\n";
echo "файл в формате HTML в простой текст. Функции,\n";
echo "описанные ниже, помогут вам в решении этой\n";
echo "задачи.</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strip_tags( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "strip_tags( ) удаляет из строки все теги HTML и РНР,\n";
echo "оставляя в ней только текст. Синтаксис\n";
echo "функции strip_tags( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">strip_tags\n";
echo "(string строка [, string разрешенные_тerи])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Необязательный\n";
echo "параметр разрешенные_теги позволяет\n";
echo "указать теги, которые должны пропускаться в\n";
echo "процессе удаления.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Ниже\n";
echo "приведен пример удаления из строки всех\n";
echo "тегов HTML функцией strip_tags( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$user_input = &quot;I\n";
echo "just &lt;b&gt;love&lt;/b&gt; РНР and &lt;i&gt;gourment&lt;/i&gt; recipes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$stripped_input =\n";
echo "strip_tags($user_input);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $stripped_input =\n";
echo "&quot;I just love PHP and gourmet recipes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующем\n";
echo "примере удаляются не все, а лишь некоторые\n";
echo "теги:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$input = &quot;I &lt;b&gt;love&lt;/b&gt;\n";
echo "to &lt;a href = \&quot;http://www.eating.com\&quot;&gt;eat!&lt;/a&gt;!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$strip_input =\n";
echo "strip_tags ($user_input, &quot;&lt;a&gt;&quot;);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $strip_input =\n";
echo "&quot;I love to &lt;a href = \&quot;http://www.eating.com\&quot;&gt;eat!&lt;/a&gt;!&quot;;</font></p>\n";
echo "<p><i><font COLOR=\"#000000\"><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\">Удаление тегов из текста\n";
echo "также производится функцией fgetss( ),\n";
echo "описанной в главе 7.</font>\n";
echo "</i></p>\n";
echo "<p>&nbsp;<b><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">get_meta_tags( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Хотя функция\n";
echo "get_meta_tags( ) и не имеет прямого отношения к\n";
echo "преобразованию текста, зто весьма полезная\n";
echo "функция, о которой следует упомянуть.\n";
echo "Синтаксис функции get_meta_tags( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">array </font></font><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">get_meta_tags\n";
echo "(string имя_файла/URL [, int включение_пути])</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "get_meta_tags( ) предназначена для поиска в файле\n";
echo "HTML тегов МЕТА.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Теги МЕТА\n";
echo "содержат информацию о странице,\n";
echo "используемую главным образом поисковыми\n";
echo "системами. Эти теги находятся внутри пары\n";
echo "тегов &lt;head&gt;...&lt;/head&gt;. Применение тегов\n";
echo "МЕТА продемонстрировано в следующем\n";
echo "фрагменте (назовем его example.html, поскольку он\n";
echo "будет использоваться в листинге 8.2):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;html&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;title&gt;PHP\n";
echo "Recipes&lt;/title&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;meta name=&quot;keywords&quot;\n";
echo "content=&quot;gourmet. PHP, food. code, recipes, chef, programming, web&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;meta name=&quot;description&quot;\n";
echo "content=&quot;PHP Recipes provides savvy readers with the latest in PHP</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">programming and gourmet\n";
echo "cuisine!&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;meta name=&quot;author&quot;\n";
echo "content=&quot;WJ Gilmore&quot;&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;/head&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "get_meta_tags( ) ищет в заголовке документа теги,\n";
echo "начинающиеся словом МЕТА, и сохраняет имена\n";
echo "тегов и их содержимое в ассоциативном\n";
echo "массиве. В листинге 8.2 продемонстрировано\n";
echo "применение этой функции к файлу example.html.</font></p>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "8.2. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Извлечение\n";
echo "тегов МЕТА из файла HTML функцией get_meta_tags( )</font></font></p>\n";
echo "</i>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$meta_tags =\n";
echo "get_meta_tags(&quot;example.html&quot;):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Переменная\n";
echo "$meta_tags содержит массив со следующей\n";
echo "информацией:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $meta_tags[&quot;keywords&quot;]\n";
echo "= &quot;gourmet. PHP. food. code, recipes, chef, programming. Web&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $meta_tags[&quot;description&quot;]\n";
echo "= &quot;PHP Recipes provides savvy readers with the latest in PHP</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">programming and gourmet\n";
echo "cuisine&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// $meta_tags[&quot;author&quot;]\n";
echo "= &quot;WJ Gilmore&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Интересная\n";
echo "подробность: данные тегов МЕТА можно\n";
echo "извлекать не только из файлов, находящихся\n";
echo "на сервере, но и из других URL.</font></p>\n";
echo "<p><i><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><img border=\"0\" src=\"Sovet.gif\" align=left width=\"36\" height=\"35\">Теги\n";
echo "МЕТА и их использование превосходно\n";
echo "описаны в статье Джо Берна (Joe Burn) «So, You Want a\n";
echo "Meta Command, Huh?» на сайте HTML Goodies: <a href=\"http://htmlgoodies.earthweb.com/tutors/meta.html\"> http://htmlgoodies.earthweb.com/tutors/meta.html</a>.</font></p>\n";
echo "</i>\n";
echo "<p><A NAME=\"p\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Преобразование\n";
echo "строки к верхнему и нижнему регистру</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В РНР\n";
echo "существует четыре функции, предназначенных\n";
echo "для изменения регистра строки:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtolower( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtoupper( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucfirst( );</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucwords( ).</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Все эти\n";
echo "функции подробно описаны ниже.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\"><b>strtolower( )</b></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "strtolower( ) преобразует все алфавитные символы\n";
echo "строки к нижнему регистру. Синтаксис\n";
echo "функции strtolower( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtolower(string\n";
echo "</font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Неалфавитные\n";
echo "символы функцией не изменяются.\n";
echo "Преобразование строки к нижнему регистру\n";
echo "функцией strtolower( ) продемонстрировано в\n";
echo "следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = &quot;COOKING\n";
echo "and PROGRAMMING PHP are my TWO favorite pastimes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = strtolower($sentence);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// После\n";
echo "вызова функции $sentence содержит строку</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// &quot;cooking and\n";
echo "programming php are my two favorite pastimes!&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtoupper( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Строки можно\n";
echo "преобразовывать не только к нижнему, но и к\n";
echo "верхнему регистру. Преобразование\n";
echo "выполняется функцией strtoupper( ), имеющей\n";
echo "следующий синтаксис:</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">strtoupper\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Неалфавитные\n";
echo "символы функцией не изменяются.\n";
echo "Преобразование строки к верхнему регистру\n";
echo "функцией strtoupper( ) продемонстрировано в\n";
echo "следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = &quot;cooking\n";
echo "and programming PHP are my two favorite pastimes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = strtoupper($sentence);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// После\n";
echo "вызова функции $sentence содержит строку</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// &quot;COOKING AND\n";
echo "PROGRAMMING PHP ARE MY TWO FAVORITE PASTIMES!&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucfirst( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция ucfirst(\n";
echo ") преобразует к верхнему регистру первый\n";
echo "символ строки — при условии, что он\n";
echo "является алфавитным символом. Синтаксис\n";
echo "функции ucfirst( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucfirst\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Неалфавитные\n";
echo "символы функцией не изменяются.\n";
echo "Преобразование первого символа строки\n";
echo "функцией ucfirst( ) продемонстрировано в\n";
echo "следующем примере:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&amp;sentence = &quot;cooking\n";
echo "and programming PHP are my two favorite pastimes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = ucfirst($sentence);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// После\n";
echo "вызова функции $sentence содержит строку</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// &quot;Cooking and\n";
echo "programming PHP are mу two favorite pastimes!&quot;</font></p>\n";
echo "<b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucwords( )</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция ucwords(\n";
echo ") преобразует к верхнему регистру первую\n";
echo "букву каждого слова в строке. Синтаксис\n";
echo "функции ucwords( ):</font></p>\n";
echo "<p><font face=\"Courier New\"><font COLOR=\"#000000\" size=\"3\">string </font></font><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">ucwords\n";
echo "(string </font><font size=\"3\" face=\"Courier New\"><font COLOR=\"#000000\">строка&quot;)</font></font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Неалфавитные\n";
echo "символы функцией не изменяются. «Слово»\n";
echo "определяется как последовательность\n";
echo "символов, отделенная от других элементов\n";
echo "строки пробелами. В следующем примере\n";
echo "продемонстрировано преобразование первых\n";
echo "символов слов функцией ucwords( ):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = &quot;cooking\n";
echo "and programming PHP are my two favorite pastimes!&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = ucwords($sentence);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// После\n";
echo "вызова функции $sentence содержит строку</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// &quot;Cooking And\n";
echo "Programming PHP Are My Two Favorite Pastimes!&quot;</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"q\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Проект:\n";
echo "идентификация браузера</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Каждый\n";
echo "программист, пытающийся создать удобный web-сайт,\n";
echo "должен учитывать различия в форматировании\n";
echo "страниц при просмотре сайта в разных\n";
echo "браузерах и операционных системах. Хотя\n";
echo "консорциум W3 (http://www.w3.org) продолжает\n";
echo "публиковать стандарты, которых должны\n";
echo "придерживаться программисты при создании\n";
echo "web-приложений, разработчики браузеров любят\n";
echo "дополнять эти стандарты своими маленькими\n";
echo "«усовершенствованиями», что в конечном\n";
echo "счете вызывает хаос и путаницу.\n";
echo "Разработчики часто решают эту проблему,\n";
echo "создавая разные страницы для каждого типа\n";
echo "браузера и операционной системы — при этом\n";
echo "объем работы значительно увеличивается, но\n";
echo "зато итоговый сайт идеально подходит для\n";
echo "любого пользователя. Результат — хорошая\n";
echo "репутация сайта и уверенность в том, что\n";
echo "пользователь посетит его снова.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Чтобы\n";
echo "пользователь мог просматривать страницу в\n";
echo "формате, соответствующем специфике его\n";
echo "браузера и операционной системы, из\n";
echo "входящего запроса на получение страницы\n";
echo "извлекается информация о браузере и\n";
echo "платформе. После получения необходимых\n";
echo "данных пользователь перенаправляется на\n";
echo "нужную страницу.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Приведенный\n";
echo "ниже проект (sniffer.php) показывает, как\n";
echo "использовать функции РНР для работы с\n";
echo "регулярными выражениям с целью получения\n";
echo "информации по запросам. Программа\n";
echo "определяет тип и версию браузера и\n";
echo "операционной системы, после чего выводит\n";
echo "полученную информацию в окне браузера. Но\n";
echo "прежде чем переходить к непосредственному\n";
echo "анализу программы, я хочу представить один\n";
echo "из главных ее компонентов — стандартную\n";
echo "переменную РНР $HTTP_USER_AGENT. В этой переменной\n";
echo "в строковом формате хранятся различные\n";
echo "сведения о браузере и операционной системе\n";
echo "пользователя — именно то, что нас\n";
echo "интересует. Эту информацию можно легко\n";
echo "вывести на экран всего одной командой:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">echo $HTTP USER_AGENT;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">При работе в\n";
echo "Internet Explorer 5.0 на компьютере с Windows 98 результат\n";
echo "будет выглядеть так:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Mozilla/4.0 (compatible;\n";
echo "MSIE 5.0; Windows 98; DigExt)</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Для Netscape\n";
echo "Navigator 4.75 выводятся следующие данные:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Mozilla/4.75 (Win98; U)</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Sniffer.php\n";
echo "извлекает необходимые данные из $HTTP_USER_AGENT\n";
echo "при помощи функций обработки строк и\n";
echo "регулярных выражений. Алгоритм программы\n";
echo "на псевдокоде:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определить\n";
echo "две функции для идентификации браузера и\n";
echo "операционной системы: browser_info( ) и opsys_info( ).\n";
echo "Начнем с псевдокода функции browser_info( ).</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Определить\n";
echo "тип браузера, используя функцию егед( ). Хотя\n";
echo "эта функция работает медленнее упрощенных\n";
echo "строковых функций типа strstr( ), в данном\n";
echo "случае она удобнее, поскольку регулярное\n";
echo "выражение позволяет определить версию\n";
echo "браузера.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Воспользоваться\n";
echo "конструкцией if/elseif для идентификации\n";
echo "следующих браузеров и их версий: Internet Explorer,\n";
echo "Opera, Netscape и браузер неизвестного типа.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вернуть\n";
echo "информацию о типе и версии браузера в виде\n";
echo "массива.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Функция\n";
echo "opsys_info( ) определяет тип операционной\n";
echo "системы. На этот раз используется функция\n";
echo "strstr( ), поскольку тип ОС определяется и без\n";
echo "применения регулярных выражений.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Воспользоваться\n";
echo "конструкцией if/elseif для идентификации\n";
echo "следующих систем: Windows, Linux, UNIX, Macintosh и\n";
echo "неизвестная операционная система.</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вернуть\n";
echo "информацию об операционной системе.</font></li>\n";
echo "</ul>\n";
echo "<b><i>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Листинг\n";
echo "8.3. </font></font></i></b><i><font size=\"3\" face=\"Times New Roman\"><font COLOR=\"#000000\">Идентификация\n";
echo "типа браузера и операционной системы\n";
echo "клиента</font></font></p>\n";
echo "</i>\n";
echo "<p></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">&lt;?</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">/*</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Файл : sniffer.php</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Назначение:\n";
echo "Идентификация типа/версии браузера и\n";
echo "платформы</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Автор: В. Дж.\n";
echo "Гилмор</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Дата : 24\n";
echo "августа 2000 г.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">*/</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Функция:\n";
echo "browser_info</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Назначение:\n";
echo "Возвращает тип и версию браузера</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">function browser_info ($agent)\n";
echo "{</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Определить тип браузера</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру Internet Explorer</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if (ereg('MSIE ([0-9].[0-9]{1,2})',\n";
echo "$agent, $version))</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_type = &quot;IE&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse version = $version[1];</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру Opera</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">elseif (ereg( 'Opera\n";
echo "([0-9].[0-9]{1,2})'. $agent, $version)):</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_type = &quot;Opera&quot;:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\"> $browse_version = </font><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$version[1]:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру Netscape. Проверка браузера Netscape</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// *должна*\n";
echo "выполняться после проверки Internet Explorer и Opera,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// поскольку\n";
echo "все эти браузеры любят сообщать имя</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Mozilla вместе\n";
echo "с настоящим именем.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">elseif (ereg( 'Mozilla/([0-9].[0-9]{1,2})'.\n";
echo "$agent, $version)) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_type = &quot;Netscape&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_version = $version[1];</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Если это не\n";
echo "Internet Explorer, Opera или Netscape.</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// значит, мы\n";
echo "обнаружили неизвестный браузер,</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_type = &quot;Unknown&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$browse_version = &quot;Unknown&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Вернуть\n";
echo "тип и версию браузера в виде массива</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">return array\n";
echo "($browse_type, $browse_version);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">} // Конец\n";
echo "функции browser_info</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Функция:\n";
echo "opsys_info</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Назначение:\n";
echo "Возвращает информацию об операционной\n";
echo "системе пользователя</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">function opsys_info($agent)\n";
echo "{</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Идентифицировать операционную систему</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Искать сигнатуру Windows</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">if ( strstr ($agent. 'win') ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$opsys =\n";
echo "&quot;windows&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру Linux</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">elseif ( strstr($agent, 'Linux') ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$opsys = &quot;Linux&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру UNIX</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">elseif ( strstr (Sagent, 'Unix') ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$opsys = &quot;Unix&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Искать\n";
echo "сигнатуру Macintosh</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">elseif ( strstr ($agent, 'Mac') ) :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$opsys = &quot;Macintosh&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">//\n";
echo "Неизвестная платформа else :</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">$opsys = &quot;Unknown&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Вернуть\n";
echo "информацию об операционной системе</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">return $opsys;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">} // Конец\n";
echo "функции opsys_info</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">// Сохранить\n";
echo "возвращаемый массив в списке</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">list ($browse_type.\n";
echo "$browse_version) = browser_info ($HTTP_USER_AGENT); Soperating_sys = opsysjnfo ($HTTP_USER_AGENT);</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Browser\n";
echo "Type: $browse_type &lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Browser\n";
echo "Version: $browse_version &lt;br&gt;&quot;;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;Operating\n";
echo "System: $operating_sys &lt;br&gt;&quot;:</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">?&gt;</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Вот и все!\n";
echo "Например, если пользователь работает в\n";
echo "браузере Netscape 4.75 на компьютере с системой\n";
echo "Windows, будет выведен следующий результат:</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Browser Type: Netscape</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Browser Version: 4.75</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Courier New\">Operating System: Windows</font></p>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В следующей\n";
echo "главе вы научитесь осуществлять переходы\n";
echo "между страницами и даже создавать списки\n";
echo "стилей (style sheets) для конкретных операционной\n";
echo "системы и браузера.</font></p>\n";
echo "<b>\n";
echo "<p><A NAME=\"r\"></A>\n";
echo "<font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Итоги</font></p>\n";
echo "</b>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">В этой главе\n";
echo "был изложен довольно обширный материал.\n";
echo "Какой прок от языка программирования, если\n";
echo "в нем нельзя работать с текстом? Мы\n";
echo "рассмотрели следующие темы:</font></p>\n";
echo "<ul>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">общие\n";
echo "    сведения о регулярных выражениях в\n";
echo "    стилях POSIX и Perl;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">стандартные\n";
echo "    функции РНР для работы с регулярными\n";
echo "    выражениями;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">изменение\n";
echo "    длины строки;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">определение\n";
echo "    длины строки;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">альтернативные\n";
echo "    функции РНР для обработки строковой\n";
echo "    информации;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">преобразование\n";
echo "    простого текста в HTML и наоборот;</font></li>\n";
echo "  <li><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">изменение\n";
echo "    регистра символов в строках.</font></li>\n";
echo "</ul>\n";
echo "<p><font COLOR=\"#000000\" size=\"3\" face=\"Times New Roman\">Следующая\n";
echo "глава открывает вторую часть книги —\n";
echo "кстати, мою любимую. В ней мы начнем\n";
echo "знакомиться со средствами РНР,\n";
echo "ориентированными на Web, рассмотрим процесс\n";
echo "динамического создания содержимого,\n";
echo "включение файлов и построение общих\n";
echo "шаблонов. В дальнейших главах части 2\n";
echo "рассматриваются работа с формами HTML, базы\n";
echo "данных, отслеживание данных сеанса и\n";
echo "нетривиальные средства работы с шаблонами.\n";
echo "Держитесь — начинается самое интересное!</font></p>\n";
echo "<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000066\" class=\"mtx1\">\n";
echo "<tr>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 7/1.htm\"><strong>&lt;&lt;&lt;&nbsp;Назад</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../index.html\"><strong>Содержание</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 9/1.htm\"><strong>Вперед&nbsp;&gt;&gt;&gt;</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</BODY></HTML>\n";
?>
