Использование Web-сервера Apache



При вводе в адресной строке браузера имени хоста localhost после установки Denwer и его запуска (StartDenwer на рабочем столе) теперь появляется страница управления Denwer.

Итак, как уже было замечено ранее Denwer предоставляет что-то вроде локального хостинга, а значит, обращение к Вашему сайту происходит по имени хоста и, соответственно, по протоколу http. В случае открытия html-страницы из файла обращение происходит без участия web-сервера Apache.

Поэтому при разработке собственного web-приложения (при обработке обязательно требуется web-сервер) необходимо зарегистрировать его. Для этого необходимо создать папку с именем хоста (имя, которое вы будете писать в адресной строке) в каталоге C:\WebServers\home. Например, my.ru. Далее необходимо создать в каталоге с именем хоста (в данном случае в каталоге my.ru) каталог www. В каталоге www необходимо создать файл с именем index.php или с именем index.html. В первом случае при обращении к разрабатываемому web-приложению (по имени хоста) файл сначала будет обработан, так называемой, php-машиной. Во втором случае файл будет сразу передан в браузер.

Если сразу после создания всех необходимых каталогов и файлов в адресной строке браузера ввести имя Вашего хоста, то произойдет ошибка. Для того, чтобы Ваше web-приложение или сайт были зарегистрированы web-сервером (в данном случае Apache) его необходимо перезапустить. Для этого необходимо запустить ярлык с именем RestartDenwer на рабочем столе.

Теперь можно ввести имя хоста в адресной строке браузера. Если все было сделано верно, то в окне браузера отобразиться содержимое страницы, которую Вы создали ранее (index.php или index.html).

 

Основы языка PHP

Общие сведения

PHP — это язык программирования, выполняемый на стороне сервера. В отличие от языка JavaScript PHP не зависит от программного обеспечения клиента и поэтому будет выполнен в любом случае. Последовательность инструкций (называемая программой или скриптом) выполняется интерпретатором языка PHP. Код программы может внедряться в HTML-код. Эта возможность отличает PHP от других языков, используемых в Интернете, например, от языка Perl. Обработка PHP-кода производится на сервере до того, как страница будет передана Web-браузеру. В итоге Web-браузер получит обычный HTML-код или другой вывод.

 

Листинг 1 – Пример простого кода

<html>

<head>

<title>Перваяпрограмма</title>

</head>

<body>

<?php

echo "Hello, world";

?>

</body>

</html>

 

Код приведенный выше, является наиболее простым. В итоге в окне Web-браузера отобразится надпись "Hello, world". Теперь давайте отобразим исходный HTML-код (листинг 2).

 

Листинг 2 – Исходный HTML-код

<html>

<head>

<title>Перваяпрограмма</title>

</head>

<body>

Hello, world</body>

</html>

 

Как нетрудно заметить, никаких признаков PHP в переданном браузеру коде нет. Это лишний раз доказывает, что исходный код php-файла в браузер был передан уже переработанным.

PHP-код встраивается в документ с помощью дескрипторов, иногда называемых также тегами: <?php и ?>

Пример:<?php echo "Hello, world"; ?>

В данный момент Вам встретилась одна из наиболее используемых в php команд echo. Как вы уже заметили, в браузер было передано Hello, world. Если вам необходимо вывести несколько строк, то необходимо написать: echo "Строка 1", "Строка 2";

Кроме того, HTML-теги также можно выводить с помощью оператора echo (листинг 3).

 

Листинг 3 – Пример кода

<?php

echo "<html><head>\n";

echo "<title>Перваяпрограмма</title>\n";

echo "</head><body>\n";

echo "<span style=\"color:red\">\n";

echo "Hello, world\n";

echo "</span>\n";

echo "</body></html>\n";

?>

 

Первое что привлекает внимание это комбинация символов \n. Эта комбинация используется для указания конца строки и считается одним символом. Если во всем коде листинга 3 убрать все такие символы, то в браузер будет передан весь код в одну строку.

Второе, что также привлекает внимание, это комбинация символов \". Эта комбинация используется для того, чтобы в браузер были переданы кавычки.

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

