Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Функции для работы со строками




Система PHP содержит ряд функций для работы со строками. Следующий список содержит некоторые из наиболее распространенных строковых функций.

strlen(string) – определяет длину строки string.

ltrim(string) – удаляет символы-разделители в начале строки string.

rtrim(string) – удаляет символы-разделители в конце строки string.

strpbrk(string, char) – ищет в строке string символ char. Возвращает false или строку, начинающуюся с найденного символа.

strtoupper(string) – преобразует строку в верхний регистр.

strtolower(string) – преобразует строку в нижний регистр.

strrev(string) – возвращает строку string в обратном порядке.

eregi(pattern, subject) – выполняет независимое от регистра символов сравнение с выражением. В строке subject происходит поиск регулярного выражения, заданного строкой pattern.

Следующий блок кода демонстрирует, как использовать строковые функции PHP.

<?php

 

$string = "Hello World";

$another_string = "Welcome to PHP";

 

echo strlen($string);

echo strtoupper($another_string);

echo strrev($another_string);

echo strpbrk($string, "W");

 

?>

WELCOME TO PHP

PHP ot emocleW

World

Первая строка выводит длину строки "Hello World", равную 11. Затем строка "Welcome to PHP" преобразуется в верхний регистр и выводится в окне браузера. Эта строка используется также с функцией strrev для изменения порядка символов строки на обратный. Наконец, в строке происходит поиск символа "W". Так как первое появление символа происходит в тексте "World", выводится эта строка.

Функции даты и времени

Базовые функции PHP для даты и времени позволяют форматировать отметку времени для применения в запросах базы данных или просто для вывода даты и времени в окне браузера. PHP включает следующие функции даты и времени:

date(format) – возвращает текущее время сервера, форматированное согласно заданному множеству параметров format.

checkdate(month, day, year) – проверяет заданную дату. Успешная проверка означает, что год year находится между 0 и 32767, месяц month – между 1 и 12, и правильное количество дней каждого месяца.

time() – возвращает текущее время сервера, измеренное в секундах, начиная с 1 января 1970 г.

Следующая таблица содержит допустимые форматы date():

a выводит "am" или "pm"
A выводит "AM" или "PM"
h часы в 12-часовом формате (01 – 12)
H часы в 24-часовом формате (00 – 23)
g часы в 12-часовом формате без ведущего нуля (1 – 12)
G часы в 24-часовом формате без ведущего нуля (0 – 23)
i минуты (00 – 59)
s секунды (00 – 59)
d день месяца двумя цифрами (01 – 31)
D день недели текстом (Mon – Sun)
l день недели длинным текстом (Monday – Sunday)
F месяц длинным текстом (January – December)
n месяц двумя цифрами (1 – 12)
Y год четырьмя цифрами (2005)
y год двумя цифрами (05)
S английские порядковые суффиксы (th, nd, st)

Следующая страница использует функцию PHP date() для определения и вывода текущего времени сервера и даты:

<?php

echo "<span style='font:10pt arial'>Today is ".date('l F j Y')."</span>";

echo "<br/>";

echo "<span style='font:10pt arial'>The current time is:</span>".

date('g:i:s a');

?>

Формат даты/времени, выводимый с помощью функции date(), зависит от типов параметров формата, подставленных в функцию. Параметры функции date() можно объединять, разделяя запятой ",", двоеточием ":" или другими знаками пунктуации, в зависимости от желаемого формата вывода. Все параметры, однако, должны быть заключены в одиночные кавычки. В примере выше время выводится с помощью параметров формата времени g, i, s, и a. Двоеточия и пробелы также вставляют для разделения часов, минут, секунд и признаков am/pm.

Функции checkdate() и time() обычно используются в процессах принятия решений. Поэтому они подробнее будут рассмотрены в дальнейшем.

Оператор If

При создании кода часто требуется выполнять различные действия на основе некоторого выбора. В PHP это можно делать с помощью условных операторов – оператора if, оператора if … else и оператора elseif.

if – этот оператор используется для выполнения блока кода, когда выполняется условие (true).

