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

Связь HTML-формы и PHP-скрипта.




 

В файле php.ini:

register_globals=on // прямое обращение к полям формы по именам

error_reporting=E_ALL //репорт о всех ошибках

display_error=on //вывод ошибок в документ

error_prepend_string=”<font color=ff000>”

//формат для ошибок (открывающий тег)

error_append_string=”</font>” //формат для ошибок (закрывающий тег)

Главное правило в связи HTML-формы и PHP-скрипта - это создание переменной для каждого элемента переданной формы HTML. То есть, если у Вас в форме есть одно текстовое поле под названием Text и кнопка Submit, в приемном PHP-сценарии Вам уже не нужно создавать переменную для текстового поля и каким-то образом ее инициализировать, так как данная переменная $Text будет автоматически создана со значением, равным введеному значению в текстовое поле.

 

Форму и PHP можно располагать в одно документе. Для этого в action надо указать action="<?php print $PHP_SELF?>".

 

Пример:

<h1>

<?php

if (isset($im)) {print $im;}

?>

</h1>

 

<form action="<?php print $PHP_SELF?>" method="POST">

<input type=text name=im>

<input type=submit value="Готово">

</form>

 

Семейство функций is..().

Функция isset() используется для определения, присвоено ли переменной какое-либо значение. Если значение присвоено, функция возвращает true. Вот прототип этой функции:

int isset (любая переменная)

Небольшой пример на использование функции isset

if (isset($a)) { echo ($a); }

Функция unset() используется для уничтожения переменной, при этом освобождается вся оперативная память, связанная с переменной.

void unset (любая переменная [, любая переменная [,...]])

Функции is_int(), is_integer() и is_long() определяют, является ли переменная целым числом.

bool is_int (любая переменная) bool is_long (любая переменная) bool is_integer (любая переменная)

is_double(), is_float() и is_real() определяют, является ли переменная числом с плавающей запятой.

bool is_double (любая переменная) bool is_float (любая переменная) bool is_real (любая переменная)

Функция is_string определяет, является ли переменная строкой.

bool is_ string (любая переменная)

Преобразование типов данных

Существует несколько правил преобразования:

Если строка начинается с допустимого числового значения, то данная строка при выполнении над ней числовой операции будет преобразована в целое число, Если же строка не начинается с числа, то она будет преобразована в 0.

 

<?php $str = "23SomeText"; $res = 5 + $str; echo $res; //выведет 28 echo $str; //выведет 23SomeText, т.к. значение самой переменной не изменится //при выполнении данной операции?>

 

Строка переводится в число с плавающей точкой только в том случае, если число занимает всю строку. Если же в строке будут встречены какие-то буквенные символы, то строка преобразуется в целое число.

<?php $str = "2.3"; $res = 5 + $str; echo $res; //выведет 5.8?>

 

Кроме того существует способ явного преобразования типов:

<?php $a = 99.2; $a = (int)$a; //=99 $b = (double)$a; //=99.0 $c = (string)$a; //="99"?>

Пример: таблица умножения. Форма с 2-мя полями для ввода 2-х чисел и кнопка типа Submit. При нажатии на кнопку создается таблица умножения от первого числа до второго на числа от1 до 10.

 

table.html

<html>

<head>

</head>

<body bgcolor="#99cc99">

<h2 style="color:#333333;">Таблица умножения</h2>

<form method="post" action="table.php">

<p>Введите число начала таблицы умножения</p>

<input type="Text" name="number1"></input>

<p>Введите число конца таблицы умножения</p>

<input type="Text" name="number2"></input>

<input type="Submit"></input>

</form>

</body>

</html>

Table.php

<html>

<head>

</head>

<body bgcolor="#99cc99">

<?php

if($number1 == 0 || $number1 ==1)

$number1 = 2;

if($number2 == 0){

$number2=10;

}

if($number1 >= $number2){

echo "<h2>Введите первое число меньше второго!</h2>";

return;

}

echo "<table border=3 cellpadding=5><tr>";

for($z = 1; $z <=10; $z++)

echo "<th bgcolor=\"#99cc33\">".$z."</th>";

echo "</tr>";

for($i = $number1; $i <= $number2; $i++) {

echo "<tr>";

for($y = 1; $y <= 10; $y++){

echo "<td>".$i*$y."</td>";

}

echo "</tr>";

}

