Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по курсу Web-программирование.doc
Скачиваний:
11
Добавлен:
13.11.2019
Размер:
931.84 Кб
Скачать

Лекция №7.

PHP.

«Быстрый старт».

Первая программа на PHP.

Вставив инструкцию print между PHP-тэгами, мы даём коман­ду серверу послать приветствие «Hello, world!» в браузер. Это аналогично тому, что мы ввели данный текст в HTML-код.

1. <HTML>

2. <HEAD>

3. <TITLE> First PHP Script </TITLE>

4. </HEAD>

5. <BODY>

6. <?PHP

7. print ("Hello, world!”);

8. ?>

9. </BODY>

10. </HTML>

Синтаксис переменных.

В PHP все переменные обозначаются следующим образом: знак доллара ($), за ним имя переменной. Имя должно начинаться либо с буквы (A-Z, a-z), либо с символа подчёркивания (_). Состоять оно может из любого количества букв, цифр, знаков подчеркивания или их комбинации. В имени переменной нельзя использовать пробелы. Вместо них для разделения слов обычно используется символ подчёркивания.

Необходимо помнить, что для имен имеет значение регистр. Необходимо сразу научиться давать переменным содержательные имена, а также использовать комментарии для указания их назначения (/* */).

Типы переменных.

Числа.

Для простоты обучения мы объединили два вида чисел целые и с плавающей запятой — в одну группу. Целые числа могут быть положительными или отрица­тельными, но не дробными. Числа с десятичным знаком (даже такие как 1.0) — это числа с плавающей запятой.

Дробь содержит два не используемых в числах знака: пробел и слеш (/).

Строки.

Переменная является строкой (string), если состоит из знаков (некоторая комбинация букв, цифр, символов и пробелов), заключённых в одинарные или двойные кавычки. Строки могут содержать любую комбинацию символов, включая имена других переменных.

Пример верного значения строки:

“1972”

Язык PHP позволяет использовать такие чис­ловые строки непосредственно в математических выражениях.

При использовании функции print () для создания кода HTML можно экранировать кавычки, поставив перед ними обратный слеш. Изме­нив строку на “I said, \”How are you?\””, выдали команду PHP включить эти ка­вычки как часть значения строки, а не рассматривать их как индикаторы начала и конца строки. Вместе с двойными кавычками следует также экраниро­вать апостроф или одинарные кавычки ('), обратный слеш (\) и знак доллара ($).

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

Хотя обратный слеш используется для экранирования некоторых специальных симво­лов, в сочетании с некоторыми буквами он имеет особое значение. Так, комбина­ция "\n" означает новую строку, "\r" — возврат каретки, а "\t" — знак табуляции.

Массивы.

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

Стандартный массив PHP, состоящий из строк и чисел, в языке Perl также называ­ется массивом. Создав состоящий из массивов массив, можно создать в PHP эк­вивалент используемого в Perl «хэша», также называемого ассоциативным или многомерным массивом. В PHP эти два типа — одномерные или многомерные мас­сивы — не различаются.

Присвоение значений переменным.

В начале этой главы мы упомянули, что в PHP нет необходимости инициализировать или объявлять переменные. Значение переменной присваивается независимо от типа с помощью знака равенства (=). Он называется оператором присваивания, так как присваи­вает значение переменной, стоящей слева от него.

Тип переменной может изменяться «на лету», так как он не зафиксирован (PHP относится к языкам со слабым контролем типов, как JavaScript):

$variable = 1;

$variable = “Greetings”;

Вы можете явно присвоить переменной тип при первом её использовании (при­своение типа — это то же, что и объявление переменной, когда точно указывается её тип). Синтаксис для этого следующий:

$number = (integer) 5;

$string = (string) “Hello, World!”;

Предопределённые переменные.

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

Предопределённые переменные — специальный тип переменных, который используется и программой Web-сервера (например, Apache), и операционной системой Web-сервера (Unix или Windows NT), и самим модулем PHP. Первые две категории называют также переменными окружения или переменными среды. В разных серверах могут применяться разные наборы предопределенных пе­ременных. С помощью сценария test.php вы увидите, какие пере­менные среды используются на вашей машине.

Создание на странице переменной с тем же именем, что и переменная среды, приведёт к непредсказуемым результатам. Как видно из списка переменных среды, сгенерированного сценарием test.php, полный отказ от использования прописных букв в имени переменной уменьшает возможность возникновения конфликтов.

Использование строк.

Из-за небрежности пользователя при вводе информации, а иногда из-за неаккуратного HTML-кода часто к строке-переменной добавляются лишние пробе­лы. Перед тем как применять подобные строки, эти пробелы обязательно нуж­но удалить. В таком случае вам удастся избежать множества проблем. Строка с невидимым дополнительным пробелом уже не будет совпадать с такой же строкой без пробела. Лишние пробелы, посланные в Web-браузер, могут иска­зить вид страницы, а пробелы, отправленные в базу данных, или cookie-файлы вызвать ещё более неприятные последствия. Например, если пароль содержит концевые пробелы, он не будет действителен при введении без пробелов.

Функция trim () автоматически отсекает лишние пробелы в начале и конце строки (но не в середине). Используется следующий формат функции trim ():

$String=”extra space before and after text”;

$ String=trim ($String);

//Переменная $String теперь равна ”extra space before and after text”.

Соединение строк (сцепление, конкатенация).

Хотя термин сцепление, или конкатенация, не очень благозвучен, им обознача­ется чрезвычайно важный оператор — построение предложения из отдельных фраз, или соединение нескольких строк в одну. Для этого предназначен оператор точка (.), который используется анало­гично знаку плюс в арифметических выражениях:

$NewString=$aString . $bString;

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

$NewString=$aString . $bString . $cNumber;

Числовая переменная $cNumber будет автоматически преобразована в строку и добавлена к содержимому переменной $NewString.

Кодирование и декодирование строк.

Что делать, если необходимо передать несколько слов как одно значение переменной?

Для таких случаев понадобится функция urlencode (). Как видно из её име­ни, функция кодирует (encode) строку для того, чтобы она была правильно пе­редана как часть URL. В частности, функция urlencode () заменяет пробелы на знаки плюс (+) и преобразовывает специальные символы, например апо­строф, в более подходящие для URL знаки.

Функция urldecode () выполняет действие, обратное действию urlencode (): она берёт закодированную для URL строку и преобразует её обратно в обычную стандартную форму.

Шифрование и дешифрование строк.

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

Первая функция – crypt (.) — может использоваться для кодирования дан­ных, но расшифровать их обратно не удастся.

Извлечение части строки.

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

Функция strtok () извлекает подстроку, называемую лексемой, из строки на основе заранее установленного разделителя (обычно запятая или пробел). На­пример, если пользователи вводят имя и фамилию в одном поле, разделяя эти данные пробелом, то можно узнать имя с помощью следующего кода:

$FirstName = strtok ($Name, “ “);

Второй способ выделения подстрок — обратиться к индексной позиции символов внутри строки. Индексация строки означает нумерацию символов с начала стро­ки, как если бы строка была массивом, а символы — её элементами. В РНР, как и в большинстве языков программирования, индексация начинается с нуля. Разобравшись с индексами, мы можем использовать функцию substr () для выделения нужного диапазона символов:

$SubString = substr ($String, 0, 10);

Во-первых, необходимо указать строку (здесь это $String), из которой бу­дет вырезаться подстрока. Во-вторых, с помощью индекса необходимо указать начало подстроки (если вы начинаете индексацию с нуля, значит, учитываться будет и первый символ). Третьим параметром вы указываете, из скольких сим­волов будет состоять подстрока (10). Если строка состоит из меньшего количе­ства символов, чем 10, подстрока закончится в конце строки.

Часто для определения длины строки используют функцию strlen ().

Сложение, вычитание, умножение и деление.

Умножение в языке РНР обозначается звездочкой (*).

Для сложения используется знак плюс (+).

Для операции вычитания используется знак ми­нус (-).

Операция деления – знак (/).

Форматирование чисел.

Для печати значения переменной в форме числа с плавающей точкой с двумя цифрами после неё (в каче­стве примера возьмем число 1.02) необходимо написать:

printf (“%01.2f”, $Amount) ;

Инкремент и декремент.

В PHP, как в Perl и большинстве других языков программирования, есть осо­бые операторы, нужные для того, чтобы сократить длинные неуклюжие при­своения вроде $Tax = $Tax + 1;. Если необходимо увеличить значение перемен­ной ровно на единицу (инкремент) или уменьшить на единицу (декремент), можно использовать операторы «++» и «--» соответственно.

$Tax++;

$Number--;

Совместное использование различных операторов.

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

Это неполный список операторов, расположенных в порядке их приоритета (от высшего к низшему). Так, умножение имеет более высокий приоритет, чем сложение