if...else – этот оператор используется для выполнения блока кода, когда условие выполняется (true), или для выполнения другого блока кода, когда условие не выполняется (false).

elseif – комбинация if и else. Оператор расширяет оператор if, чтобы выполнялся другой оператор в случае, если исходное выражение if оценивается как FALSE. В отличие от else он будет выполнять альтернативное выражение, только если условное выражение elseif оценивается как TRUE.

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

Ниже представлен синтаксис оператора if:

if (условие) {

// выполняемый код

}

Строки кода оператора if заключаются в фигурные скобки ({}). Эти скобки определяют начало (открывающая скобка {) и конец (закрывающая скобка }) оператора If. Следующий пример демонстрирует использование оператора if.

<?php

 

$number = 5;

 

if ($number <= 10)

{

echo "Число меньше или равно 10.";

}

?>

Число меньше или равно 10.

В приведенном выше примере число 5 присваивается переменной $number. Затем сценарий PHP использует оператор сравнения "<=" (меньше или равно) для сравнения значения $number с числом 10. Если значение меньше или равно 10, оператор echo выводит сообщение " Число меньше или равно 10" в окне браузера. Можно видеть, что скобки применяются для ограничения блока оператора if. Открывающая скобка { появляется сразу после оператора условия, а закрывающая скобка } — в конце оператора if.

Вспомните, что все операторы PHP должны завершаться с помощью терминатора инструкции (;): echo "Число меньше или равно 10.";

В некоторых случаях может понадобиться предоставить альтернативное сообщение. В приведенном выше примере предположим, что переменная $number содержит число 15, которое больше 10. Альтернативное сообщение должно выводиться, чтобы пользователь знал: число больше 10. Это можно выполнить с помощью оператора if … else.

<?php

 

$number = 15;

 

if ($number <= 10) {

echo "Число меньше или равно 10.";

}

 

else {

echo "Число больше 10";

}

?>

Число больше 10.

В приведенном выше примере число 15 присваивается переменной $number. Затем сценарий PHP использует оператор сравнения "<=" (меньше или равно) для сравнения значения $number с числом 10. Если это значение меньше или равно 10, оператор echo выводит сообщение "Число меньше или равно 10" в окне браузера. Теперь в код добавлен оператор else, чтобы выводить альтернативное сообщение, если условие в операторе if не выполняется. Альтернативное сообщение "Число больше 10" выводится в окне браузера, если оператор условия возвращает false. Здесь также используются скобки для ограничения блока оператора if. Открывающая скобка { появляется сразу после оператора условия, а закрывающая скобка } — в конце оператора if. Скобки также используются для ограничения альтернативного блока оператора else.

Третий тип условного оператора является структурой elseif. Оператор elseif является комбинацией if и else. Подобно else он расширяет оператор if, чтобы выполнить другой оператор, если условное выражение исходного if оценивается как FALSE. Однако в отличие от else он будет выполнять это альтернативное выражение, только если условное выражение в elseif оценивается как TRUE. В одном операторе if может быть несколько структур elseif. Первое выражение elseif (если такое имеется), которое оценивается как TRUE, будет выполнено.

<?php

 

$number = 15;

 

if ($number < 10) {

echo "Число меньше 10.";

}

elseif ($number == 10) {

echo "Число равно 10.";

}

 

else {

echo "Число больше 10.";

}

?>

Число больше 10.

В этом примере числовое значение переменной $number сравнивается с 10. Сперва оператор if проверяет, что $number меньше 10. Если этот оператор выполняется (true), выводится сообщение "Число меньше 10". Затем оператор elseif используется для проверки, что $number равно 10. Если этот оператор оценивается как true, выводится сообщение "Число равно 10". Оператор elseif выполняется, ТОЛЬКО если оператор if возвращает FALSE. Наконец, если операторы if и elseif возвращают FALSE, выполняется оператор else и выводится сообщение "Число больше 10". В то время как оператор elseif позволяет проверить только одно условие, структуру if можно применять для проверки множества условий.

Следующий пример использует функцию checkdate(), функцию explode() и оператор if … else для проверки правильности строки даты.