echo "</table>";

?>

</body>

</html>

 

calc.html

<html> <head> </head>

<body bgcolor="#aab7ab">

<h2 align="center">Калькулятор</h2>

<form action="calc.php" method="post">

<table align="center" cellspacing=9><tr>

<td colspan=2>Первое число</td>

<td colspan=2><input type="text" name="num1" value="0"></input></td>

</tr><tr>

<td colspan=2>Второе число</td>

<td colspan=2><input type="text" name="num2" value="0"></input></td>

</tr><tr>

<td><input type="radio" name="operation" value="plus" checked> + </input></td>

<td><input type="radio" name="operation" value="minus"> - </input></td>

<td><input type="radio" name="operation" value="multiply"> * </input></td>

<td><input type="radio" name="operation" value="divise"> / </input></td>

</tr><tr>

<td colspan=4 align="center"><input type="submit"></input></td></tr></table>

</form>

</body></html>

Calc.php

<html><head></head>

<body bgcolor="#aab7ab">

<h2> Результат:</h2>

<h1>

<?php

switch($operation){

case "plus": echo ($num1+$num2); break;

case "minus": echo ($num1-$num2); break;

case "multiply": echo ($num1*$num2); break;

case "divise": if($num2==0) { echo "А Вы знали, что на ноль делить нельзя?";break;}

else{echo ($num1/$num2); break; }

default: echo "Неизвестно. Что вообще Вы хотели сделать с числами?"; break; }

?>

</h1></body></html>

 


Задания

1. 1. В html документе создайте форму с двумя текстовыми полями, в которые пользователь вводит два числа и кнопкой типа Submit. Далее после нажатия копки Submit вызывается php скрипт который выводит пять вариантов действия между этими числами. Пример: 5+2=7 5-2=3 5*2=10 5/2=2.5 5%2=1

2. В html документе создайте форму с двумя текстовыми полями, в которые пользователь вводит два числа и кнопкой типа Submit. Далее после нажатия копки Submit вызывается php скрипт который выводит только большее из двух чисел или сообщения что два числа равны.

 

3. В html документе создайте форму с текстовым полем, в которое пользователь вводит свой логин и кнопкой типа Submit. Далее после нажатия копки Submit вызывается php скрипт который проверяет, зарегистрирован ли этого пользователь. При этом таких пользователей (разных логинов должно быть 4). Если введен один из существующих логинов, должно выводится приветствие для этого человека. Например: введен логин Inan_php, должно вывестись приветствие «Здравствуйте Иванов Иван Иванович». Если введен неизвестный логин должно вестись сообщение – «Вы не зарегистрированный пользователь!»

4. Помимо логина пользователь должен вводить и пароль. Для зарегистрированного пользователя должен проверятся еще и пароль. Это реализовать включением блока if в блоки case.

5. В html документе создайте форму с текстовым полем, в которое пользователь вводит число и кнопкой типа Submit. Далее после нажатия копки Submit вызывается php скрипт который проверяет, четное это число или нет и выводит результат.

6. Предварительно нужно проверить, что пользователь ввел целое число.

 


Тема № 3. Функции. Подключение файлов.

Чтобы определить функцию, Вам необходимо воспользоваться оператором function.

function имя_функции(параметры)

{ какой-либо код }

Кроме этого Вы можете возвращать значения из функции при помощи оператора return. Но его использование необязательно. return можно также использовать для прекращения работы функции.

 

function MyFunc ($param)

{ if($param == 0)

return;

echo ("The parameter is ".$param);

}

....

$number = 91;

MyFunc($number);

 

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

 

function Change (&$num1, &$num2)

{ $changer = $num1;

$num1 = $num2;

$num2 = $changer;

}

$number1 = 10;

$number2 = 25;

Change ($number1, $number2);

echo $number1; //выведет 25

echo $number2; //выведет 10

 

Мы можем устанавливать для параметров значение по умолчанию, но как и в С/С++ такие параметры необходимо помещать в конец.

 

function MyFunc($first, $second = 0)

{ $result = $first + $second;

return ($result);

}

$num = MyFunc(500);

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

 

function FirstFunc ($param) {//возводит число во вторую степень

function SecondFunc($num){ //возводит число в третью степень

return ($num * $num * $num);

}

return ($param * $param);

}