Для того чтобы в PHP закомментировать одну строку необходимо использовать // или #. Для использования многострочного комментария необходимо использовать /* комментарий в несколько строк */

Для вывода результатов скрипта кроме команды echo используется команда: print "Hello, world";

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

При указании имени переменной важно учитывать регистр букв: $strName и $strname — разные переменные.

В PHP переменные могут содержать следующие типы данных:

· integer — целые числа;

· double — вещественные числа;

· string — строка;

· bool — логический тип данных. Может содержать значения true или false;

· object — для хранения экземпляров класса;

· array — массивы.

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

$number = 7; // integer

$number2 = 7.8; // double

$string = "Строка"; // Переменной $string присвоено значение Строка

$string2 = 'Строка'; // Переменной $string2 также присвоено

// значение Строка

$boolean = true; // Переменной $boolean присвоено

// логическое значение true

PHP в любой момент времени изменяет тип переменной в соответствии с данными, хранящимися в ней.

$var = "Строка"; // тип string

$var = 7; // теперь переменная имеет тип integer

Функция gettype(<Имя_переменной>) возвращает тип данных переменной.

Кроме того, существуют функции проверки конкретного типа переменных:

· is_int(<Переменная>) возвращает true, если переменная имеет тип integer (целое число);

· is_integer(<Переменная>) возвращает true, если переменная имеет тип integer (целое число);

· is_double(<Переменная>) возвращает true, если переменная имеет тип double (вещественное число);

· is_float(<Переменная>) возвращает true, если переменная имеет тип double (вещественное число);

· is_string(<Переменная>) возвращает true, если переменная имеет тип string (строка);

· is_array(<Переменная>) возвращает true, если переменная имеет тип array (массив);

· is_object(<Переменная>) возвращает true, если переменная имеет тип object (объект);

· is_bool(<Переменная>) возвращает true, если переменная имеет тип boolean (логический тип данных).

С помощью функции isset(<Переменная>) можно проверить существование переменной. Если переменная определена, то возвращается true.

Функция empty(<Переменная>) проверяет наличие у переменной непустого, ненулевого значения. Возвращает true, если переменная пустая, не существует или имеет нулевое значение.

Удалить переменную можно с помощью функции unset(<Переменная>); Эта функция необходима, если переменная использовалась при обработке данных большого объема и теперь не нужна.

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

define(<Имя константы>, <Значение константы>[, <Регистр>]);

Необязательный параметр <Регистр> может содержать значения true или false. Если указано true, то интерпретатор не будет учитывать регистр символов при работе с именем константы, если же задано false или параметр не указан, регистр символов существенен.

После объявления константы ее имя указывается в программе без знака $.

Для проверки существования константы используется функция defined(<Имя константы>). Функция возвращает true, если константа объявлена.

В PHP существуют встроенные константы:

· __FILE__ (до и после два символа подчеркивания) — содержит имя файла с программой;

· __LINE__ (до и после два символа подчеркивания) — содержит номер строки, которую обрабатывает интерпретатор в данный момент;

· PHP_OS — содержит имя и версию операционной системы;

· PHP_VERSION — содержит версию PHP.

 

Операторы PHP

Математические операторы:

· + — сложение: $Z = $X + $Y;

· - — вычитание: $Z = $X - $Y;

· * — умножение: $Z = $X * $Y;

· / — деление: $Z = $X / $Y;

· % — остаток от деления: $Z = $X % $Y;

· ++ — оператор инкремента: $Z++;

· -- — оператор декремента: $Z--;

Операторы присвоения:

· = — присваивает переменной значение: $Z = 5;

· += — увеличивает значение переменной на указанную величину: $Z += 5; // Эквивалентно $Z = $Z + 5;

· -= — уменьшает значение переменной на указанную величину: $Z -= 5; // Эквивалентно $Z = $Z - 5;

· *= — умножает значение переменной на указанную величину: $Z *= 5; // Эквивалентно $Z = $Z * 5;

· /= — делит значение переменной на указанную величину: $Z /= 5; // Эквивалентно $Z = $Z / 5;