<?php

 

$orig_date = "09/19/2005";

$date = explode("/", "$orig_date");

 

$month = $date[0];

$day = $date[1];

$year = $date[2];

 

$result = checkdate($month, $day, $year);

 

if ($result == true)

{

echo "Правильная дата";

}

else

{

echo "Неправильная дата!";

}

?>

Правильная дата

Операторы if можно использовать "в одиночку" либо как часть оператора if...else или if...elseif...else. В любом случае вы обнаружите, что эта структура будет важным элементом в любой программе.

Оператор switch

В дополнение к операторам if, рассмотренным в предыдущем разделе, PHP включает четвертый тип условного оператора, называемый оператором switch. Оператор switch очень похож или является альтернативой для команд if...else if...else. Оператор switch проверяет условие. Результат этой проверки определяет, какой case выполняется. switch используется обычно, когда ищут точный (равенство) результат, вместо условия больше или меньше. При проверке диапазона значений должен применяться оператор if.

switch – используйте этот оператор для выбора одного из нескольких блоков кода для выполнения.

Ниже представлен синтаксис оператора switch.

<?php

 

switch (выражение) {

 

case "значение1":

// код, который будет выполнен, если выражение = значение1;

break;

 

case "значение2":

// код, который будет выполнен, если выражение = значение2;

break;

 

default:

// код, который будет выполнен, если выражение не равно ни значение1, ни значение2;

}

?>

Подобно оператору if строки кода в операторе switch заключаются в фигурные скобки.

Эти скобки определяют начало и конец оператора switch. Следующий пример демонстрирует использование оператора switch.

<?php

 

$number = 25;

 

switch ($number) {

 

case 40:

echo "Значение \$number равно 40";

break;

case 25:

echo "Значение \$number равно 25";

break;

default:

echo "Значение \$number отлично от 25 и 40";

 

}

?>

Оператор switch может включать множество операторов case. В предыдущем примере показаны два оператора case. Создается переменная $number, которой присваивается значение 25. Оператор switch используется для сравнения значения $number с другими значениями. Проверяемое (сравниваемое) выражение (в данном случае $number) помещается внутри скобок сразу после оператора switch. Затем вызывается последовательность операторов case для сравнения выражения с другими значениями. Эти значения помещаются сразу после оператора case. (Примечание: если проверяемые значения являются строками, они должны заключаться в кавычки.) За значением, которое сравнивается с выражением, следует двоеточие (:). Операторы case аналогичны конструкциям if и elseif. Если значение оператора case будет true, то выполняется код, связанный с этим оператором, и оператор break. Оператор break приводит к завершению оператора switch. Остальные операторы case проверяться не будут. В конце оператор switch содержит инструкцию default. Она аналогична оператору else. Если ни один из операторов case не будет выполнен (не будет иметь значение TRUE), выполняется оператор default. Здесь одновременно происходит несколько вещей:

  1. проверяется условие switch и находится значение ($number == 25);
  2. значение условия передается по очереди операторам case;
  3. если это значение совпадает со значением case, выполняется код этого блока. Оператор break приводит к завершению оператора switch. Остальные операторы case не проверяются;
  4. если проверяемое значение не совпадает ни с одним из значений case, выполняется раздел default;
  5. в приведенном выше примере, так как выражение "значение $number" равно 25, выполняется второй оператор case, и в окне браузера выводится текст "Значение $number равно 25".

Циклы while

В программировании часто необходимо повторить один и тот же блок кода несколько раз. Это можно реализовать с помощью операторов цикла. Язык PHP содержит несколько типов операторов цикла. Данный раздел рассматривает цикл while.

Оператор while циклически повторяет блок кода, пока указанное условие имеет значение true. Другими словами, оператор while будет выполнять блок кода, если и пока условие будет истинным.

Базовый синтаксис цикла while показан ниже.

while (условие) {

выполняемый код;

}

Код в цикле while будет повторно выполняться, пока условие в начале цикла имеет значение true. Блок кода, связанный с оператором while, всегда заключается в фигурные скобки.