$someNumber = 10;

echo (FirstFunc ($someNumber));

echo (SecondFunc (5));

 

Подключение файлов

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

Для того, чтобы подключить файл, необходимо воспользоваться функцию require().

require ("имя_файла");

Вы также можете использовать альтернативную форму для require - include("имя_файла").

Файл p1.php

<?php

function DemoFunc () {return "Hello";}

?>

Файл p2.php

<?php

$var = require ("p1.php");

echo ($var); //выводит Hello

?>

Есть несколько различий между require и include

require в случае ошибки при подключении файла тут же закончит выполнение PHP-скрипта, то есть вызовет функцию exit(), а include продолжит далее выполнение скрипта.

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

при условии существования двух файлов My1.php и My2.php

for ($i = 1; $i <= 2; $i++) { require ("My".$i.".php");} // интерпретатор PHP выдаст ошибку

for ($i = 1; $i <= 2; $i++) { include ("My".$i.".php");} // сработает


Тема № 4. Самостоятельная работа.

1. На странице с формой пользователю предлагается отгадать число (ввести с текстовое поле). После нажатия на кнопку ГОТОВО запускается PHP скрипт, который проверяет, отгадал ли пользователь число и если нет пишет текст: 7 – не верно. И далее ссылка на документ с формой и тестом – попробуй еще раз! Если пользователь угадал число то большими красными буквами должно писаться - ВЕРНО.

2. В процессе угадывания предусмотрите подсказки типа – загадано больше или загадано меньше.

3. Выведите таблицу умножения на введенное пользователем число в виде (в примере пользователь ввел 3).

a. Каждая строка должна быть разного цвета.

4. Пользователь вводит произвольный диапазон (например от –5 до 6). Необходимо вывести таблицу отношений числа 10 ко всем числам введенного диапазона. Например как показано. Остановить цикл, если происходит деление на 0.

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

5. Составьте программу «угадай число» для цикла по условию. На странице с формой пользователь вводит число и нажимает кнопку, которая вызывает PHP скрипт, который до тех пор, пока пользователь не отгадает число, вызывает java script, который сначала вызывает alert с текстом «не отгадали» а затем снова вызывает файл с формой. Цикл не вызывается, если число отгадано.

a. В процессе угадывания также как и ранее предусмотрите подсказки – загадано больше или загадано меньше.

6. Используя цикл по условию с проверкой условия при выходе из цикла решите следующую задачу. Известно, что число бактерий удваивается каждый час. Пользователь вводит начальное число бактерий (например 10) и конечное – например 1000000. Далее начинает работать цикл выводящий в разных строках примерно следующее:

время 1 ч. – уже есть 20 бактерий

время 2 ч. – уже есть 40 бактерий и т.д. пока не будет превышена конечная цифра.

a. При вводе проверить, что начальное число меньше конечного.

7. Создайте функцию, которая в качестве аргумента получает произвольное число и затем выводит таблицу умножения на это число в виде (например) 3*1=3,3*2 =6 и т.д. до 3*10=30. Далее, вызывая эту функцию в цикле, получите в таблице (оформленной в HTML) таблицу умножения для чисел от 2 до 9. Должно выйти как на рисунке.

 


Тема № 5. Контрольная работа.

1. В HTML форме пользователь вводит строки текста. После нажатия клавиши кнопки ГОТОВО запускается PHP скрипт, в котором напишите функцию, которая в качестве аргументов получает эти три строки и формирует из них таблицу с тремя ячейками.

a. Выше таблицы предусмотрите бегущую строку с текстом первой строки.

2. В HTML форме пользователь вводит три число a,b и с и после нажатия клавиши кнопки ГОТОВО запускается PHP скрипт, который решает квадратное уравнение: ax2+bx+c=0. Для этого в скрипте предусмотрите функцию, которая получает три аргумента (a,b и c) и возвращает значение дискриминанта D=b2-4ac. Далее в самой программе проверяется значение функции и в зависимости от ее значения рассчитывается 2 или 1 корень, или выводится сообщение «корней нет». Напоминаю, корни рассчитываются по формуле.

Например, при вводе 2, -5, 2 корни должны выйти 2 и 0.5, при 1, 2, 1 корень –1 и т.п.

a. Дополнительно проверьте, что a¹0, и если это не так, выведите сообщение.

