Kpaткuй справочник по языку РНР

Это приложение не имеет целью копировать Руководство по использованию РНР, которое вы можете найти в Интернете по адресу: http://www.php.net/manual/. Руководство содержит предназначенные для пользователя комментарии и примеры программ. Вместо этого, наше приложение представляет собой справочник элементов РНР, без которых (по мнению автора) невозможно обойтись. Группа разработчиков РНР и другие авторы документации проделали огромную работу над полным руководством по РНР, и нет смысла «изобретать колесо». Однако, поскольку это приложение касается только небольшого процента всей информации о РНР, обратитесь к Руководству по РНР перед тем как задать вопрос в одной из почтовых конференций по РНР.

Начальные и конечные теги РНР

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

Основные начальные и конечные PHP-теги
Открывающий тег
Закрывающий тег

<?php

?>

<?

?>

<script 1anguage= " php " >

</script>

Переменные

Вы создаете переменные для представления данных. Например, следующая переменная хранит значение налога с продаж:

$sales_tax = 0.0875;

Эта переменная хранит оператор SQL:

$sql = "SELECT * FROM MY_TABLE";

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

$tax_total = $sales_tax * $sub_total;

Правильные имена переменных должны обладать следующими свойствами:

  • Должны начинаться со знака доллара ($).
  • Не должны начинаться с цифры.
  • Должны быть чувствительны к регистру ($А и $а - две разные переменные).

Переменные могут быть следующих типов:

  • Integer (целое);
  • Float (с плавающей точкой);
  • String (строка);
  • Array (массив).

Эти типы распознаются РНР в зависимости от контекста, в котором они появляются.

Массивы

В следующем примере переменная $fave_colors является массивом, который состоит из строк, представляющих элементы массива. В этом примере элементы массива (от 0 до 3) являются названиями цветов.

$fave_colors [0] = "red";
$fave_colors [1] = "blue";
$fave_colors [2] = "black";
$fave_colors [3] = "white";

Элементы массива считаются, начиная с 0.

Переменные с плавающей точкой

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

$а = 1.552;
$b = 0.964;
$sales_tax = 0.875;

Целые переменные

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

$а = 15;
$b = -521;

Cтpoковые переменные

