[PHP, Профессиональная литература] Книга «Создаем динамические веб-сайты на PHP. 4-е межд. изд.»

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
24-Май-2021 19:31


оригинал
Привет, Хаброжители! Сложно найти что-то толковое про PHP? Проверенная временем, обновленная в четвертом издании, эта книга помогает начинающим разработчикам научиться всему, что необходимо для создания качественных веб-приложений.
Вы начнете с общего описания технологии и постепенно перейдете к синтаксису языка, приемам программирования и другим важным деталям. При этом будут использоваться примеры, демонстрирующие и правильное применение языка, и распространенные идиомы. Предполагается, что читатель уже имеет опыт работы с HTML.
Вы получите множество рекомендаций по стилю программирования и процессу разработки ПО от Кевина Татро и Питера Макинтайра. Этот материал, изложенный в доступной и компактной форме, поможет вам овладеть мастерством программирования на PHP. • Общие сведения о том, какой результат можно получить, используя PHP. • Основы языка, включая типы данных, переменные, операторы, управляющие команды. • Функции, строки, массивы и объекты. • Решение распространенных задач разработки: обработка форм, проверка данных, отслеживание сеансовых данных и cookie. • Работа с реляционными базами данных (MySQL) и базами данных NoSQL (например MongoDB). • Генерирование изображений, создание файлов PDF, парсинг файлов XML. • Безопасность скриптов, обработка ошибок, оптимизация быстродействия и другие нетривиальные темы.

Для кого написана эта книга

SPL
PHP — это «плавильный котел» для смешения направлений программирования. Веб-дизайнеры ценят его за доступность и удобство, а программистам нравится его гибкость, мощность, разнообразие и скорость. Обоим направлениям необходим понятный и точный справочник по языку. Если вы (веб-)программист, то эта книга написана для вас. Мы представим общую картину языка PHP, а затем изложим подробности, не отнимая у вас лишнего времени. Многочисленные примеры, практические рекомендации по программированию и советы по стилю помогут вам стать не просто программистом PHP, а хорошим программистом PHP.
Веб-дизайнеры оценят доступные и практичные рекомендации по использованию конкретных технологий: JSON, XML, сеансовых данных, генерирования PDF, работы с графикой и т. д. Описание PHP и базовые концепции программирования изложены в книге доступным языком.

Регулярные выражения
Если вам понадобится более сложная функциональность поиска, которую не обеспечивают перечисленные методы, можно воспользоваться регулярным выражением — строкой, представляющей паттерн. Функции, использующие регулярные выражения, сравнивают строку с заданным паттерном. Одни функции сообщают, было ли найдено совпадение, а другие вносят изменения в строку.
В PHP регулярные выражения применяются: для поиска совпадений (и извлечения информации из строк), для замены текста в соответствии с паттерном и для разбиения строк на массив меньших фрагментов. Функция preg_match() выполняет поиск регулярного выражения.
Perl давно считается эталонным языком для работы с регулярными выражениями. В PHP используется библиотека C pcre, обеспечивающая почти полную поддержку возможностей регулярных выражений Perl, которые работают с произвольными двоичными данными и позволяют безопасно выполнять поиск по паттернам или в строках, содержащих нулевой байт (\x00).
Большинство символов в регулярных выражениях являются литеральными, что отражается на поиске совпадений. Например, если вы ищете совпадение для регулярного выражения "/cow/" в строке «Dave was a cowhand», то совпадение будет найдено, потому что последовательность символов «cow» встречается в этой строке.
Некоторые символы имеют специальный смысл в регулярных выражениях. Например, символ ^ в начале регулярного выражения означает, что совпадение должно начинаться от начала строки (а точнее, обозначает привязку регулярного выражения к началу строки).
preg_match("/^cow/", "Dave was a cowhand"); // возвращает false
preg_match("/^cow/", "cowabunga!"); // возвращает true