· %= — делит значение переменной на указанную величину и возвращает остаток: $Z %= 5; // Эквивалентно $Z = $Z % 5;

Основные функции для работы с числами:

· sin(), cos(), tan() — стандартные тригонометрические функции (синус,

· косинус, тангенс). Значение указывается в радианах;

· asin(), acos(), atan() — обратные тригонометрические функции (арксинус, арккосинус, арктангенс). Значение возвращается в радианах;

· exp() — экспонента;

· log() — натуральный логарифм;

· pow(<Число>, <Степень>) — возведение <Числа> в <Степень>;

· sqrt() — квадратный корень;

· pi() — возвращает число π;

· abs() — абсолютное значение;

· ceil() — значение, округленное до ближайшего большего целого;

· floor() — значение, округленное до ближайшего меньшего целого;

· max(<Список чисел через запятую>) — максимальное значение из списка;

· min(<Список чисел через запятую>) — минимальное значение из списка;

· mt_rand(<Начало диапазона>, <Конец диапазона>) — случайное число от <Начало диапазона> до <Конец диапазона> включительно;

· mt_srand(<Параметр>) настраивает генератор случайных чисел на новую последовательность. В качестве параметра обычно используется функция

· time(), возвращающая количество секунд, прошедшее с 1 января 1970 г.: mt_srand(time());

· base_convert() позволяет преобразовать число, записанное в одной системе счисления, в другую. Имеет следующий формат: base_convert(<Содержащая число строка>, <Исходная система счисления>, <Нужная система счисления>);

· bindec() преобразует двоичное число в десятичное;

· decbin() преобразует десятичное число в двоичное;

· hexdec() преобразует шестнадцатеричное число в десятичное;

· dechex() преобразует десятичное число в шестнадцатеричное;

· octdec() преобразует восьмеричное число в десятичное;

· decoct() преобразует десятичное число в восьмеричное;

· number_format() позволяет преобразовать число в отформатированную строку. Имеет следующий синтаксис: number_format(<Число>[, <Количество знаков после запятой>[, <Десятичный разделитель>, <Разделитель тысяч>]]);

Операторы сравнения используются в логических выражениях. Перечислим их:

· == — равно;

· === — строго равно;

· != — не равно;

· <> — не равно;

· !== — строго не равно;

· < — меньше;

· > — больше;

· <= — меньше или равно;

· >= — больше или равно.

 

Массивы в PHP

Особое внимание следует уделить массивам, так этот тип в PHP используется достаточно часто.

Инициализация массива осуществляется двумя способами:

· поэлементно:

$Mass[0] = 'Ноль';

$Mass[1] = 'Один';

$Mass[2] = 'Два';

$Mass[3] = 'Три';

Кроме того, можно не указывать индекс. PHP автоматически присвоит элементу индекс, на единицу больший последнего, то есть добавит элемент в конец массива:

$Mass[] = 'Ноль';

$Mass[] = 'Один';

$Mass[] = 'Два';

$Mass[] = 'Три';

· указав все элементы массива сразу:

$Mass = array('Ноль', 'Один', 'Два', 'Три');

Получить количество элементов массива позволяют функции count(<Имя массива>) и sizeof(<Имя массива>).

Для организации многомерного массива пользуются следующим приемом. Любому элементу массива можно присвоить другой массив:

$Mass = array();

$Mass[0] = array(1, 2, 3, 4);

В этом случае получить значение массива можно, указав два индекса:

$var = $Mass[0][2]; // Переменной $var будет присвоено значение 3

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

Пример ассоциативного массива:

$Mass['Один'] = 1;

$Mass['Два'] = 2;

$Mass['Три'] = 3;

echo $Mass['Один']; // Выведет: 1

Кроме перечисления, для инициализации ассоциативных массивов используется инструкция array():

$Mass = array('Один' => 1, 'Два' => 2, 'Три' => 3);

echo $Mass['Один']; // Выведет: 1

Инструкцию array() удобно использовать для создания многомерных ассоциативных массивов:

$Mass['Иванов'] = array('Имя' => 'Иван', 'Отчество' => 'Иванович','Год рождения' => 1966);