3. Создайте функцию, которая в качестве параметров принимает два числа и выводит первое число в степени второго. Если второе число не задано, число должно выводится в первой степени.

4. В первом массиве длиной 4 элемента запишите имена сотрудников, во втором (тоже длиной 4) – их фамилии. Далее выведите их в таблицу с одной строкой и четырьмя ячейками (в каждой имя и фамилия).

a. Сделайте таблицу размером 2 на 2.

 

 


Тема № 6. Массивы.

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

Для инициализации массива существуют несколько способов. Один из способов Вам уже знаком:

 

$massiv[0] = "first";

$massiv[1] = "second";

$massiv[2] = "third";

 

Но то же самое Вы могли бы провернуть и другим способом.

 

$massiv[] = "first";

$massiv[] = "second";

$massiv[] = "third";

 

Данный код создаст массив из трех элементов, и даст индексы элементам по умолчанию: 0, 1, 2. Но можно присваивать любой целый индекс по своему усмотрению:

$massiv[25] = "first";

$massiv[10] = "second";

$massiv[49] = "third";

Данный код опять-таки создает массив из трех элементов, но с индексами 10, 25 и 49. Как вы уже наверное поняли, привычный для вас способ определения количества элементов в массиве по наибольшему индексу в массиве не сработает. Тут необходимо что-то другое, а именно функция count(). Вот ее прототип: int count (массива)

Данная функция возвращает 0 в случае, если такого массива нет или если в массиве нет элементов (об этом позже). Если Вы имеете дело с массивом с последовательной индексацией, то Вы сможете ее использовать для работы с массивом:

$massiv = array("first", "second", "third");

$num = count($massiv);

for($i = 0; $i < $num; $i++){ echo (massiv[$i]."<br>"); }

 

Кстати, вы можете совмещать способы инициализации:

 

$massiv[25] = "first";

$massiv[10] = "second";

$massiv[ ] = "third";

 

В данном случае третьему элементу массива присвоится индекс 26.

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

 

$massiv = array("first", "second", "third");

 

Создаст массив с тремя элементами, присвоив им индексы 0, 1 и 2 соответственно. Чтобы присваивать индексы по своему усмотрению, необходимо использовать в функции array() оператор =>

 

$massiv = array(5 => "first", 15 => "second", 10 => "third");

$massiv = array(9 => "first", "second", 21 => "third");

 

В первом примере создается массив из трех элементов с индексами 5, 10 и 15. Во втором случае - с индексами 9, 10 и 21. Обратите внимание, что оператор => можно использовать перед любым элементом массива.

Чтобы присвоить элементу массива индекс в виде строки, делаем то же самое:

 

$massiv["first"] = "five";

$massiv["second"] = "six";

или $massive = array("first" => "five", "second" => "six");

 

Теперь рассмотрим функции, которые помогут вам справляться с массивом, если он непоследовательно индексирован или индексирован строками. Две функции - each() и list() используются вместе для прохода через массив:

void list(...); //присваивает переданные переменные так, как если бы они были массивом

array each (array array) //возвращает следующую пару (ключ, значение) из массива

//в случае, если массив закончился, функция возвращает FALSE.

 

reset($massiv);

while (list($key, $value) = each($massiv))

{ echo "Array element with key = ".$key." has value = ".$value."<br>"; }

В примере используется еще одна функция - reset(). Ее используют для установки внутреннего указателя на первый в массиве элемент. При использовании этой функции Вы будете уверены, что находитесь в начале массива.

Следующие две функции next(), prev() перемещают внутренний курсор в массиве на один элемент вперед или назад соответственно, т.е. возвращают значение следующего или предыдущего элемента соответственно. В случае, если достигнут конец или начало массива функции возвращают FALSE.

 

sort(array, flag) – сортировка массива, где flag – необязательный параметр:

SORT_REGULAR – обычная сортировка

SORT_NUMBER – значения массива рассматриваются как числа

SORT_STRING – значения массива рассматриваются как строки.

asort(array) – сортировка массива с сохранением порядка индексов.

rsort(array) – аналогична sort(), но в обратном порядке.

arsort(array) – аналогична asort(), но в обратном порядке.

ksort(array) – сортирует массив по индексам.

krsort(array) – аналогична ksort(), но в обратном порядке.

 