Следующий пример демонстрирует цикл while, который будет выполняться, пока значение переменной $number будет больше или равно 2.

<?php

$number = 5;

while ($number >= 2) {

echo $number. "<br/>";

$number -= 1;

}

?>

В приведенном выше примере переменная $number получает начальное значение, равное 5. Цикл while выполняется, пока условие ($number >=2), или значение $number больше или равно 2, и печатает в окне браузера значение $number. В конце блока цикла значение $number уменьшается на 1.

Ниже показан вывод, создаваемый примером цикла.

При первом выполнении значение $number равно 5. Так как 5 больше 2, используется оператор echo для вывода значения 5. При выводе присоединяется <br/>, чтобы создавать возврат каретки при каждом выполнении цикла. Затем значение $number уменьшается на 1. Во время второй итерации значение $number равно 4. Так как 4 больше 2, то оператор echo выводит значение 4. Этот процесс продолжается, пока значение $number равно 3 и 2. Когда $number равно 2, оператор echo выводит значение 2, а значение $number затем уменьшается на 1. Так как 1 не больше и не равно 2, то условие больше не выполняется, и цикл while заканчивается.

Циклы do while

Оператор do...while повторяет циклически блок кода, пока определенное условие принимает значение true. Другими словами, оператор do…while будет выполнять блок кода, если и пока условие будет выполняться (т.е. оцениваться как true).

Цикл do...while аналогичен по своей природе циклу while, рассмотренному в предыдущем разделе. Ключевое различие состоит в том, что тело цикла do...while будет обязательно выполнено как минимум один раз. Это связано с тем, что оператор условия оценивается в конце оператора цикла после выполнения тела цикла.

Базовый синтаксис цикла do…while показан ниже.

do {

выполняемый код;

}

while (условие);

Выполнение кода внутри цикла do…while будет повторяться, пока условие в конце цикла будет оцениваться как true. Блок кода, связанный с оператором do…while, всегда размещается внутри фигурных скобок.

Следующий пример демонстрирует цикл do…while, который продолжает выполняться, пока переменная $number будет больше или равна 2.

$number = 5;

do {

echo $number. "<br/>";

$number -= 1;

}

while ($number >= 2);

В приведенном выше примере переменная $number инициализируется значением 5. Цикл do…while выполняется до тех пор, пока справедливо условие ($number >=2) или $number больше или равно 2, выводя значение $number в окне браузера. В конце блока цикла значение $number уменьшается на 1.

Ниже показан вывод, создаваемый примером цикла:

Во время первого выполнения значение $number равно 5. Так как условие для выполнения цикла не проверяется, пока цикл не будет выполнен один раз, то выводится значение $number, равное 5. Затем значение $number уменьшается на 1, становясь равным 4. Так как 4 больше 2, снова выполняется цикл, и во время второй итерации используется оператор echo для вывода значения 4. В вывод добавляется <br/>, чтобы создать возврат каретки при каждом выполнении цикла. Этот процесс продолжается, пока значение $number равно 3 и 2. Когда $number становится равным 2, оператор echo выводит значение 2, и значение $number уменьшается затем до 1. Так как 1 не больше и не равно 2, то условие больше не выполняется, и цикл do…while заканчивается.

Цикл for

Оператор цикла for используется, когда известно, сколько раз необходимо выполнить оператор или последовательность операторов. В связи с этим цикл for называют точным циклом.

Базовый синтаксис цикла for показан ниже.

for (инициализация; условие; шаг цикла) {

выполняемый код;

}

Оператор цикла for имеет три параметра. Первый параметр используется для инициализации переменных, второй содержит условие, а третий включает в себя приращения, требуемые для реализации цикла. Блок кода, связанный с оператором for, всегда заключается в фигурные скобки ({}).

Следующий пример демонстрирует цикл for для 4-кратного вывода сообщения "Добро пожаловать в мир PHP":

<?php

for ($counter=1; $counter < 5; $counter++) {

echo "Добро пожаловать в мир PHP!<br/>";

}

?>