$Mass['Семенов'] = array('Имя' => 'Сергей', 'Отчество' => 'Николаевич','Год рождения' => 1980);

Существует и другой способ:

$Mass = array( 'Иванов' => array('Имя' => 'Иван', 'Отчество' => 'Иванович', 'Год рождения' => 1966), 'Семенов' => array('Имя' => 'Сергей', 'Отчество' => 'Николаевич', 'Год рождения' => 1980) );

Доступ к элементу такого массива осуществляется путем указания двух ключей:

echo $Mass['Иванов']['Год рождения']; // Выведет: 1966

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

 

Строки в PHP

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

Перечислим основные функции для работы со строками:

· strlen() возвращает количество символов в строке:

$str = "Строка";

echo strlen($str); // Выведет: 6

· trim() удаляет пробельные символы в начале и конце строки. Пробельными символами считаются: пробел, символ перевода строки (\n), символ возврата каретки (\r), символы горизонтальной (\t) и вертикальной (\v) табуляции и символ конца строки (\0)

· ltrim() удаляет пробельные символы в начале строки.

· rtrim() удаляет пробельные символы в конце строки.

· substr() возвращает подстроку указанной длины, начиная с заданной позиции. Если длина не указана, то возвращается подстрока, начиная с заданной позиции и до конца строки. Функция имеет следующий формат: substr(<Строка>, <Начальная позиция>, [<Длина>]);

· wordwrap() позволяет разбить длинный текст на строки указанной длины. Функция имеет следующий формат: wordwrap(<Строка>, <Количество символов>, <Символ разрыва>);

· strtoupper() заменяет все символы строки соответствующими прописными буквами.

· strtolower() заменяет все символы строки соответствующими строчными буквами.

· ucfirst() делает первый символ строки прописным.

· ucwords() делает первые символы всех слов прописными.

· strpos() ищет подстроку в строке. Возвращает номер позиции, с которой начинается вхождение подстроки в строку. Если подстрока в строку не входит, то функция возвращает false. Функция зависит от регистра символов. Имеет следующий формат: strpos(<Строка>, <Подстрока>, [<Начальная позиция поиска>]);

Если начальная позиция не указана, то поиск будет производиться с начала строки.

· str_replace() производит замену всех вхождений подстроки в строку на другую подстроку и возвращает результат в виде новой строки. Функция не изменяет исходную строку и зависит от регистра символов. Имеет следующий формат: str_replace(<Подстрока для замены>, <Новая подстрока>, <Строка>, [<Количество произведенных замен>]);

· strcmp(<Строка1>, <Строка2>) сравнивает две строки. Зависит от регистра символов. Возвращает одно из трех значений:

• 0 — если строки равны;

• 1 — если <Строка1> больше <Строки2>;

• -1 — если <Строка1> меньше <Строки2>.

· strcasecmp(<Строка1>, <Строка2>) сравнивает две строки без учета регистра:

 

Оператор условного перехода

Оператор ветвления if…else имеет следующий формат:

if (<Логическое выражение>) {

<Блок, выполняемый если условие истинно>

}

[elseif (<Логическое выражение>) {

<Блок, выполняемый, если условие истинно>

}]

[else {

<Блок, выполняемый, если все условия ложны>

}]

 

Листинг 4 - Проверка числа на четность

<b>Проверка числа на четность</b><br><br>

Введитечисло<br>

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">

<input type="text" name="var">

<input type="submit" value="OK">

</form><br>

<?php

if (isset($_GET['var'])) {

$var = $_GET['var'];

if (preg_match('/^[0-9]+$/s', $var)) {

// Преобразуем тип string (строка) в integer (число)

$var = intval($var);

if ($var%2 == 0) {

echo $var . ' - Четное число';

}

else {

echo $var . ' - Нечетное число';

}

}

else echo 'Необходимо ввести число';

}

?>

 

Оператор ветвления

Оператор выбора switch имеет следующий формат:

switch (<Переменная или выражение>) {

case <Значение 1>:

<Выражение 1>;

break;

case <Значение 2>:

<Выражение 2>;

break;

default:

<Выражение>;

}

 