Аналогичным образом символ $ в конце регулярного выражения означает, что совпадение должно завершаться в конце строки (то есть обозначает привязку регулярного выражения к концу строки).
preg_match("/cow$/", "Dave was a cowhand"); // возвращает false
preg_match("/cow$/", "Don't have a cow"); // возвращает true

Точка в регулярном выражении обозначает один любой символ:
preg_match("/c.t/", "cat"); // возвращает true
preg_match("/c.t/", "cut"); // возвращает true
preg_match("/c.t/", "c t"); // возвращает true
preg_match("/c.t/", "bat"); // возвращает false
preg_match("/c.t/", "ct"); // возвращает false

Чтобы обозначить совпадение для одного из этих специальных символов (метасимволов), экранируйте его с помощью обратного слеша:
preg_match("/\$5.00/", "Your bill is $5.00 exactly"); // возвращает true
preg_match("/$5.00/", "Your bill is $5.00 exactly"); // возвращает false

Регулярные выражения по умолчанию учитывают регистр символов, поэтому регулярное выражение "/cow/" не совпадет со строкой «COW». Чтобы выполнить поиск совпадения символов без учета регистра, установите соответствующий флаг (показан далее в этой главе).
До сих пор мы не сделали ничего, что нельзя было бы сделать обычными строковыми функциями. Настоящая мощь регулярных выражений проявляется в возможности поиска совпадения разных последовательностей символов с абстрактными паттернами трех типов, к которым относятся:
1. Набор допустимых символов, которые могут присутствовать в строке (например, алфавитные символы, цифры, конкретные знаки препинания).
2. Набор альтернатив для строки (например, «com», «edu», «net» или «org»).
3. Повторяющиеся последовательности в строке (например, как минимум одна, но не более пяти цифр).
Эти три разновидности паттернов можно объединять бесчисленными способами и создавать регулярные выражения для таких конструкций, как телефонные номера и URL-адреса.
Символьные классы
Чтобы задать набор допустимых символов в паттерне, либо постройте символьный класс самостоятельно, либо примените готовый класс. Чтобы построить собственный класс, заключите допустимые символы в квадратные скобки:
preg_match("/c[aeiou]t/", "I cut my hand"); // возвращает true
preg_match("/c[aeiou]t/", "This crusty cat"); // возвращает true
preg_match("/c[aeiou]t/", "What cart?"); // возвращает false
preg_match("/c[aeiou]t/", "14ct gold"); // возвращает false

Движок регулярных выражений находит в строке символ «c», после чего проверяет, является ли следующий символ гласной буквой («a», «e», «i», «o» или «u»). Если нет, то движок переходит к поиску следующего символа «c». Если да, движок проверяет, является ли следующий символ буквой «t». Если совпадение обнаружено, движок возвращает true или, в противном случае, возобновляет поиск следующего символа «c».
Символьный класс можно инвертировать, поставив символ ^ в начало перечисления символов:
preg_match("/c[^aeiou]t/", "I cut my hand"); // возвращает false
preg_match("/c[^aeiou]t/", "Reboot chthon"); // возвращает true
preg_match("/c[^aeiou]t/", "14ct gold"); // возвращает false

В этом случае движок регулярных выражений ищет символ «c», за которым следует символ, не являющийся гласной буквой, после чего идет буква «t».
Символ — (дефис) в символьных классах используется для определения диапазонов символов. Он упрощает определение таких символьных классов, как «все буквы» и «все цифры»:
preg_match("/[0-9]%/", "we are 25% complete"); // возвращает true
preg_match("/[0123456789]%/", "we are 25% complete"); // возвращает true
preg_match("/[a-z]t/", "11th"); // возвращает false
preg_match("/[a-z]t/", "cat"); // возвращает true
preg_match("/[a-z]t/", "PIT"); // возвращает false
preg_match("/[a-zA-Z]!/", "11!"); // возвращает false
preg_match("/[a-zA-Z]!/", "stop!"); // возвращает true