В приведенном выше примере цикл for включает три параметра, которые выполняют следующие задачи:

  1. Переменная $counter инициализируется значением 1.
  2. $counter < 5 определяет условие, которое должно выполняться для выполнения цикла.
  3. $counter++ увеличивает значение переменной $counter при каждом выполнении цикла.

Ниже показан вывод, созданный этим примером цикла.

Добро пожаловать в мир PHP!

Добро пожаловать в мир PHP!

Добро пожаловать в мир PHP!

Добро пожаловать в мир PHP!

При первом выполнении переменная $counter инициализируется значением 1. Так как 1 меньше 5, $counter увеличивается на 1. Затем используется оператор echo для вывода строки "Добро пожаловать в мир PHP!". К выводу присоединяется <br/>, чтобы создавать возврат каретки при каждом выполнении цикла. Во время второй итерации значение $counter будет равно 2. Так как 2 меньше 5, то оператор echo снова выводит строку "Добро пожаловать в мир PHP!". Этот процесс продолжается при значениях $counter, равных 3 и 4. Когда $counter становится равным 5, условие больше не выполняется, и цикл for заканчивается.

Циклы for используются также в качестве удобного способа выполнения итераций по значениям массива. Вспомните, что массивы состоят из элементов и индексов. Каждый элемент имеет связанный с ним индекс. Первый индекс массива с числовыми индексами равен 0. До сих пор при выводе элементов массива требовалось выводить каждый элемент отдельно. Для больших массивов это может потребовать много времени и оказаться громоздким. Циклы for решают эту проблему. В следующем примере создается массив с 5 элементами. Затем применяется цикл for для вывода всех значений массива.

<?php

 

//Создается новый массив, содержащий 5 значений цвета

$colors = array('red', 'green', 'blue', 'yellow','white');

 

// Цикл for используется для итераций по массиву и вывода каждого элемента

 

for ($i = 0; $i < sizeof($colors); $i++)

{

echo "Значением элемента массива $i+1 является $colors[$i].";

}

?>

Массив $colors содержит пять элементов — $colors[0] = "red", $colors[1] = "green", $colors[2] = "blue", $colors[3] = "yellow", и $colors[4] = "white". Создается цикл for. Переменной счетчику $i сначала задается значение 0, что соответствует первому элементу массива. Затем задается условие, проверяющее, что значение счетчика $i меньше sizeof($colors) или общего числа элементов массива. Здесь мы знаем, что размер массива равен 5, однако в большинстве случаев размер массива во время выполнения неизвестен. Наконец, переменная счетчика увеличивается на 1 во время каждой итерации. На каждом шаге выполнения цикла выводится строка — "Значением элемента массива $i+1 является $colors[$i]". Значения $i+1 и $colors[$i] расширяются и создают при выводе литеральные значения. Цикл выполняется, пока счетчик не превысит число элементов или размер массива. Получаемый вывод показан ниже.

Значением элемента массива 1 является red.

Значением элемента массива 2 является green.

Значением элемента массива 3 является blue.

Значением элемента массива 4 является yellow.

Значением элемента массива 5 является white.

Циклы являются полезными конструкциями, которые активно используются при программировании.

Цикл foreach

Конструкция foreach является вариацией цикла for и применяется для итераций на массивах. Существуют две различные версии цикла foreach.

Базовый синтаксис обеих версий цикла foreach показан ниже.

foreach ($array as $value)

{

оператор

}

 

foreach ($array as $key => $value)

{

оператор

}

Первый тип цикла foreach используется для итераций по массиву, обозначенному как $array. Во время каждой итерации цикла текущее значение массива присваивается переменной $value, и счетчик цикла увеличивается на единицу. Цикл продолжается, пока foreach не достигнет последнего элемента или верхней границы заданного массива. Во время каждой итерации значение переменной $value можно использовать любым способом, но исходное значение массива не изменяется. Чтобы изменить реальное значение массива, необходимо добавить символ "&". Любые изменения, сделанные в &value, будут присвоены элементу массива с текущим индексом.

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

<?php