Функция usort() несколько сложнее. В качестве одного аргумента, как и все остальные функции сортировки, она принимает массив. Однако у нее есть и второй аргумент. Этим вторым аргументом является функция, опре­делив которую, можно сообщить usort (), как осуществлять сортировку. В следующем примере массив сортируется по длине строк, содержащихся в его элементах. Функция strlen() возвращает длину строки.

 

function by_length ($a, $b)

{ $1_а = strlen ($a);

$1_Ь = strlen ($b);

if ($l_a == $l_b) return 0;

return ($l_a < $l_b)? -1: 1;

}

$countries = array ("e" => "United States",

"d" => "United Kingdom",

"c" => "Canada",

"b" =;> "Costa Rica",

"a" => "Germany");

usort ($countries, by_length);

while (list ($key, $val) = each ($countries))

{ echo "Element $key equals $val<BR>\n"; }

 

Возможно, вы заметили, что в результате мы снова потеряли наши строко­вые индексы. Функция uasort () действует так же, как usort (), но сохраня­ет исходные индексы. Функция uksort () действует аналогично функции usort (), но сравнивает ключи, а не значения элементов массива.

 

А что если мы хотим десортироватъ массив? Функция shuffle () с помощью имеющегося в РНР генератора случайных чисел переставляет элементы массива в случайном порядке. В приведенном ниже примере функция shuf­fle () используется вместе с функцией range () с целью создания массива из ста случайно расположенных чисел. Функция range () принимает два цело­численных параметра, первый из которых должен быть меньше второго, и возвращает массив, состоящий из всех целых чисел между этими двумя зна­чениями.

 

// Создать массив чисел от 1 до 100:

$ints = range (1, 100);

// Задать начальное состояние генератора случайных чисел:

srand (time());

shuffle ($ints);

while (list (, $num) = each ($ints)) {

echo "$num<br>\n"; }

 

Массивы особенно удоб­ны при работе с данными HTML-форм табличного ви­да. При желании предоста­вить пользователю возмож­ность ввести в базу данных несколько имен можно вос­пользоваться следующей формой

Код HTML для текстовых окон может выглядеть так:

 

<INPOT NAME="firstl" TYPE=TEXT> <INPUT NAME ="lastl" TYPE=TEXT>

<INPUT NAME="first2" TYPE=TEXT> <INPUT NAME="last2" TYPE=TEXT>

<INPOT NAME="first3" TYPE=TEXT> <INPUT NAME="last3" TYPE=TEXT>

 

Каждое текстовое окно имеет уникальное имя (" firstl", "lastl", "first2" и т. д.). При передаче формы для каждого текстового окна на форме будет соз­дана переменная PHP ($firstl, $lastl, $first2 и т. д.). Однако если коли­чество строк может меняться, как, вероятно, и будет, то более удобно пред­ставить каждое поле как массив данных. В HTML это делается с помощью квадратных скобок после имени элемента. Можно использовать цикл РНР for для размещения на форме необходимого числа текстовых окон:

 

<?php

$names = 3;?>

<form action=”submit.php" method=post>

<? for ($i = 1; $i <= $names; $i++):?>

first name:

<input мйме="first[]" type=text><br>

last name:

<input name="last[] " type=text><br><br>

<? endfor?>

<br><input type=submit>

</form>

При передаче этой формы РНР создаст массивы с именами $first и $last, каждый элемент которых будет содержать значение текстового окна. Это позволяет легко обработать переданные данные в сценарии РНР. Допустим, что мы хотим добавить переданные имена в таблицу базы данных. Можно создать команду SQL INSERT для каждой пары имен при циклическом обходе массива:

 

<!— submit.php —>

<?php

$numrows = count ($first);

