Основы разработки сценариев на языке PHP

PHP - сценарии могут размещаться в отдельном файле (с расширением .php) или встраиваются непосредственно в HTML документ.

Существует несколько способов внедрения кода PHP в HTML документы:

  • С помощью открывающего тега <?php и закрывающего тега ?>.
  • С помощью коротких тегов <? и ?>. Данная возможность доступна только при специальной настройке.
  • С помощью тэгов <script language="php"> и </script>
  • Путем использования echo тэгов в стиле ASP: <% и %>. Такая возможность доступна при соответствующей конфигурационной настройке.

В дальнейшем в примерах будет использоваться первый из вариантов внедрения PHP кода.

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

Для того, чтобы увидеть текущие настройки PHP, и для проверки его работоспособности полезно использовать специальную функцию phpinfo():

<?php

phpinfo();

?>

Пример 10.4. Использования php-функции phpinfo() (html, txt)

После выполнения этого кода, в веб-браузере можно будет увидеть примерно следующее (показана небольшая часть):

 

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

Следующий пример демонстрирует вариант с внедрением PHP кода в HTML:

<html>

<body>

<p>Hello! </p>

<p>Today is:

<?php

$today = date("F j, Y, g:i a");

echo($today);

?>

</p>

</body>

</html>

Пример 10.5. Внедрение PHP кода в HTML документ (html, txt)

Результат обработки этого документа представлен ниже:

 

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

<?php

$method = $_SERVER["REQUEST_METHOD"];

 

if ($method == "GET") $query = "_GET";

elseif ($method == "PUT") $query = "_PUT";

else die("$method is not supported!");

 

print "<p><b>Method</b>: $method </p>";

print "<p><u>Params:</u></p>";

 

foreach ($$query as $name => $value)

{

print "<b>$name</b> = <i>$value</i> <br>";

}

?>

Пример 10.6. Вывод списка параметров, полученных сервером в запросе от клиента (html, txt)

В первой строке сценария с помощью переменной окружения REQUEST_METHOD из глобального ассоциативного массива $_SERVER определяется метод передачи данных в запросе клиента. В зависимости от выбранного метода переданные данные будут извлекаться либо из глобальной переменной $_GET либо из $_PUT. Если метод отличается от GET или PUT, либо неопределен, то происходит принудительное завершение работы сценария с выдачей сообщения через вызов функции die(). В принципе, можно также использовать глобальный массив $_REQUEST, содержащий внутри себя массивы $_GET, $_ POST и $_COOKIE, позволяющий избавиться от проверки метода передачи.

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

Обе переменные $_GET и $_ POST являются ассоциативными массивами, поэтому для перебора элементов был использован специальный оператор

foreach (имя_массива as ключ => значение)

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

Код сценария, реализующего четыре арифметические операции над целыми числами представлен в листинге ниже:

<?php

$method = $_SERVER["REQUEST_METHOD"];

 

if ($method == "GET") $query = "_GET";

elseif ($method == "PUT") $query = "_PUT";

else die("$method is not supported!");

 

$q = $$query;

 

$a = $q["A"];

$b = $q["B"];

$op = $q["op"];

 

switch ($op)

{

case '+': $result = (int)$a + (int)$b; break;

case '-': $result = (int)$a - (int)$b; break;

case '*': $result = (int)$a * (int)$b; break;

case '/':

{

if ($b == '0') die("divide by zero!");

}

default: die("operator $op is not defined");

}

print "<p>Result: $a $op $b = $result </p>";

print "<p><a href=".$_SERVER['HTTP_REFERER'].">Back</a></p>";

?>

Пример 10.7. Калькулятор арифметических операций для целых операндов (html, txt)

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

<?php

 

$fh = fopen("read.php","r");

if (!$fh) die("Cannot open file");

 

while (!feof ($fh))

{

$line = fgets($fh);

echo $line,"<br>";

}

fclose($fh);

 

?>

Пример 10.8. Чтение файла, содержащего PHP код, выполняемого сценария (html, txt)

В данном примере используются практические те же самые функции, что и в языке C:

  • fopen(путь_к_файлу, тип_доступа) – открытие файла;
  • feof (указатель_на_файл) – проверка на наличие признака конца файла;
  • fgets(указатель_на_файл) – чтение строки из файла;
  • fclose(указатель_на_файл) – закрытие файла.

Для записи данных в файл можно использовать функцию fputs(указатель_на_файл, строка). В следующем примере сгенерированные функцией rand() псевдослучайные числа сохраняются в файле rand.dat:

<?php

 

$n = 10;

 

$fh = fopen("rand.dat","w");

if (!$fh) die("Cannot open file");

 

srand();

for ($i=0; $i < $n; $i++)

{

$d = rand(0,100);

fputs($fh,"$d\n");

}

 

fclose($fh);

?>

Пример 10.9. Сохранение в файле последовательности псевдослучайных чисел (html, txt)

Перед выполнением данного сценария следует правильно настроить права доступа для веб-сервера к каталогу.








Дата добавления: 2015-12-29; просмотров: 839;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.