$my_array = array('red','green','blue');

echo "Различные цвета включают: ";

foreach($my_array as $value)

{

$colors = $value. " ";

echo $colors;

}

?>

Во время каждой итерации имя цвета, связанное с текущим элементом массива, присваивается переменной $colors. Также добавляется одиночный пробел между соседними именами цветов для целей вывода. Когда цикл достигает конца массива, создается следующий вывод.

Различные цвета включают: red green blue

Вторая форма цикла обеспечивает такие же функции, что и первая, но дополнительно присваивает на каждом шаге итерации индекс текущего элемента массива или ключ переменной $key. В предыдущем примере массив $my_array содержит три элемента: $my_array[0] = "red", $my_array[1] = "green", и $my_array[2] = "blue". В то время как переменная $value содержит значения элементов массива red, green и blue, переменная $key содержит индексы элементов массива 0, 1, и 2.

Включаемые файлы

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

Включаемые файлы могут содержать любой код HTML или PHP и обычно сохраняются с расширением.inc, хотя можно использовать также расширения.php,.txt, или.htm. Содержимое включаемого файла кодируется один раз и включается в любое необходимое количество страниц PHP. Если во включаемом файле делается изменение, то обновление автоматически отражается на всех страницах PHP, ссылающихся на включаемый файл.

Ниже показан пример типичного включаемого файла, содержащего информацию о заголовке страницы.

Header.inc

<h3> Welcome to WebBooks.Com </h3>

Этот пример показывает включаемый файл с именем header.inc. Файл содержит текст "Welcome to WebBooks.Com", окруженный тегом XHTML <h3>. Он создает заголовок третьего уровня, который можно теперь включать на все страницы, которые составляют сайт WebBooks.

После создания включаемого файла, его можно включить в страницу PHP с помощью одной из следующих функций:

require(имя_файла) – включает и проверяет указанный файл

include(имя_файла) – другой способ подключения файлов

В следующем примере файл header.inc включается в существующую страницу PHP:

home.php

<?php

 

require('header.inc');

 

echo "<p>This is the WebBooks site...</p>";

 

?>

Функция require() вызывает файл header.inc и проверяет содержимое файла. Содержимое затем выводится, как если бы оно было частью страницы home.php. В этом примере функция require() кодируется вверху страницы, так как она содержит информацию заголовка. Оператор require() можно, однако, включить в любом месте документа PHP. Расположение функции require() определяет, где будет выводиться содержимое файла в контексте страницы PHP.

Welcome to WebBooks.Com

 

This is the WebBooks site...

Важно отметить, что при использовании включаемых файлов, которые содержат конфиденциальную информацию, такую, как пароли или информацию о пользователе, файлы должны сохраняться с использованием расширения.php, а не.inc или другого нестандартного расширения. Файлы, которые применяют нестандартные расширения файлов, могут загружаться с сервера Web, а их содержимое можно просматривать как обычный текст. Использование расширения.php гарантирует, что клиент не сможет увидеть исходный код, сервер вернет только код XHTML.

Использование функций

Функции используются для разбиения больших блоков кода на меньшие, более управляемые единицы. Содержащийся внутри функции код выполняет определенную задачу и возвращает значение. PHP содержит два типа функций – определенные пользователем (или созданные программистом) и внутренние (встроенные функции), которые являются частью определения языка PHP. Этот раздел посвящен созданию и применению определенных пользователем функций.

Определенные пользователем функции создаются с помощью ключевого слова function. Они особенно полезны в больших программах PHP, так как могут содержать блоки кода, которые могут вызываться или использоваться в программе, что позволяет избежать повторного переписывания кода. Далее представлен пример простой определенной пользователем функции PHP:

function AddNumbers($num1,$num2)

{

 

echo "Это пример функции PHP. Она вычисляет сумму двух чисел и возвращает

результат вызывающей программе";

 

return $num1 + $num2;

 

}

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

<?php

 

function AddNumbers($num1,$num2)

 

{

return $num1 + $num2;

}

echo "Сумма 5 и 2 равна ". AddNumbers(5,2);