Когда вы задаете символьный класс, некоторые специальные символы теряют свой смысл, тогда как другие, наоборот, приобретают новые роли. Так, якорный символ $ и точка теряют свои роли в символьных классах, тогда как символ ^ уже не обозначает привязку к началу строки, а инвертирует символьный класс, если является первым символом после открывающей квадратной скобки. Например, [^\]] совпадает с любым символом, кроме закрывающей квадратной скобки, тогда как [$.^] совпадает с любым из трех знаков (доллар, точка или крышка).
Различные библиотеки регулярных выражений определяют сокращения для символьных классов, включая цифры, алфавитные символы и пробелы.
Альтернативы
Символ | (вертикальная черта) используется для определения альтернатив в регулярных выражениях:
preg_match("/cat|dog/", "the cat rubbed my legs"); // возвращает true
preg_match("/cat|dog/", "the dog rubbed my legs"); // возвращает true
preg_match("/cat|dog/", "the rabbit rubbed my legs"); // возвращает false

Приоритет применения альтернатив может показаться странным: так, "/^cat|dog$/" выбирает один из двух вариантов — "^cat" и «dog$». Это означает, что совпадение будет найдено в строке, которая либо начинается с «cat», либо завершается «dog». Если вам нужна строка, содержащая только «cat» или «dog», используйте регулярное выражение "/^(cat|dog)$/".
Символьные классы и альтернативы могут применяться, например, для проверки строк, которые не должны начинаться с буквы в верхнем регистре:
preg_match("/^([a-z]|[0-9])/", "The quick brown fox"); // возвращает false
preg_match("/^([a-z]|[0-9])/", "jumped over"); // возвращает true
preg_match("/^([a-z]|[0-9])/", "10 lazy dogs"); // возвращает true

Повторяющиеся последовательности
Для определения паттернов с повторениями используются квантификаторы. Квантификатор определяет, сколько раз выбранный фрагмент должен повториться. В табл. 4.6 перечислены квантификаторы, поддерживаемые регулярными выражениями PHP.
Чтобы искать повторы отдельного символа, просто поставьте квантификатор за символом:
preg_match("/ca+t/", "caaaaaaat"); // возвращает true
preg_match("/ca+t/", "ct"); // возвращает false
preg_match("/ca?t/", "caaaaaaat"); // возвращает false
preg_match("/ca*t/", "ct"); // возвращает true


С квантификаторами и символьными классами можно решать такие задачи, как проверка на действительность телефонных номеров США:
preg_match("/[0-9]{3}-[0-9]{3}-[0-9]{4}/", "303-555-1212"); // возвращает true
preg_match("/[0-9]{3}-[0-9]{3}-[0-9]{4}/", "64-9-555-1234"); // возвращает false

Подпаттерны
Части регулярных выражений можно группировать в круглых скобках, чтобы они рассматривались как единое целое, то есть подпаттерн:
preg_match("/a (very )+big dog/", "it was a very very big dog"); // возвращает
true
preg_match("/^(cat|dog)$/", "cat"); // возвращает true
preg_match("/^(cat|dog)$/", "dog"); // возвращает true

Круглые скобки также обеспечивают сохранение (захват) совпадения для подпаттерна. Если передать функции поиска совпадения в третьем аргументе массив, этот массив будет заполнен подстроками совпадений:
preg_match("/([0-9]+)/", "You have 42 magic beans", $captured);
// возвращает true и заполняет $captured

Нулевому элементу массива присваивается вся строка, в которой ведется поиск совпадений. В первом элементе хранится подстрока, совпавшая с первым подпаттерном (если совпадение обнаружено), во втором — подстрока, совпавшая со вторым подпаттерном, и т. д.
Ограничители
Регулярные выражения в Perl эмулируют действия паттернов Perl, заимствуя из их синтаксиса ограничители. Чаще всего ограничителями выступают слеши (например, /паттерн/), реже — любой неалфавитно-цифровой символ, кроме обратного слеша. В частности, это удобно при поиске совпадений для строк, содержащих слеши. Например, следующие вызовы эквивалентны:
preg_match("/\/usr\/local\//", "/usr/local/bin/perl"); // возвращает true
preg_match("#/usr/local/#", "/usr/local/bin/perl"); // возвращает true