Все символы, которые заключены в парные кавычки ("), называются строкой:

$а = "Это строка";
$b = "<р> Эта книга очень xopomaя!";

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

$num =57;                                                                 // целая
$my_string = "Я прочел эту книгу $num раз!"; // строка

Когда сценарий будет запущен, в переменной $my_string будет содержаться "Я прочел эту книгу 57 раз!".

Переменные из HTML-форм

В зависимости от метода вашей HTML-формы (GET или POST), переменные могут быть частью глобальных ассоциативных массивов $HTTP_POST_VARS или $HTTP_GET_VARS. Имена полей ввода становятся именами переменных. Например, следующее поле ввода представлено переменной $first_name:

<input type="text" name="first_name" size="20">

Если методом этой формы был POST, то на эту переменную можно также сослаться как $HTTP_POST_VARS["first_name"]. Если метод был GET, вы можете также использовать $HTTP_GET_VARS["first_name"].

Переменные из файлов "cookie"

Как и переменные из форм, переменные из файлов "cookie" содержатся в глобальном ассоциативном массиве с именем $HTTP_COOKIE_VARS. Если вы установили файл "cookie" с именем "user" и значением "Ivan Ivanov", как показано в следующей строке:

SetCookie ("user", "Ivan Ivanov", time( )+3600);

то переменная с именем $user будет помещена в массив $HTTP_COOKIE_VARS со значением "Ivan Ivanov". Вы можете сослаться на переменную $user как $HTTP_COOKIE_VARS ['user'], чтобы получить это значение.

Переменные оружения

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

По умолчанию переменные окружения доступны в сценариях РНР как $VAR_NAME. Однако, чтобы быть абсолютно уверенным в том, что вы прочли правильное значение, вы можете использовать функцию getenv( ), чтобы присвоить значение своей собственной переменной. Далее приведены несколько часто используемых переменных окружения.

Переменная REMOTE_ADDR хранит IP-адрес компьютера, сделавшего запрос. Например:

<?
          $remote_addr = getenv("REMOTE_ADDR");
          echo "Ваш IP адрес $remote_addr.";
?>

Переменная HTTP_USER_AGENT хранит значение типа браузера, версии браузера, языковую кодировку и платформу. Например,

<?
          $browser_type = getenv("HTTP_USER_AGENT");
          echo "Вы используете $browser_type.";
?>

Чтобы получить список переменных окружения и их описание, вы можете посетить страницу в Интернете по адресу: http://hoohoo.ncsa.uiuc.edu/cgi/env.html.

Операторы

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

Арифметические операторы

Арифметические операторы очень похожи на привычные нам математические и приведены в следующей таблице:

Оператор
Пример
Действие
+
$b = $a + 3
Сложение значений
-
$b = $a - 3
Вычитание значений
*
$b = $a * 3
Умножение значений
/
$b = $a / 3
Деление значений
%
$b = $a % 3
Получение остатка от целочисленного деления первого значения на второе

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

Знак = является основным оператором присваивания:

$а =124;      //значением $а является 124

Другие операторы присваивания перечислены в таблице:

Операторы присвания
Оператор
Пример
Действие
+=
$а += 3;
Изменяет текущее значение переменной в сторону увеличения на значение, находящееся справа от знака оператора.
-=
$а -= 3;
Изменяет текущее значение переменной в сторону уменьшения на значение, находящееся справа от знака оператора.
.=

$а .= "строка";

Соединяет (добавляет к) текущее значение со значением, находящимся справа от знака оператора.

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

Операторы сравнения используются для сравнения двух значений. Результатом оператора сравнения может быть значение "истина" или "ложь". В таблице, приведенной ниже, перечислены различные типы операторов сравнения.

Операторы сравнения
Оператор
Определение
==
Равно
!=
Не равно
>
Больше чем
<
Меньше чем
>=
Больше или равно
<=
Меньше или рано

Операторы увеличения и уменьшения

Операторы увеличения и уменьшения увеличивают или уменьшают значения переменных.

Операторы увеличения и уменьшения
Оператор
Пример
Описание
Увеличение до
++$а
Увеличивает на 1 и возвращает $а
Увеличение после
$а++
Возвращает $а и затем увеличивает $а на 1
Уменьшение до
--$а
Уменьшает на 1 и возвращает $а
Уменьшение после
$а--
Возвращает $а и затем уменьшает $а на 1

Логические операторы

Логические операторы позволяют вашему сценарию проверять условия и в контекcт ваших операторов if. . .else или while выполнять определенный код, основанный условии истинности или ложности того или иного логического условия.

Логичесие операторы

Оператор

Пример

Результат
!
!$а
Истина, если $а не истина
&&
$а && $b
Истина, если и $а и $b истинны
II
$а I I $b
Истина, если или $а или $b истина

Управляющие cтpyктypы

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

.

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

if...elseif...else

Конструкция if. . . elseif. . .else (условный оператор) выполняет следующий за ним оператор или группу операторов в фигурных скобках в зависимости от значения проверяемого выражения. В следующем примере условный оператор содержит выражение, в котором проверяется равенство $а и 10.

if ($а =="10") {
           //выполнение некоторого кода
}

Если условный оператор обнаружит, что переменная равна числу 10 (т.е. условие истинно), то операторы в фигурных скобках будут выполнены. Если будет обнаружено, что не равно числу 10 (т.е. результат сравнения ложь), код в фигурных скобках будет пропущен и выполнение программы продолжится.

Чтобы можно было выполнить альтернативную группу операторов, если не равно 10, к условному оператору добавляется ключевое слово else для выполнения кода, если результатом сравнения является ложь:

if ($a == "10") {
          echo "а равно 10";
} else {
          echo "а не равно 10";
}

Ключевое слово elseif (или два слова "else if") может быть добавлено к условному оператору, чтобы оценить альтернативное выражение до начала заключительной части условного оператора else. Например, следующий условный оператор сначала проверяет равенство и 10. Если условие ложь, то оператор elseif оценивает альтернативное условие. Если оно окажется истиной, то будет выполнен код в фигурных скобках, если ложно, то программа выполнит заключительную часть else условного оператора:

if ($а == "10") {
          echo "а равно 10"; )
elseif ($b == "8") {
          echo "b равно 8";
} else {
          echo "а не равно 10 и b не равно 8.";
}

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

Оператор цикла while

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

Например, в следующем ниже цикле while значение переменной будет печататься на экране и увеличиваться на 1 до тех пор, пока значение меньше или равно 3:

$а=0 //установили начальную точку
while ($а <= "3") {
          echo "а равно $а<br>";
          $а++;
}

Оператор цикла for

Похожий на while, цикл for оценивает условное выражение в начале каждого цикла. Ниже приведен синтаксис цикла for:

for (выр1; выр2; вырЗ) {
          //выполняемый код
}

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

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

for ($a=0; $а<=3; $а++) {
          echo "а равно $а";
}

Встроенные функции

Все перечисленные далее функции являются частью многочисленных функции, которые реализованы в языке РНР. Это лишь небольшое количество наиболее часто используе-мых функций РНР. В зависимости от того, как вы собираетесь использовать РНР, этот набор функций может оказаться недостаточным, но вы можете посетить страницу, расположенную в Интернете по адресу: http://www.php.net/manual/ и ознакомиться с руководством по РНР, чтобы узнать, какие еще функции есть в языке.

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

Для работы с массивами существует множество функции РНР. Только некоторые из них упомянуты здесь - те которые могут дать основные знания о работе с массивами.

аггау( )

Функция array ( ) позволяет назначить значения элементам массива. Синтаксис функции array ( ) следующий:

$array_name = array ("значение1" , "значение2", " значение 3" ,...);

array_push( )

Функция array_push( ) позволяет добавлять один или несколько элементов в конец существующего массива. Синтаксис функции array_рush ( ) следующий:

array_push ($array_name, "элемент1", "элемент2", ...) ;

аrrау_рор( )

Функция array_pop ( ) позволяет избавиться от последнего элемента в существующем массиве. Синтаксис функции аrrау_рор( ) следующий:

array_pop($array_name);

array_unshift()

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

array_ unshift ($array_name, "элемент1", "элемент2", ...) ;

array_shift()

Функция array_shift( ) позволяет избавиться от первого элемента существующего массива. Синтаксис функции array_shift( ) следующий:

array_shift ($array_name);

array_merge( )

Функция array_merge ( ) позволяет объединить два и более массивов. Синтаксис функции array_merge ( ) следующий:

array_merge($arrayl, $array2, $аггау3, ...) ;

array_keys()

Функция array_keys ( ) возвращает массив из всех ключевых имен в существующем массиве. Синтаксис
функции array_keys ( ) следующий:

array_keys($array_name);

array_values()

Функция array_values ( ) возвращает массив из всех значений в существующем массиве. Синтаксис функции array_values( ) следующий:

array_values ($array_name);

count()

Функция count ( ) подсчитывает число элементов в переменной. Она обычно используется для подсчета количества элементов в массиве, потому что переменная, которая не является массивом, имеет только один элемент - саму себя. В следующем примере переменная получает значение, равное числу элементов в массиве $colors:

$а = count($colors);

Если $colors имеет значения "синий", "черный", "красный" и "зеленый", то значение будет равно 4.

each( ) и list( )

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

each(arrayname);
list ("значение1", "значение2", "значение3", ...) ;

Например, когда вы передаете HTML-форму с помощью метода GET каждая пара ключ/значение помещается в глобальную переменную $HTTP_GET_VARS. Если поля ввода вашей формы называются first_name и last_name, и пользователь ввел значения Ivan и Ivanov, то парами ключ/значение будут first_name/lvan и last_name/lvanov. В массиве $HTTP_GET_VARS эти переменные будут представлены следующим образом:

$HTTP_GET_VARS["first_name"]         //значение равно "Ivan"
$НТТР GET VARS["last name"]            //значение равно "Ivanov"

Вы можете использовать функции each( ) и list( ) для того, чтобы продвигаться массиву $HTTP_GET_VARS, печатая ключ и его значение для каждого элемент массива.

while (list($key, $val) = each($HTTP_GET_VAR)) {
          echo "$key имеет значение $val
";
}

reset( )

функция reset( ) перемещает указатель в начало массива. Синтаксис функции reset( ) следующий:

reset($array_name);

shuffle( )

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

shuffle ($array_name);

sizeof( )

Функция sizeof( ) подсчитывает количество элементов в массиве. В следующем примере переменная имеет значение, равное числу элементов массива $colors:

$а = sizeof($colors);

Если $colors имеет значения "синий", "черный", "красный" и "зеленый", то значение будет равно 4.

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

Существует множество функций РНР для подключения и выполнения запросов к серверу MySQL. Далее следует описание некоторых основных функций и их синтаксис. Обратитесь на страницу в Интернете по адресу: http://www.php.net/manual/, чтобы получить полный список функций с их описанием.

mysql_connect( )

Эта функция открывает соединение с MySQL. Она требует указания имени сервера, имени пользователя и пароля.

$connection = mysql_connect("имя_сервера", "имя_пользователя", "пароль") ;

mysql_create_db( )

Эта функция создает базу данных на сервере MySQL. Она требует подготовленного соединения.

mysql create db ("имя_базы_данных") ;

mysql_drop_db( )

Эта функция удаляет базу данных с сервера MySQL. Она требует подготовленного подключения.

mysql_dгор_db("имя_базы_данных");

mysql_select_db()

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

mysql_select_db("имя_базы_данных", $connection);

mysql_query()

Эта функция выполняет запрос SQL. Она требует подготовленного подключения.

$sql result = mysql_query("SELECT * FROM SOMETABLE", $connection);

mysql_error()

Эта функция возвращает сообщение об ошибке, когда что-то не так с вашим подключением или запросом. Она обычно используется в контексте функции die ( ), как показано ниже:

$sql_result = mysql_query("SELECT * FROM SOMETABLE", $connection) or die (mysql_error());

mysql_fetch_array()

Эта функция автоматически помещает строку из результата запроса SQL в массив.

$row = mysql_fetch_array($sql_result);

mysql_num_rows()

Эта функция возвращает количество строк в полученном результате.

$num_free_rows($sql_result);

mysql_free_result()

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

$num_free_result($sql_result);

mysql_close()

Эта функция явно закрывает подключение к базе данных.

mysql_close($connection);

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

Основные функции даты и времени РНР позволят вам легко устанавливать формат времени для использования в запросах к базам данных и в календарных функциях. А также просто для печати даты, например, на бланке заказа.

date( )

Функция date( ) возвращает текущие дату и время сервера, отформатированные в соответствии с данным набором параметров. Синтаксис функции следующий:

date(format, [timestamp]);

Если параметр timestamp не задан, будет использоваться его текущее значение. В таблице приведены доступные форматы времени.

Форматы функции date ( )

Символ

Смысл

а

Выводит "am" или "pm"

А

Выводит "AM" или "РМ"

h

Выводит время в 12-часовом формате (от 01 до 12)

Н

Выводит время в 24-часовом формате (от 00 до 23)

g

Выводит время в 12-часовом формате (от 1 до 12) без 0 в первом разряде

G

Выводит время в 24-часовом формате (от 0 до 23) без 0 в первом разряде

1

Минуты в формате (от 00 до 59)

s

Секунды в формате (от 00 до 59)

Z

Смещение временной зоны в секундах (от -43200 до 43200)

и

Количество секунд, прошедшее с 1 января 1970 г 00:00:00 GMT

d

Две цифры дня месяца (от 01 до 3 1)

j

Две цифры дня месяца (от 1 до 3 1) без 0 в первом разряде

d

День недели в кратком текстовом виде (от Моп до Sun)

1

День недели в полном текстовом виде (от Monday до Sunday)

w

День недели в цифровом виде от Sunday до Saturday (от 0 до 6)

F

Месяц в полном текстовом формате (от January до December)

m

Месяц в цифровом формате (от 01 до 12)

n

Месяц в цифровом формате (от 1 до 12) без 0 в первом разряде

M

Месяц в кратком текстовом формате (от Jan до Dec)

Y

Четыре цифры года (2001)

У

Две цифры года (01)

z

День года (от 0 до 365)

t

Количество дней (от 28 до 31)

s

Английские пордковые суффиксы (th, nd, st)

checkdate ( )

Функция checkdate ( ) проверяет правильность полученной даты. Успешная проверка означает, что год находится в диапазоне между 0 и 32767, месяц - между 1 и 12, и день в диапазоне числа дней полученного месяца. Синтаксис функции следующий:

checkdate(месяц, число, год);

mktime ( )

Функция mktime ( ) возвращает дату и время в формате UNIX, как длинное целое (в секундах от 00:00:00 1 Января 1970 г. GMT) для запрошенной даты. Таким образом, основным использованием mktime ( ) является форматирование даты для использования в математических функциях и для проверки правильности даты. Синтаксис функции следующий:

mktime(час, минуты, секунды, месяц, число, год);

time ( ) и microtime ( )

Функция time ( ) возвращает текущее системное время, измерянное в секундах, начиная с 00:00:00 1 Января 1970 г. GMT. Формат функции следующий:

time( );

Вы получите результат, похожий на 9589500466.

Использование функции microtime( ) добавляет подсчет микросекунд; так, вместо результата, похожего на 9589500466, вы получите результат, похожий на 0.93121600958950466 точного момента запроса времени.

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

Встроенные функции для работы с файловой системой могут быть очень полезным инструментом или оружием, если использовать их неправильно. Будьте очень внимательны, когда используете функции для работы с файловой системой, особенно если РНР сконфигурирован для главного пользователя (root) или пользователя с широкими права-ми. Например, использование сценария РНР, который формирует команду rm-R из главного каталога вашей файловой системы, может привести к очень неприятным последствиям.

chmod( ), chgrp( ) и chown( )

Так же как и одноименные команды операционной системы, функции chmod( ), chgrp( ) и chown( ) изменяют права доступа, группу и принадлежность каталога или файла. Синтаксис команд следующий:

chmod("имя_файла", режим);
chgrp("имя_файла", новая_группа);
chown("имя_файла", новый_собственник);

Чтобы изменить права доступа, группу, или владельца, пользователи РНР сами должны обладать необходимыми полномочиями.

сору( )

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

сору("файл_источник", "получатель");

Пользователь РНР должен иметь разрешение записывать в каталог-получатель, иначе функция сору( ) окончится неудачей.

fopen( )

Функция fopen( ) открывает указанный файл или URL для чтения и/или для записи. Формат функции следующий:

fopen("имя_файла", режим);

Чтобы открыть URL, нужно использовать http:// или ftp:// в начале строки имени файла. Вы можете открыть URL только для чтения, без возможности записи.

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

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

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

fread()

Функция fread( ) используется для чтения определенного числа байт из открытого файла, начиная с позиции указателя. Синтаксис функции следующий:

frеаd(указатель_файла, длина);

fputs( )

Функция fputs( ) используется для записи в открытый файл, начиная с позиции указателя. Синтаксис функции следующий:

fputs(указатель_файла, содержимое, [длина]);

Файл должен быть открыт в режиме записи. Параметр длины не обязателен. Если он не указан, то все, указанное в содержимом, будет записано в файл.

fclose( )

Функция используется для закрытия открытого файла. Синтаксис функции следующий:

fclose(укаэатель_файла);

mkdir( )

Так же, как и DOS-команда mkdir, функция mkdir( ) создает новый каталог (папку) в файловой системе. Синтаксис функции следующий:

mkdir("полный_путь", режим);

Пользователи РНР должны иметь разрешение записи в указанный каталог

rename( )

Функция rename( ) и присваивает новое имя существующему файлу. Синтаксис функции следующий:

rename("старое_имя", "новое имя");

Пользователи РНР должны иметь разрешение на изменение файла.

rmdir( )

Так же, как и DOS-команда rmdir, функция rmdir() удаляет каталог (папку) из файловой системы. Синтаксис функции следующий:

rmdir(полный_путь);

Пользователи РНР должны иметь разрешение записи в указанный каталог.

symlink()

Функция создает символическую ссылку из существующего в файловой системе фай. или каталога на указанное имя ссылки. Синтаксис функции следующий:

symlink("имя_получателя", "имя_ссылки");

Пользователи РНР должны иметь разрешение записи в указанный каталог.

unlink( )

Функция удаляет файл из файловой системы. Формат функции следующий:

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

Пользователи РНР должны иметь разрешение записи в указанный файл.

Функции HTTP

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

header( )

Функция header( ) выводит строку заголовка HTTP, например, для переадресащ страницы (перенаправления). Этот вывод должен быть осуществлен до того, как друг Данные будут посланы браузеру, включая теги HTML.

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

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

header("Location: http://www.newlocation.com");
exit ;

Следующий за функцией header( ) оператор содержит команду exit (выход). Это обеспечивает выход из программы.

setcookie( )

Функция setcookie( ) посылает файл "cookie" пользователю. Файл "cookie" должен быть послан до любого заголовка и прочей информации, которая отправляется Web-браузеру. Синтаксис функции следующий:

setcookie("HMH", "значение", "время_действия", "путь", "домен", "безопасность") ;

Например, следующая строка отправит файл "cookie" с именем usermame и значением joe, который будет действовать один час во всех каталогах домена testcompany.com:

setcookie("username", "joe", "time( ) +3600, "/", ".testcompany.com");

Почтовые функции

Почтовые функции РНР создают простой и удобный интерфейс между вашей HTML-формой и вашей серверной программой отправки почты.

Если ваш сервер имеет доступ к шлюзу отправки почты или SMNP, то функция mail( ) отправит почту указанному адресату. Синтаксис функции следующий:

mail("адресат", "тема", "сообщение", "заголовок_письма");

Например, следующая строка пошлет почтовое сообщение по адресу ivan@ivanov.com с темой "Я посылаю почту!" и сообщением "РНР - это здорово!":

mail("ivan@ivanov.com", "Я посылаю почту!", "РНР - это здорово!", "From: ваш_еmail@вашсервер.сот\n");

Строка "From:" является частью дополнительных заголовков письма.

Математические функции

Встроенные математические функции РНР очень важны. В дополнение ко всем функциям, в РНР определено значение числа Пи (3.14159265358979323846) как константа (М_РI)

cell( )

Функция cell( ) округляет дробные числа до ближайшего большего целого. Синтаксис функции следующий:

cell(число);

decbin( ) и bindec( )

Функции decbin( ) и bindec( ) преобразуют десятичные числа в двоичные и двоичные в десятичные соответственно. Синтаксис функций следующий:

decbin(десятичное_число); bindec(двоичное_число);

dechex( ) и hexdec( )

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

dechex(десятичное_число); hexdec(шестнадцатеричное_число);

decoct( ) и octdec( )

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

decoct(десятичное_число); octdec(восьмеричное_число);

floor( )

Функция floor( ) округляет дробные числа до ближайшего меньшего целого. Синтаксис функции следующий:

floor(число);

number_format( )

Функция number_format( ) выводит заданное число в указанном формате. Синтаксис функции следующий:

number_format("число", "количество_ знаков_десятых_долей", "разделитель_десятых_долей", "разделитель_тысяч");

Например, чтобы получить запись числа 12156688 с двумя десятичными знаками и запятой, отделяющей группы тысяч, используется следующая запись:

echo number_format("12156688", "2", ".", ",");

Результатом будет число, записанное в виде: 12,156,688.00.

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

pow( )

Функция pow( ) возводит указанное число в степень. Синтаксис функции следующий:

pow(число, степень);

rand( )

Функция rand( ) генерирует случайное значение из указанного диапазона чисел. Синтаксис функции следующий:

rand(минимальное_число, максимальное_число);

round( )

Функция round( ) округляет указанное число до следующего большего или следующего меньшего целого числа. Синтаксис функции следующий:

round(число);

sqrt( )

Функция sqrt( ) вычисляет квадратный корень из указанного числа. Синтаксис функции следующий:

sqrt(число);

srand( )

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

srand(начальное_значение);

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

srand((double)microtime( )*1000000) ;

Прочие функции

Функции die( ) и exit( ) обеспечивают управление выполнением вашего сценария, предлагая прервать сценарий для программирования обработки ошибок. Эти и другие функции, описанные здесь, мы отнесли к категории "прочие".

die( )

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

die("сообщение");

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

$connection = mysql_connect("имя_сервера", "имя_пользователя", "пароль") or die("Невозможно подключиться к базе данных.");

exit

Оператор exit прерывает выполнение текущего сценария.

sleep( ) и usleep( )

Функции sleep( ) и usleep( ) устанавливают паузу или задержку в работе сценария. Синтаксис функций следующий:

sleep(число_секунд); usleep(число_микросекунд);

Разница между функциями в том, что длительность паузы в функции sleep( ) задается в секундах, а в функции usleep( ) - в микросекундах.

uniqid( )

Эта функция генерирует уникальный идентификатор с префиксом, если это нужно. Синтаксис функции следующий:

uniqid("префикс");

Например, чтобы получить идентификационный номер с префиксом "phpuser", вы можете использовать строки:

$id = uniqid("phpuser");
echo "$id";

Вы получите значение, похожее на это:

phpuser38b320a6b5482.

Если вы используете такие строки:

$id = md5(uniqid(rand( )));
echo "id";

то получите идентификационный номер, похожий на такой: 999d8971461 bedfc7caadcab33e65866.

Функции управления работой программ

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

ехес( )

Эта функция выполняет внешнюю программу. Синтаксис функции следующий:

exec(команда, [массив], [возвращаемая_переменная]);

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

Например, вы можете использовать следующий код для выполнения программы ping и вывода всех строк результата:

$command ="ping -c5 www.thicbook.com";
exec($command, $result, $rval);
for ($i=0; $i < sixeof($result); $i++) {
          echo "$result [$i]<br>";
}

passthru( )

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

passthu(команда, возвращаемая_переменная);

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

system( )

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

system(команда, [возвращаемая_переменная]);

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

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

$command ="ping -c5 www.thicbook.com"; system ($command);

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

ereg_replace( ) и eregi_replace( )

функции ereg_replace( ) и eregi_replace( ) заменяют содержащиеся в строке значения на новое значение и возвращают новую строку. Функция ereg_replace( ) чувствительна к регистру символов, а функция eregi_replace( ) - не чувствительна. Синтаксис функций следующий:

ereg_replace("образец", "замена", "строка");
eregi_replace("образец", "замена", "строка");

Например, если в строке: "Я люблю программировать на ASP." нужно заменить "ASP" на "РНР", то можно использовать следующий код:

$old_string = "Я люблю программировать на ASP.";
$new_string = ereg_replace("ASP", "PHP", $old_string);
echo $new_string;

Если "ASP" набрано в разных регистрах, например, как "aSp", то нужно использовать функцию eregi_replace( ):

$old_string = "Я люблю программировать на aSp.";
$new_string = eregi_replace("ASP", "PHP", $old_string);
echo $new_string;

split( )

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

split(образец, строка, [предел]);

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

Функции управления сессией

Управление сессией - это способ сохранять данные, пока пользователь находится на вашем Web-сайте. Данные могут быть переменными или целыми объектами. Следующие несколько простых функций - всего лишь небольшая часть функций РНР, связанных с сессией; с их полным списком вы можете ознакомиться на странице, расположенной по адресу: http://www.php.net/manual/.

session_start( )

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

session start( );

session_register( )

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

session_register("имя_переменной");

Например, чтобы зарегистрировать переменную $username, используйте:

session_register("username");

session_unregister( )

Функция session_unregister( ) отменяет регистрацию переменной, или "забывает" зарегистрированную переменную во время текущей сессии. Синтаксис функции следующий:

session_unregister("имя_переменной");

Например, чтобы "забыть" о глобальной переменной сессии $username, нужно использовать:

session_unregister("username");

session_destroy( )

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

session_destroy( ) ;

Cmpoкoвые функции

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

addslashes( ) и stripslashes( )

Функции addslashes( ) и stripslashes( ) очень важны при записи и извлечении информации из базы данных. Зачастую текст, помещаемый в базу данных, будет содержать специальные символы (одиночные кавычки, двойные кавычки, обратные косые линии и т.п.), которые должны маскироваться (символом \) перед помещением в базу данных. Функция addslashes ( ) как раз это и делает. Синтаксис функции следующий:

addslashes(строка);

А функция stripslashes( ) возвращает строку с удаленными символами маскирования (\). Синтаксис функции следующий:

stripslashes(строка);

chop( ), ltrim( ) и trim ( )

Все эти три функции удаляют из строки излишние пробелы. Функция chop( ) удаляет пробелы в конце строки, функция ltrim( ) удаляет пробелы в начале строки, а функция trim ( ) удаляет пробелы и в начале, и в конце строки. Синтаксис функций следующий:

chop(строка);
ltrim(строка);
trim(строка);

echo( )

Функция echo( ) печатает значения своих аргументов. Синтаксис функции следующий:

echo (параметр1, параметр2, ...) ;

Например,

echo "Я использую РНР.";           //выведет результат:Я использую РНР.
echo 2+6;                                          //выведет результат: 8

Когда используется echo, скобки не обязательны,.

explode( ) и implode( )

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

explode("разделитель", "строка");

Например, следующий код берет строку с именем $colors_list, содержащую отделенный запятыми список цветов, и помещает каждый цвет в массив с именем $my_colors:

$colors_list = "blue,black,red,green,yellow,orange";
$my_colors = explode(",", $colors_list);

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

implode("разделитель", "строка");

Например, с помощью следующего кода вы можете преобразовать массив $my_colors в строку $colors_list:

$colors_list = implode(",", "$my_colors ") ;

htmlspecialchars( ) и htmlentities( )

Функции htmlspecialchars( ) и htmientities( ) преобразуют специальные символы и HTML-вставки внутри строки в их приемлемое представление. Функция htmlspecialchars( ) преобразует только знак < (преобразуется в ), знак > (преобразуется в ), двойные кавычки (") (преобразуется в ) и знак &(преобразуется в ).

Функция htmientities ( ) преобразует символы в кодировке ISO-8859-1 в правильные HTML-коды. Синтаксис функций следующий:

htmlspecialchars(строка);
htmlentities(строка);

nl2br()

Функция nl2bг( ) заменяет все переводы строки ASCII на HTML-обозначение конца строки (<BR>). Синтаксис функции следующий:

nl2br(строка);

sprintf( )

Функция sprintf ( ) возвращает строку, отформатированную в соответствии с набором директив, список которых приведен в таблице. Синтаксис функции следующий:

sprintf(директива, строка);

Директивы функции sprintf ( ) форматирования строки

Директива

Результат

%
Добавляет знак процента
b
Строка рассматривается как целое число и форматируется как двоичное число
с
Строка рассматривается как целое число и форматируется как символы ASCII
d
Строка рассматривается как целое число и форматируется как десятичное число
f
Строка рассматривается как число double и форматируется как число с плавающей точкой
о
Строка рассматривается как целое число и форматируется как восьмеричное число
s
Строка рассматривается как строка и форматируется как строка
х
Строка рассматривается как целое и форматируется как шестна-дцатеричное число (с буквами в нижнем регистре)
Х
Строка рассматривается как целое и форматируется как шестна-дцатеричное число (с буквами в верхнем регистре)

strlen( )

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

strlen(строка);

strtolower( )

Эта функция переводит все символы строки в нижний регистр. Синтаксис функции следующий:

strtolower(строка);

strtoupper( )

Эта функция переводит все символы строки в верхний регистр. Синтаксис функции следующий:

strtoupper(строка);

substr( )

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

substr(строка, стартовая_поэиция, [длинна]);

Если начальная позиция является положительным числом, то начальная позиция отсчитывается от начала строки. Если начальная позиция — отрицательное число, то начальна позиция отсчитывается от конца строки. Точно так же, если в качестве параметра длина используется положительное число, то длина отсчитывается от начала строки. Если качестве параметра длины используется отрицательное число, то длина отсчитываетс от конца строки.

Например:

$new_srtring = substr("PHP - это здорово!", 1);            //возвращает "HI
                                                                                             //- это здорово!

$new_srtring = substr("PHP - это здорово!", О, 7);        //возвращает "Р*
                                                                                              //- э"

$new_srtring = substr("PHP - это здорово!", -1);            //возвращает "!'

$new_srtring = substr("PHP - это здорово!", -6, 5);         //возвращает
                                                                                               //"орово"

ucfirst( )

Эта функция переводит первый символ в строке в верхний регистр. Синтаксис функции следующий:

ucfirst(строка);

ucwords( )

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

ucwords(строка);

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

Две основные функции для работы с переменными isset( ) и unset( ) помогут вам управлять вашими переменными в пределах вашего приложения. Функция isset( ) определяет существование переменной. Функция unset( ) удаляет названную переменную. Синтаксис функций следующий:

isset(имя_переменной);
unset(имя_переменной);

Функция isset( ) возвращает значение "истина", если переменная существует, и значение "ложь", если переменная не существует.



Hosted by uCoz