?>

Однако определенная в начале функция AddNumbers() вызывается только позже в программе. Вызов функции происходит в операторе echo. Выводится строка "Сумма 5 и 2 равна ". Имя функции соединяется со строкой вывода, вызывая тем самым функцию. Функции передается два параметра — 5 и 2. Они присваиваются параметрам функции $num1 и $num2. Параметры складываются, и вызывается оператор return, чтобы "вернуть" значение или сумму двух чисел в то место в блоке кода PHP, который первоначально вызвал функцию. Вывод результата показан ниже:

Сумма 5 и 2 равна 7

Имена функций следуют тем же правилам, что и переменные в PHP. Допустимые имена могут начинаться с буквы или подчеркивания, после чего может следовать любое количество букв, цифр или подчеркиваний.

Проектирование форм

Обработка форм является очень важным свойством PHP. С помощью форм пользователи взаимодействуют со страницами Web, и с их же помощью можно собирать информацию для персонализированных страниц посетителей. В более широком смысле информационной обработки, формы предназначены для ввода данных в системы обработки. Они являются первичным механизмом получения данных, которые обрабатывают сценарии для порождения новой информации, обновления файлов и баз данных, а также для ответа на запросы пользователей для получения информации.

Пример приложения

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

 

Вторая страница является страницей приветствия сайта с именем "welcome.php". Информация формы посылается на эту страницу для проверки учетной записи и пароля. Если имя учетной записи и пароль будут правильными, то страница становится доступной. Если имя учетной записи или пароль будут неправильными, посетитель возвращается на страницу login.php.

 

<html>

<body>

 

<h3>Страница регистрации </h3>

 

<form name="Login" action="welcome.php" method="post">

<table border="0">

<tr>

<td>User name: </td>

<td><input type="text" name="Account" size="10"></td>

</tr>

<tr>

<td>Password: </td>

<td><input type="password" name="Password" size="10"></td>

</tr>

</table>

<input type="submit" name="SubmitButton" value="Submit">

</form>

 

</body>

</html>

Элементы управления формы HTML выводятся на странице Web при кодировании их внутри тегов <form>...</form>. Эти теги окружают элементы управления формы, однако они не обязаны окружать их "плотно". Другими словами, теги <form> не обязаны непосредственно предшествовать первому элементу управления и не обязаны следовать сразу за последним элементом управления. Если страница содержит одну форму, можно записать открывающий тег <form> сразу после тега <body>, а закрывающий тег </form> — непосредственно перед закрывающим тегом </body>. Затем элементы управления могут появляться в теле документа вперемешку с другими тегами HTML или текстом.

Тег <form> содержит три важные для обработки форм атрибута.

Атрибут Name. Все формы должны быть именованы. Хотя это не требуется для текущего упражнения, стоит следовать такой привычке. Имя формы потребуется, когда понадобится выполнить проверку данных в браузере, что будет рассмотрено в оставшейся части этого раздела. Формы именуют, записывая name="ИмяФормы" в теге <form>. Форме можно присвоить любое имя по желанию. В данном примере используется name="Login".

Атрибут Action. Атрибут Action="url" определяет расположение и имя страницы, на которую посылается информация из формы для обработки. Если страница, которая будет обрабатывать данные, находится в том же каталоге, что и содержащая форму страница, то URL в параметре Action является просто именем этой страницы. Иначе это может быть полный URL, определяющий адрес Web на другом сервере или в другом каталоге на том же сервере. В рассматриваемом примере имя учетной записи и пароль, введенные посетителем, посылаются на страницу welcome.php в том же каталоге: action="welcome.php".