Скобки — круглые (), фигурные {}, квадратные [] и угловые <> — тоже могут использоваться в качестве ограничителей паттернов:
preg_match("{/usr/local/}", "/usr/local/bin/perl"); // возвращает true

В разделе «Флаги-модификаторы» рассматриваются односимвольные модификаторы, которые можно разместить после закрывающего ограничителя для изменения поведения движка регулярных выражений. Очень полезен флаг x, который заставляет движок отсекать пробелы и комментарии, отмеченные #, из регулярных выражений перед поиском совпадения.
Следующие два паттерна эквивалентны, но второй читается намного проще:
'/([[:alpha:]]+)\s+\1/'
'/( # начать сохранение
[[:alpha:]]+ # слово
\s+ # пробел
\1 # снова то же слово
) # завершить сохранение
/x'

Поведение при поиске совпадения
Точка. совпадает с любым символом, кроме символа новой строки (\n). Знак $ совпадает с концом строки или, если строка завершается символом новой строки, с позицией, непосредственно предшествующей этому символу:
preg_match("/is (.*)$/", "the key is in my pants", $captured);
// $captured[1] содержит 'in my pants'

Символьные классы
Как видно из табл. 4.7, Perl-совместимые регулярные выражения определяют несколько именованных наборов символов, которые можно использовать в символьных классах. В табл. 4.7 приведены расширения только для английского языка, но фактически буквы можно взять из других локальных контекстов.


Каждый класс [: что-то :] может использоваться вместо символа в символьном классе. Например, для нахождения любого символа, который является цифрой, буквой верхнего регистра или символом @, используйте следующее регулярное выражение:
[@[:digit:][:upper:]]
Однако символьный класс не может использоваться как конечная точка диапазона:
preg_match("/[A-[:lower:]]/", «string»);// недопустимое регулярное выражение
Символьная последовательность, которая в локальном контексте рассматривается как один символ, называется сверткой. Чтобы найти совпадение для одной из многосимвольных последовательностей в символьном классе, заключите ее в маркеры [. и .]. Например, если в локальном контексте присутствует свертка ch, следующий символьный класс будет совпадать с s, t или ch:
[st[.ch.]]
Последнее расширение символьных классов — класс эквивалентности, для определения которого символы заключаются в [= и =]. Классы эквивалентности совпадают с символами, имеющими одинаковый приоритет упорядочения по правилам локального контекста. Например, локальный контекст может определять, что символы a, á и ä имеют одинаковый приоритет упорядочения при сортировке. Чтобы найти совпадение для любого из них, используйте класс эквивалентности [=a=].
Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — PHP
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_php, #_professionalnaja_literatura (Профессиональная литература), #_kniga (Книга), [url=https://torrents-local.xyz/search.php?nm=%23_blog_kompanii_izdatelskij_dom_«piter»&to=0&allw=0&o=1&s=0&f%5B%5D=820&f%5B%5D=959&f%5B%5D=958&f%5B%5D=872&f%5B%5D=967&f%5B%5D=954&f%5B%5D=885&f%5B%5D=882&f%5B%5D=863&f%5B%5D=881&f%5B%5D=860&f%5B%5D=884&f%5B%5D=865&f%5B%5D=873&f%5B%5D=861&f%5B%5D=864&f%5B%5D=883&f%5B%5D=957&f%5B%5D=859&f%5B%5D=966&f%5B%5D=956&f%5B%5D=955]#_blog_kompanii_izdatelskij_dom_«piter» (
Блог компании Издательский дом «Питер»
)[/url], #_php, #_professionalnaja_literatura (
Профессиональная литература
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 21-Сен 12:49
Часовой пояс: UTC + 5