for ($i = 0; $i < $numrows; ++$i) {

$sql = "INSERT INTO Names ('First', 'Last') ". "VALUES (‘$first[$i]', '$last[$i]')";

// Здесь код для выполнения запроса. //... //... }?>


Задание

 

1. В массив внесите 5 произвольных чисел. Далее используя конструкцию foreach выведите их и их квадраты в виде: 42=16 22=4 52=25 и т.д.

a. Оформите вывод в виде таблицы с одной строкой и 5-ю ячейками, при этом фон у каждой ячейки должен быть разный – разными оттенками серого.

2. Создайте и заполните ассоциированный массив в котором именами элементов будет – название страны, население и название столицы (английские названия придумайте самостоятельно). Выведите из массива таблицу в три строки по две ячейки в каждой. В левой ячейке имя элемента, в правой – его значение.

a. Измените таблицу – 2 строки по 3 элемента. Выедите в первой строке только имена элементов, во второй – значения.

3. В HTML форме пользователь вводит в четыре разных поля фамилию, имя, возраст и e-mail. После нажатия клавиши кнопки ГОТОВО запускается PHP скрипт, который вносит эти данные в ассоциированный массив и далее выводит их используя конструкцию

while (list ($key, $val) = each ($countries)).

a. В форме предусмотреть проверку, что все поля перед отправкой не пустые.

4. Заполните в циклах первый массив квадратами чисел от 10 до 20, а второй – кубами чисел от 1 до 10. Далее объедините эти массивы и выведите объединенный.

 


Тема № 7. Самостоятельная работа: массивы+сортировка.

1. В HTML форме предусмотрите поля для ввода фамилий и результатов по прыжкам в длину для четырех спортсменов (т.е. всего 8). Пользователь вводит данные и в выпадающем списке выбирает «Сортировать по именам» или «Сортировать по результатам». После нажатия кнопки ГОТОВО в зависимости от выбора в php скрипте, сначала объединяются фамилии и результаты в один массив (подумайте, как это сделать правильно сделать, в зависимости от выбора) и выводят массив в отсортированном виде.

a. Предусмотрите проверку, чтобы результат всегда быт трехзначным числом (от 100 до 999) и фамилии были тоже все вписаны.

2. В HTML форме предусмотрите поля для ввода результатов по прыжкам в длину для четырех спортсменов, фамилии которых заранее известны. Пользователь вводит данные и в выпадающем списке выбирает «Сортировать по убыванию» или «Сортировать по возрастанию». Далее нажимает кнопку «Готово», которая вызывает php скрипт, который вносит данные в ассоциированный массив (имена полей – фамилии спортсменов) и выводит массив в отсортированном виде (по убыванию или по возрастанию).

a. Перед сортировкой предусмотрите превращение данных в целые числа.

3. В HTML форме предусмотрите поле для ввода фамилии пользователя и список книг из школьной программы в виде checkbox–ов. Пользователю предложить отметить те из них, которые он читал и далее, используя PHP скрипт, вывести их в виде отсортированного списка.

a. Дополнительно предусмотреть в форме выпадающий список с этими же книгами, в котором пользователь укажет одну любимую. При выводе списка книг в скрипте любимая должна быть выделена жирным шрифтом.

 

 


Тема № 8. Функции для работы с датой и временем.

Для работы со временем в языке PHP есть несколько встроенных функций

checkdate -- проверяет правильность даты/времени.

int checkdate (int month, int day, int year);

Возвращает true если данная дата правильна, иначе false. Проверяет правильность даты, заданной аргументами. Дата считается правильной, если: год между 1900 и 32767 включительно, месяц между 1 и 12 включительно, день находится в диапазоне разрешенных дней данного месяца. Высокосные годы учитываются.

date -- формат локального времени/даты

string date (string format, int timestamp);

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

a - "am" или "pm"

A - "AM" или "PM"

d - день месяца, цифровой, 2 цифры (на первом месте ноль)

D - день недели, текстовый, 3 буквы; т.е. "Fri"

F - месяц, текстовый, длинный; т.е. "January"

h - час, цифровой, 12-часовой формат

H - час, цифровой, 24-часовой формат

i - минуты, цифровой

j - день месяца, цифровой, без начальных нулей

l (строчная 'L') - день недели, текстовый, длинный; т.е. "Friday"

m - месяц, цифровой

M - месяц, текстовый, 3 буквы; т.е. "Jan"

s - секунды, цифровой

S - английский порядковый суффикс, текстовый, 2 символа; т.е. "th", "nd"

U - секунды с начала века

Y - год, цифровой, 4 цифры

w - день недели, цифровой, 0 означает воскресенье

y - год, цифровой, 2 цифры

z - день года, цифровой; т.е. "299"

Нераспознанные символы в форматной строке будут печататься как есть.

getdate -- получает информацию о дате/времени

array getdate (int timestamp);

Возвращает ассоциативный массив, содержащий информацию о дате со следующими элементами:

"seconds" - секунды

"minutes" - минуты

"hours" - часы

"mday" - день месяца

"wday" - день недели, цифровой

"mon" - месяц, цифровой

"year" - год, цифровой

"yday" - день года, цифровой; т.е. "299"

"weekday" - день недели, текстовый, полный; т.е. "Friday"

"month" - месяц, текстовый, полный; т.е. "January"

 


Тема № 9. Функции для работы со строками.

AddSlashes -- выделяет строку обратной чертой. Возвращает строку с обратной чертой (/) перед символами, которые должны быть выделены в запросах к базам данных и т.п. Эти символы: ('), двойные кавычки ("), (\) и NUL (нулевой байт).

string addslashes(string str);

Chop -- удаляет повторяющиеся пробелы. Возвращает строку без повторяющихся пробелов.

string chop(string str);

explode -- разбивает строку на строки. Возвращает массив строк, содержащий элементы, разделенные строкой separator.

array explode(string separator, string string);

implode -- Объединяет массив элементов в строку. Возвращает строку, содержащую совокупность всех элементов массива в том же порядке, со строкой glue между каждым элементом.

string implode(array pieces, string glue);

ltrim -- Удаляет пробелы из начала строки. Эта функция удаляет пробелы из начала строки и возвращает обрезанную строку.

string ltrim(string str);

nl2br -- Переводит символы новой строки в HTML-тег разрыва строки. Возвращает string с '<BR>' вставляемыми перед каждой новой строкой.

string nl2br(string string);

sprintf -- возвращает форматированную строку. Возвращает строку, обрабатываемую в соответствии с форматирующей строкой format.

sprintf(string format, mixed [args]...);

Описатель типа, который говорит о том, как тип данных аргумента должен трактоваться. Возможные типы:

% - символ процента. Аргумент не требуется.

b - аргумент трактуется как integer и представляется как двоичное число.

c - аргумент трактуется как integer и представляется как символ с ASCII значением.

d - аргумент трактуется как integer и представляется как десятичное число.

f - аргумент трактуется как double и представляется как число с плавающей точкой.

o - аргумент трактуется как integer и представляется как восьмиричное число.

s - аргумент трактуется и представляется как строка.

x - аргумент трактуется как integer и представляется как шестнадцатиричное число (с буквами в нижнем регистре).

X - аргумент трактуется как integer и представляется как шестнадцатиричное число (с буквами в верхнем регистре).

strchr -- Находит первое появление символа.

string strchr(string haystack, string needle);

strcmp -- Двоичное сравнение строк (безопасное). Возвращает < 0 если str1 меньше чем str2; > 0 если str1 больше чем str2, и 0 если они равны. Следует отметить, что это сравнение чуствительно к регистру.

int strcmp(string str1, string str2);

Strcspn

int strcspn(string str1, string str2);

StripSlashes -- удаляет символы \ из строки. Возвращает строку с вырезанными символами \. (\' заменяется на ' и так далее). Двойные \\ заменяются на \.

string stripslashes(string str);

strlen -- Возвращает длину строки

int strlen(string str);

strrev -- Переворачивает строку. Возвращает перевернутую строку string.

string strrev(string string);

strtolower -- Переводит строку в нижний регистр

string strtolower(string str);

strtoupper -- Переводит строку в верхний регистр

string strtoupper(string string);

substr -- Возвращает часть строки. Эта функция возвращает часть строки string, определяемую параметрами start (начало) и length (длина).

string substr(string string, int start, int [length]);

trim -- Обрезает пробелы с начала и с конца строки

string trim(string str);

 

 


Тема № 10. Файлы и директории.

В PHP есть функции для работы с файловой системой.

Функция fopen необходима для того, чтобы открыть файл.

int fopen(string filename, string mode);

Если при открытии файла происходит ошибка, функция возвращает false.

Параметр mode выбирается из следующего списка:

r Открыть только для чтения, помещает указатель на начало файла.
r+ Открыть для чтения и для записи, помещает указатель на начало файла.
w Открыть только для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не сществует, создается новый файл
w+ Открыть для чтения и для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не сществует, создается новый файл.
a Открыть только для записи, помещает указатель на конец файла. Если файл не сществует, создается новый файл.
a+ Открыть для чтения и для записи, помещает указатель на конец файла. Если файл не сществует, создается новый файл.

На платформе Windows используйте передние слеши.

$fp = fopen("c:\\data\\info.txt", "r");

Для закрытия файлов используйте функцию fclose.

int fclose(int fp);

Параметр fp - указатель на файл, который надо закрыть. Функция возвращает true при удачной операции и false при ошибке.

basename -- возвращает из полного пути имя файла

string basename(string path);

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

$path = "/inetpub/wwwroot/index.php";$file = basename($path); // $file устанавливается в "index.php"

copy -- скопировать файл

int copy(string source, string dest);

Создает копию файла. Возвращает true при успешном завершении; в противном случае - false.

dirname -- путь к файлу

string dirname(string path);

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

feof -- проверка на достижение указателем конца файла

int feof(int fp);

Возвращает true если указатель файла равен EOF или в случае ошибки; в противном случае возвращается false.

fgetc -- получить символ из файла

string fgetc(int fp);

Возвращает строку, содержащую один символ, прочитанный по файловому указателю fp. При EOF возвращается false.

fgets -- получить строку по указателю на файл

string fgets(int fp, int length);

Возвращает строку до length - читается по одному байту из файла, указанного в fp. Чтение заканчивается, если прочитано length символов - 1 байт прочитается в любом случае, или до символов перевода строки и возврата караетки, или до EOF. При ошибке возвращается false.

fgetss -- получить строку по указателю файла и вырезать HTML тэги

string fgetss(int fp, int length);

file -- прочитать файл в массив

array file(string filename);

Идентична readfile(), но file() выдает файл в массив. Каждый элемент массива соответствует строке файла (вместе с символом возврата строки).

file_exists -- проверяет существование искомого файла.

int file_exists(string filename);

Возвращает true, если файл, определенный в filename, существует; иначе - false.

fileperms -- разрешения для файла

int fileperms(string filename);

Возвращает разрешения, установленные для файла, или false в случае ошибки..

filesize -- размер файла

int filesize(string filename);

Возвращает размер файла, или false в случае ошибки.

fpassthru -- вывод всех данных из указателя файла

int fpassthru(int fp);

Читает до EOF по полученному указателю файла и записывает результат на стандартное устройство вывода. При возникновении ошибки fpassthru() возвращает false.

ftell -- текущая позиция указателя в файле

int ftell(int fp);

Возвращает позицию указателя в файле, на который ссылaется fp, т.е. смещение в потоке файла. При возникновении ошибки возвращается false.

fseek -- установить указатель на компоненту файла с заданным номером

int fseek(int fp, int offset); offset – количество байт(символов) на которое нужно сместиться. Возвращает -1, если ошибка и 0 если успех.

fwrite -- бинарная запись в файл

int fwrite(int fp, string string, int [length]);

fwrite() записывает содержимое string в файловый поток, указанный fp. Если аргумент length присутствует, запись останавливается после записи length-го байта, или после записи всей строки string.

int file_exists(string filename); проверка существования файла (true – существует)

int filesize(string filename); - возвращает размер файла.

Еще одна функция is_dir

bool is_dir(string filename);

Возвращает true, если filename существует и это директория.

Похожая на предыдущую функцию, функция is_file

bool is_file(string filename);

Возвращает true, если filename существует и является обычным файлом.

mkdir -- создать директорию

int mkdir(string pathname);

Пытается создать директорию, указанную в pathname. Возвращает true при успешном выполнении и false при ошибке.

rename -- переименовать файл

int rename(string oldname, string newname);

Пытается переименовать oldname в newname. Возвращает true при успешном выполнениии и false при сбое.

Функция rewind позиционирует файловый указатель для fp на начало потока файла.

int rewind(int fp);

При возникновении ошибки возвращается 0.

rmdir -- удалить директорию

int rmdir(string dirname);

Пытается удалить директорию, указанную путем. Директория лдолжна быть пустой, и релевантные разрешения должны допустить это. При возникновении ошибкт возвращается 0.

unlink -- удалить файл

int unlink(string filename);

Удаляет filename. Возвращает 0 или FALSE при ошибке.

chdir -- смена каталога

int chdir(string directory);

Изменяет текущий PHP

Поделиться:





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



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