Атрибут Method. Атрибут method="GET|POST" определяет способ, используемый для пересылки данных формы на страницу, где они будут обрабатываться. Существует два метода на выбор.

  • Метод GET является более старым способом пересылки данных. В этом случае данные из формы присоединяются в конце URL страницы, на которую посылаются данные (URL в атрибуте action). Данные формы состоят из текстовой строки, которая соединяется с URL с помощью знака вопроса (?). Вы могли видеть, как это происходит, при посещении Web. Этот метод не является предпочтительным при отправке данных формы, так как существует ограничение на количество посылаемых символов, и данные плохо защищены от постороннего взгляда, когда они появляются в поле адреса URL в браузере. Мы будем в дальнейшем в некоторых случаях использовать этот метод.
  • Метод POST отчасти решает эти проблемы. Он посылает данные формы на страницу action как отдельный поток данных, который не появляется в поле адреса браузера, кроме того, можно посылать любое требуемое для обработки формы количество символов. Если нет специальных причин, всегда используйте метод POST. В этом примере применяется method="post".

Поля формы

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

Поле Account. Пример страницы содержит текстовое поле, в котором пользователь вводит свое учетное имя. Это стандартное текстовое поле, созданное с помощью тега <input type="text"> с заданными атрибутами name и size.

<input type="text" name="Account" size="10">

Поле Password. Поле пароля имеет вид стандартного текстового поля ввода; однако при вводе символов в поле, они выводятся как звездочки (*) или маркеры, чтобы сохранить приватность вводимых данных. Поле пароля создается с помощью тега <input type="password">. Полю необходимо присвоить имя и изменить его размер, равный по умолчанию 20 символам.

<input type="password" name="Password" size="10">

В этом примере и для всех создаваемых форм необходимо не забывать задавать имена для полей формы. Эти имена требуются при обработке на сервере. Кроме того, можно управлять физическим размером полей, задавая атрибут size, и можно ограничить максимальное число символов, допустимых для ввода, задавая атрибут maxlength.

Кнопка Submit. При щелчке на кнопке передачи submit выполняется действие, определенное параметром ACTION тега <form>. Другими словами, щелчок на кнопке submit передает данные из формы на указанную страницу. Кнопка submit создается с помощью тега <INPUT TYPE="submit">. Кроме того, необходимо задать имя кнопки для ссылки в сценарии и присвоить значение, которое служит в качестве метки, появляющейся на кнопке.

<input type="submit" name="SubmitButton" value="Submit">

После создания страница с формой готова к активации. Вспомните, что эта форма передает информацию об имени учетной записи и пароле на страницу welcome.php. Там эти значения проверяются, чтобы разрешить доступ к странице. Если предоставлены неправильное имя учетной записи и/или пароль, пользователя немедленно возвращают на страницу login.php, не позволяя увидеть страницу welcome.php.

Работа с формами

Элементы управления формы HTML позволяют пользователям вводить данные и делать выбор и предоставляют механизм, с помощью которого пользователи взаимодействуют со страницей Web. Форма полезна в той мере, насколько она поддерживается сценарием обработки, закодированным на странице Web, или программой, выполняющейся на сервере Web. В данном учебнике рассматривается, как PHP, подобно другим серверным языкам программирования, взаимодействует с формами в ответ на ввод пользователя.

Введенные в форму данные посылаются на обработку, после щелчка на кнопке формы submit (отправка), <input type="submit">. Информация из полей формы передается затем на страницу, определенную атрибутом ACTION тега <form>. Когда запрос этого URL и соответствующие данные формы прибывают на сервер, вызывается указанная страница и данные передаются ей для обработки.

Пары имя/значение

Данные из формы передаются на сервер как последовательность пар имя/значение. Это значит, что имя каждого элемента формы (появляющееся в атрибуте NAME тега) связывается со значением этого элемента (введеным или выбранным пользователем). Формат имя/значение, используемый для передачи, имеет вид имя=значение. Используется столько пар имя/значение, сколько имеется элементов формы, и все пары соединяются с помощью символа амперсанда (&), чтобы сформировать текстовую строку, имеющую следующий вид:

name1=value1&name2=value2&name3=value3....

Все символы-разделители, появляющиеся в именах или значениях, заменяются символом плюс (+), чтобы создать неразрывную строку пар имя/значение. Предположим, что пользователь ввел имя учетной записи "myaccount" и пароль "xyzzy". Полученная строка пар имя/значение, доставляемая на сервер, будет иметь вид:

Account=myaccount

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...