Листинг 5 - Использование оператора switch

<b>Какой операционной системой вы пользуетесь?</b><br><br>

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">

<select name="os">

<option value="0" selected>Невыбрано</option>

<option value="1">Windows 98</option>

<option value="2">Windows ME</option>

<option value="3">Windows XP</option>

<option value="4">Другая</option>

</select>

<input type="submit" value="Выбрал">

</form>

<?php

if (isset($_GET['os'])) {

switch($_GET['os']) {

case '1':

echo 'Вывыбрали - Windows 98'; break;

case '2':

echo 'Вывыбрали - Windows ME'; break;

case '3':

echo 'Вывыбрали - Windows XP'; break;

case '4':

echo 'Вы выбрали - Другая'; break;

case '0':

echo 'Вы не выбрали операционную систему'; break;

default:

echo 'Мы не смогли определить вашу операционную систему';

}

}

?>

 

Циклы в PHP

Цикл for используется для выполнения выражений определенное число раз. Имеет следующий формат:

for (<Начальное значение>; <Условие>; <Приращение>) {

<Выражения>

}

Здесь присутствуют следующие конструкции:

· <Начальное значение> присваивает переменной-счетчику начальное значение;

· <Условие> содержит логическое выражение. Пока логическое выражение возвращает значение true, выполняются выражения внутри цикла;

· <Приращение> задает изменение переменной-счетчика при каждой итерации.

Примериспользования: for ($i=2; $i<101; $i+=2) echo $i . "<br>\n";

 

Выполнение выражений в цикле while продолжается до тех пор, пока логическое выражение истинно. Имеет следующий формат:

<Начальное значение>;

while (<Условие>) {

<Выражения>;

<Приращение>;

}

Работа цикла while в PHP аналогична работе такого же цикла в Pascal.

 

Выполнение выражений в цикле do…while продолжается до тех пор, пока логическое выражение истинно. Но в отличие от цикла while условие проверяется не в начале цикла, а в конце. По этой причине выражения внутри цикла do…while выполнятся минимум один раз.

Цикл имеет следующий формат:

<Начальное значение>;

do {

<Выражения>;

<Приращение>;

} while (<Условие>);

Работа цикла do .. while в PHP аналогична работе цикла Repeat .. Until в Pascal.

 

Цикл foreach используется для перебора элементов массива:

$Mass = array('Один', 'Два', 'Три', 'Четыре');

foreach ($Mass as $key) {

echo $key . '<br>';

}

Перебрать элементы ассоциативного массива можно следующим образом:

$Mass['Один'] = 1;

$Mass['Два'] = 2;

$Mass['Три'] = 3;

$Mass['Четыре'] = 4;

foreach ($Mass as $key => $value) {

echo $key . ' =&gt; ' . $value . '<br>';

}

 

Получение данных

Ранее было изучено понятие форм. У формы есть два основных параметра Action и Method. В параметре Action указывается, что произойдет при нажатии на кнопку Submit. Action, как правило, содержит ссылку на скрипт. После нажатия на кнопку Submit браузер не просто выполняет переход по определенной ссылке, а передает на сервер, так называемые переменные окружения. Переменных окружения достаточно много. Эти переменные содержат различную служебную информацию, а также сами данные передаваемые с формы. В зависимости от метода (параметра Method, который может принимать значения только POST и GET) данные содержаться в различных переменных окружения и, что более важно, в различных форматах. Когда web-сервер начинает обрабатывать полученные данные, он переносит данные переданные с формы в два глобальных массива. Первый массив $_GET, второй $_POST.

Таким образом, обращение к переменной переданной для обработки осуществляется следующим образом:

$_GET['<имя переменной на форме>']

$_POST['<имя переменной на форме>']

Чаще всего данные на форму передаются по методу POST, поскольку при данном методе передачи значения передаваемых переменных с формы не передаются в явной форме. В методе GET эти значения передаются в явном виде, что делает их не защищенными от злоумышленников.

 


Дата добавления: 2018-04-04; просмотров: 430; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!