50823

Скриптовый язык программирования PHP

Лабораторная работа

Информатика, кибернетика и программирование

Он может также использоваться для создания изображений и манипуляций с файлами изображений различных форматов включая gif png jpg wbmp и xpm. Обратите внимание что здесь предполагается использование имени...

Русский

2014-01-31

298 KB

7 чел.

Лабораторная работа №4

Скриптовый язык программирования PHP

Цель работы: ознакомиться с основными возможностями языка PHP, синтаксисом, основными операциями, получить практические навыки программирования.

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

Для работы скрипта не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Простейшая программа Hello world на PHP выглядит следующим образом:

<?php

 echo 'Hello, world!'; 

?>

Комментарии

  •  Однострочные //, #
  •  Многострочные /* … */ 

Типы данных

PHP поддерживает 8 примитивных типов.

4 скалярных типа:

  •  boolean
  •  integer
  •  число с плавающей точкой (float)
  •  string

Два составных типа:

  •  array
  •  object

И, наконец два специальных типа:

  •  resource
  •  NULL

Переменные

Представлены знаком dollar ($) с последующим именем переменной. Имя переменной чувствительно к регистру символов. Правильное имя переменной начинается с буквы или символа подчёркивания, с последующими (в любом количестве) буквами, числами или символами подчёркивания.

Предопределённые переменные

Серверные переменные: $_SERVER

$_SERVER это массив, содержащий такую информацию, как headers/шапки, paths/пути и размещение скриптов. Вхождения в этом массиве создаются web-сервером. Нет гарантии, что каждый web-сервер будет предоставлять что-нибудь из этого; сервер может опустить позиции, указанные здесь, или добавить новые, здесь не указанные.

Переменные окружения: $_ENV

Эти переменные импортируются в глобальное пространство имён PHP из окружения, в котором запущен разборщик (интерпретатор) PHP. Многие предоставляются оболочкой, под которой PHP работает, а разные системы запускают, очевидно, разные виды оболочек, поэтому создать какой-то определённый список невозможно.

HTTP-Куки: $_COOKIE

Ассоциативный массив переменных, передаваемых текущему скрипту через HTTP cookies. Автоматически глобальны в любой области видимости.

HTTP GET-Переменные: $_GET

Ассоциативный массив переменных, передаваемых текущему скрипту через метод HTTP GET. Автоматически глобальны в любой области видимости.

HTTP POST-Переменные: $_POST

Ассоциативный массив переменных, передаваемых текущему скрипту через метод HTTP POST. Автоматически глобальны в любой области видимости.

Переменные HTTP-загрузки файлов: $_FILES

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

Переменные запроса: $_REQUEST

Ассоциативный массив, состоящий из содержимого $_GET, $_POST, $_COOKIE и $_FILES.

Переменные сессии: $_SESSION

Ассоциативный массив, содержащий переменные сессии, доступные текущему скрипту.

Глобальные переменные: $GLOBALS

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

Область видимости переменной

Область видимости переменной это контекст, в котором она определяется. Как правило все переменные PHP имеют единую область видимости. Эта единая область видимости включает также include и необходимые файлы.

В PHP существуют глобальные (доступны через global и $_CLOBALS), локальные и статические переменные.

Переменные переменные

Иногда удобно иметь переменные имена переменных. То есть имена переменных, которые могут устанавливаться и использоваться динамически. Нормальная переменная устанавливается примерно таким оператором:

$a = "hello";

$$a = "world";

После этого в РНР определены две переменные: $a с содержимым "hello" и $hello с содержимым "world". Следовательно, оператор

Константы в PHP

Константой называется именованная величина, которая не изменяется в процессе выполнения программы.

В РНР константы определяются функцией define(). Эта функция имеет следующий формат:

define ($name, $value, $case_sen), где:

$name - имя константы;
$value - значение константы;
$case_sen - необязательный параметр логического типа,
указывающий, следует ли учитывать регистр букв (true) или нет (false).

Пример определения и использования констант в PHP:

<?php
define("pi",3.14,true);
echo pi;
// Выводит 3.14
?> 

Проверка существования констант

Для проверки существования константы можно использовать функцию defined(). Данная функция возвращает true, если константа объявлена. Приведем пример:

<?php
// Объявляем константу pi
define("pi",3.14,true);
if (defined("pi")==true) echo "Константа pi объявлена!";
// Скрипт выведет 'Константа pi объявлена!'
?>

Операции

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

Пример

Название

Результат

$a + $b

Сложение

Сумма $a и $b.

$a - $b

Вычитание

Разность $a и $b.

$a * $b

Умножение

Произведение $a и $b.

$a / $b

Деление

Частное от деления $a на $b.

$a % $b

Modulus

Целочисленный остаток от деления $a на $b.

  •  Операции присвоения (=)
  •  Битовые операции

Пример

Имя

Результат

$a & $b

And

Устанавливаются биты, которые установлены и в $a, и в $b.

$a | $b

Or

Устанавливаются биты, которые установлены в $a или в $b.

$a ^ $b

Xor

Устанавливаются биты, которые установлены в $a или $b, но не в обоих.

~ $a

Not

Устанавливаются биты, которые в $a не установлены, и наоборот.

$a << $b

Сдвиг влево

Сдвигает биты переменной $a на $b шагов влево (каждый шаг/смещение означает "умножить на 2").

$a >> $b

Сдвиг вправо

Сдвигает биты переменной $a на $b шагов вправо (каждый шаг/смещение означает "разделить на 2").

  •  Операции сравнения

Пример

Название

Результат

$a == $b

равно

TRUE, если $a равно $b.

$a === $b

идентично

TRUE, если $a равно $b и они одного типа. (только в PHP 4)

$a != $b

не равно

TRUE, если $a не равно $b.

$a <> $b

не равно

TRUE, если $a не равно $b.

$a !== $b

не идентично

TRUE, если $a не равно $b или они разных типов. (только в PHP 4)

$a < $b

меньше

TRUE, если $a строго меньше $b.

$a > $b

больше

TRUE, если $a строго больше $b.

$a <= $b

меньше или равно

TRUE, если $a меньше или равно $b.

$a >= $b

больше или равно

TRUE, если $a больше или равно $b.

  •  Операции управления ошибками (@)
  •  Операции выполнения (``)
  •  Операции инкремента/декремента (++/--)
  •  Логические операции

Пример

Имя

Результат

$a and $b

And

TRUE, если и $a, и $b TRUE.

$a or $b

Or

TRUE, если $a или $b TRUE.

$a xor $b

Xor

TRUE, если $a или $b TRUE, но не оба.

! $a

Not

TRUE, если $a не TRUE.

$a && $b

And

TRUE, если и $a, и $b TRUE.

$a || $b

Or

TRUE, если $a или$b TRUE.

  •  Строковые операции (. и .=)

Приоритет выполнения операций

Операция

,

or

xor

and

print

= += -= *= /= .= %= &= |= ^= ~= <<= >>=

? :

||

&&

|

^

&

== != === !==

< <= > >=

<< >>

+ - .

* / %

! ~ ++ -- (int) (float) (string) (array) (object) @

[

new

Условный оператор

if (условие) {

 операторы

}

else

{

 операторы

}

Циклы

1. while (expr)

{

statement

}

2. do {

  statement

} while (expr);

3. for (expr1; expr2; expr3) { statement }

4. foreach(array_expression as $key => $value) statement

Оператор break

заканчивает выполнение текущей структуры (цикла) for, foreach, while, do..while или switch.

Оператор continue

continue используется в циклических структурах для пропуска оставшейся части текущей итерации цикла и продолжения выполнения с начала следующей итерации (прохода) цикла.

Оператор switch

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

switch (expr) {

   case equal1:

       statement

       break;

   case equal2:

       statement

       break;

   case equal3:

       statement

       break;

}

Оператор return

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

Тернарная операция

$var = $expr ? statement1 : statement2;

Операции подключения файлов

Данные операции включают файл в текущий и вычисляют его

  •  require()
  •  include()
  •  require_once()
  •  include_once()

Функции

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

function foo ($arg_1, $arg_2, ..., $arg_n)

{

   echo "Пример \n";

   return $retval;

}

Передача аргументов по ссылке

function foo (&$arg1)

{

 return;

}

Значения аргументов по умолчанию

function foo ($arg1 = "default_value")

{

 return;

}

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

Функции переменных

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

<?php

function foo()

{

   echo "In foo()<br>\n";

}

function bar($arg = '')

{

   echo "In bar(); argument was '$arg'.<br>\n";

}

$func = 'foo';

$func();

$func = 'bar';

$func('test');

?>

Классы и объекты

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

<?php

class className

{

   var $property;  // свойства класса

 // метод method1

   function method1 ($arg1, $arg2)

   {

       $this-> property [$arg1] = $arg2;

   }

  

   // метод method2

 

   function method2 ()

   {

       return false;

   }

}

?>

Создание класса на основе уже имеющегося:

class className1 extends className

{

}

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

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

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

class A

{

   function example()

   {

       echo "I am the original function A::example().<br>\n";

   }

}

class B extends A

{

   function example()

   {

       echo "I am the redefined function B::example().<br>\n";

       A::example();

   }

}

 

Ошибки в PHP

Значение

Константа

Описание

1

E_ERROR

фатальные ошибки времени выполнения

2

E_WARNING

предупреждения времени выполнения (нефатальные ошибки)

4

E_PARSE

ошибки разбора времени компиляции

8

E_NOTICE

уведомления времени выполнения (менее серьёзные, чем предупреждения)

16

E_CORE_ERROR

фатальные ошибки при начальном старте PHP

32

E_CORE_WARNING

предупреждения (нефатальные ошибки) при начальном старте РНР

64

E_COMPILE_ERROR

фатальные ошибки времени компиляции

128

E_COMPILE_WARNING

предупреждения времени компиляции (нефатальные ошибки)

256

E_USER_ERROR

генерируемое пользователем сообщение об ошибке

512

E_USER_WARNING

генерируемое пользователем предупреждение

1024

E_USER_NOTICE

генерируемое пользователем уведомление

 

E_ALL

всё вышеуказанное, как поддерживаемое

 

Создание изображений и манипуляции с ними

В PHP нет ограничений на создание простого HTML-вывода. Он может также использоваться для создания изображений и манипуляций с файлами изображений различных форматов, включая gif, png, jpg, wbmp и xpm. Что особенно удобно: php может выводить поток изображения непосредственно в браузер. Вам для этого необходимо скомпилировать PHP с библиотекой GD функций изображений. GD и PHP тогут потребовать также наличия других библиотек, в зависимости от того, с каким форматом изображений вы работаете. GD перестал поддерживать Gif-изображения в версии 1.6.

<?php

   Header("Content-type: image/png");

   $string=implode($argv," ");

   $im = ImageCreateFromPng("images/button1.png");

   $orange = ImageColorAllocate($im, 220, 210, 60);

   $px = (imagesx($im)-7.5*strlen($string))/2;

   ImageString($im,3,$px,9,$string,$orange);

   ImagePng($im);

   ImageDestroy($im);

?> 

Куки/Cookies

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

Любая кука, отправляемая вам с клиента, будет автоматически конвертирована в PHP-переменную точно так же, как GET и POST-данные, в зависимости от переменных конфигурации register_globals и variables_order. Если вы хотите присвоить несколько переменных одной куке, просто добавьте [] в имя куки.

Загрузка файлов

PHP способен принимать загрузку файлов из любого соответствующего браузера. Это даёт возможность загружать текстовые и бинарные файлы.

<form enctype="multipart/form-data" action="_URL_" method="post">

 <input type="hidden" name="MAX_FILE_SIZE" value="1000">

Send this file: <input name="userfile" type="file">

<input type="submit" value="Send File">

</form>

_URL_ должен указывать на PHP-файл

После отправки формы на сервер содержимое массива $_FILES изменится. Обратите внимание, что здесь предполагается использование имени 'userfile' для загружаемого файла, как в примере скрипта ранее:

$_FILES['userfile']['name']- Оригинальное имя файла на клиентской машине.

$_FILES['userfile']['type'] - mime-тип файла, если браузер предоставил эту информацию. Пример: "image/gif".

$_FILES['userfile']['size']- Размер загруженного файла в байтах.

$_FILES['userfile']['tmp_name']- Временное имя файла, под которым загруженный файл был сохранён на сервере.

Файлы будут по умолчанию сохраняться во временной директории по умолчанию на сервере, если только не задано другое место директивой upload_tmp_dir в php.ini.

PHP-скрипт для загрузки файла

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

   copy($_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");

} else {

   echo "Possible file upload attack. Filename: " . $_FILES['userfile']['name'];

}

/* ...или... */

move_uploaded_file($_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");

?>

Файл будет удалён из временной директории по окончании запроса, если он (файл) не перемещён или не переименован.

Некоторые встроенные функции PHP

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

Константа

Значение

Описание

M_PI

3.14159265358979323846

Pi

M_E

2.7182818284590452354

e

M_LOG2E

1.4426950408889634074

log_2 e

M_LOG10E

0.43429448190325182765

log_10 e

M_LN2

0.69314718055994530942

log_e 2

M_LN10

2.30258509299404568402

log_e 10

M_PI_2

1.57079632679489661923

pi/2

M_PI_4

0.78539816339744830962

pi/4

M_1_PI

0.31830988618379067154

1/pi

M_2_PI

0.63661977236758134308

2/pi

M_SQRTPI

1.77245385090551602729

sqrt(pi) [4.0.2]

M_2_SQRTPI

1.12837916709551257390

2/sqrt(pi)

M_SQRT2

1.41421356237309504880

sqrt(2)

M_SQRT3

1.73205080756887729352

sqrt(3) [4.0.2]

M_SQRT1_2

0.70710678118654752440

1/sqrt(2)

M_LNPI

1.14472988584940017414

log_e(pi) [4.0.2]

M_EULER

0.57721566490153286061

константа Эйлера [4.0.2]

abs - абсолютное значение

acos - аккосинус

acosh - инверсный гиперболический косинус

asin - акрсинус

asinh - инверсный гиперболический синус

atan2 - арктангенс двух переменных

atan - арктангенс

atanh - инверсный гиперболический тангенс

base_convert - конвертирует число между произвольными базами

bindec - двоичное в 10-ричное

ceil - округление дробей в сторону увеличения

cos - косинус

cosh - гиперболический косинус

decbin - десятеричное в двоичное

dechex - 10-ричное в 16-ричное

decoct - 10-ричное в 8-ричное

deg2rad - конвертирует число в градусах в эквивалент в радианах

exp - e в степени ...

expm1 - возвращает exp(число) - 1, вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю

floor - округляет дробь в сторону уменьшения

getrandmax - показывает наибольшее возможное случайное значение

hexdec - 16-ричное в 10-ричное

hypot - возвращает sqrt( num1*num1 + num2*num2)

is_finite -

is_infinite -

is_nan -

lcg_value - комбинированный линеарный конгруэнтный генератор

log10 - логарифм с базой 10

log1p - возвращает log(1 + число), вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю

log - натуральный логарифм

max - находит наибольшее значение

min - находит наименьшее значение

mt_getrandmax - показывает наибольшее возможное случайное значение

mt_rand - генерирует наилучшее случайное значение

mt_srand - запускает генератор наилучшего случайного числа

number_format - форматирует число с группировкой по тысячам

octdec - 8-ричное в 10-ричное

pi - занчение pi

pow - экспоненциальное выражение

rad2deg - конвертирует число в радианах в эквивалент в градусах

rand - генерирует случайное число

round - округляет число с плавающей точкой/float

sin - синус

sinh - гиперболический синус

sqrt - квадратный корень

srand - запускает генератор наилучшего случайного числа

tan - тангенс

tanh - гиперболический тангенс

Функции переменных

doubleval - псевдоним floatval()

empty - определяет, установлена ли переменная

floatval - получает float-значение переменной

get_defined_vars - возвращает массив из всех определённых перменных

get_resource_type - возвращает тип ресурса

gettype - получает тип переменной

import_request_variables - импортирует GET/POST/Cookie переменные в глобальную область видимости

intval - получает целочисленное значение переменной

is_array - определяет, является ли переменная массивом

is_bool - определяет, является ли переменная boolean

is_callable - определяет, является ли аргумент правильной вызываемой конструкцией

is_double - псевдоним is_float()

is_float - определяет, является ли переменная числом с плавающей точкой

is_int - определяет, является ли переменная целочисленной

is_integer - псевдоним is_int()

is_long - псевдоним is_int()

is_null - определяет, является ли переменная NULL

is_numeric - определяет, является переменная числом или строкой чисел

is_object - определяет, является ли переменная объектом

is_real - псевдоним is_float()

is_resource - определяет, является ли переменная ресурсом

is_scalar - определяет, является ли переменная скаляром

is_string - определяет, является ли переменная строкой

isset - определяет, установлена ли переменная

print_r - печатает читабельную информацию о переменной

serialize - генерирует сохраняемое представление данного значения

settype - устанавливает тип переменной

strval - получает строковое значение переменной

unserialize - создаёт PHP-значение из хранимого представления

unset - отменяет установку/Unset данной переменной

var_dump - выполняет дамп информации о переменной

var_export - выводит или возвращает строковое представление переменной

Строковые функции

addcslashes - закавычивает строку слэшами в стиле C

addslashes - закавычивает строку слэшами

bin2hex - конвертирует двоичные данные в 16-ричное представление

chop - псевдоним rtrim()

chr - возвращает специфический символ

chunk_split - делит строку на небольшие отрезки

convert_cyr_string - конвертирует из одного набора символов кириллицы в другой

count_chars - возвращает информацию о символах , используемых с строке

crc32 - вычисляет crc32-полином строки

crypt - однонаправленное шифрование строки (хэширование)

echo - выводит одну или более строк

explode - делит строку строкой

get_html_translation_table - возвращает таблицу трансляции, используемую htmlspecialchars() и htmlentities()

get_meta_tags - извлекает все content-атрбуты meta-тэгов из файла и возвращает массив

hebrev - конвертирует логический Hebrew-текст в визуальный

hebrevc - конвертирует логический Hebrew-текст в визуальный текст с конвертацией newline

htmlentities - конвертирует все символы в HTML-мнемоники

htmlspecialchars - конвертирует специальные символы в HTML-мнемоники

implode - объединяет элементы массива со строкой

join - объединяет элементы массива со строкой

levenshtein - вычисляет Levenshtein-растояние между двумя строками

localeconv - получает информацию о форматировании чисел

ltrim - вырезает пробелы в начале строки

md5_file - вычисляет md5-хэш данного filename

md5 - вычисляет md5-хэш строки

metaphone - вычисляет ключ metaphone строки

nl_langinfo - запрашивает информацию языка и локализации

nl2br - вставляет HTML-разрывы строк перед всеми символами newline в строке

ord - возвращает ASCII-значение символа

parse_str - разбирает строку в переменных

print - выводит строку

printf - выводит отформатированную строку

quoted_printable_decode - конвертирует закавыченную строку для печати в 8-битную строку

quotemeta - закавычивает meta-символы

rtrim - вырезает пробелы в конце строки

setlocale - устанавливает локальную информацию

similar_text - вычисляет сходство между двумя строками

soundex - вычисляет ключ soundex строки

sprintf - возвращает форматированную строку

sscanf - разбирает ввод из строки в соответствии с форматом

str_pad - заполняет строку на на определённую длину другой строкой

str_repeat - повторяет строку

str_replace - заменяет все вхождения строки поиска строкой замещения

str_rot13 - выполняет rot13-трансформацию строки

strcasecmp - бинарно безопасное сравнение строк без учета регистра

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

strcmp - бинарно безопасное сравнение строк

strcoll - сравнение строк на основе установок локализации

strcspn - находит длину начального сегмента, не совпадающего с маской

strip_tags - вырезает тэги HTML и PHP из строки

stripcslashes - раскавычивает строку, закавыченную функцией addcslashes()

stripslashes - раскавычивает строку, закавыченную функцией addslashes()

stristr - strstr() без учёта регистра

strlen - получает длину строки

strnatcasecmp - сравнение строк без учёта регистра с использованием алгоритма "натурального порядка"

strnatcmp - сравнение строк алгоритмом "натурального порядка"

strncasecmp - бинарно безопасное сравнение первых n символов строки без учёта регистра

strncmp - бинарно безопасное сравнение первых n символов строки

strpos - находит позицию первого появления/вхождения в строке

strrchr - находит последнее появление символа в строке

strrev - разворачивает строку

strrpos - находит позицию последнего появления символа в строке

strspn - находит длину начального сегмента, совпадающего с маской

strstr - находит первое появление строки

strtok - "лексемизирует" строку

strtolower - переводит символы строки в нижний регистр

strtoupper - переводит символы строки в верхний регистр

strtr - транслирует определённые символы

substr_count - подсчитывает количество вхождений подстроки

substr_replace - заменяет текст в части строки

substr - возвращает часть строки

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

ucfirst - переводит первый символ строки в верхний регистр

ucwords - переводит в верхний регистр первый символ каждого слова строки

vprintf - выводит отформатированную строку

vsprintf - возвращает отформатированную строку

wordwrap - окружает строку заданным количеством символов с использованием символа разрыва строки

Функции массива

array_change_key_case — возвращает массив совмеси строковыми ключами в нижнем или в верхнем регистре

array_chunk - делит массив на отрезки

array_count_values - возвращает количество значений в массиве

array_diff - вычисляет разницу между массивами

array_fill - заполняет массив значениями

array_filter - фильтрует элементы массива с использованием callback-функции

array_flip - меняет местами ключи и значения массива

array_intersect - вычисляет пересечение массивов

array_key_exists - проверяет, существует ли данный ключ или индекс в массиве

array_keys - возвращает все ключи массива

array_map - применяет обратный вызов/callback к элементам данного массива

array_merge_recursive - рекурсивно объединяет два или более массива

array_merge - объединяет два или более массива

array_multisort - сортирует несколько (или многомерные) массивов

array_pad - заполняет массив значением на специфицированную длину

array_pop - выталкивает элемент в конце массива

array_push - ставляет один или более элементов в конец массива

array_rand - извлекает одно или несколько произвольных вхождений из массива

array_reduce - итерирует по массиву и уменьшает его на единственное значение, используя callback-функцию

array_reverse - возвращает массив с элементами в обратном порядке

array_search - ищет в массиве данное значение и возвращает соответствующий ключ при успехе

array_shift - сдвигает элемент за пределы начала массива

array_slice - извлекает отрезок массива

array_splice - удаляет часть массива и заменяет её чем-нибудь

array_sum - высчитывает сумму значений массива

array_unique - удаляет дублирующие значения из массива

array_unshift - присоединяет один или более элементов в начало массива

array_values - возвращает все значения массива

array_walk - применяет пользовательскую функцию к каждому члену массива

array - создаёт массив

arsort - сортирует массив в реверсном порядке и облуживает ассоциацию индексов

asort - сортирует массив и облуживает ассоциацию индексов

compact - создаёт масси из переменных и их значений

count - подсчитывает элементы в переменной

current - возвращает текущий элемент массива

each - возвращает текущую пару key/value из массива и передвигает курсор массива

end - устанавливает внутренний указатель массива на последний элемент

extract - импортирует переменные из массива в текущую таблицу символов

in_array - возвращает TRUE, если значение существует в массиве

key - извлекает a ключ/key из ассоциативного массива

krsort - сортирует массив по ключам в реверсном порядке

ksort - сортирует массив по ключам

list - прсваивает переменные, как если бы они были массивами

natcasesort - сортирует массив с использованием алгоритма, без учёта регистра в "естественном порядке"

natsort - сортирует массив с использованием алгоритма "в естественном порядке"

next - передвигает вперёд внутренний указатель массива

pos - получает текущий элемент массива

prev - возвращает в начало внутренний укзатель массива

range - создаёт массив, содержащий диапазон элементов

reset - устанавливает внутренний указатель массива на первый элемент

rsort - сортирует в реверсном порядке

shuffle - перемешивает массив

sizeof - получает количество элементов в переменной

sort - сортирует массив

uasort - сортирует массив с использованием пользовательской функции сравнения и обслуживает ассоциацию индексов

uksort - сортирует массив по ключам, используя пользовательскую функцию сравнения

usort - сортирует массив по значениям, используя пользовательскую функцию сравнения

Функции почты

mail - отправляет почту

Функции директории

chdir - сменить директорию

chroot - сменить root-директорию

dir - класс директории

closedir - закрывает дескриптор директории

getcwd - получает текущую рабочую директорию

opendir - открывает дескриптор директории

readdir - читает вхождение из дескриптора директории

rewinddir - переходит в начало дескриптора директории

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

basename — возвращает компонент filename пути

chgrp - изменяет file group

chmod - изменяет file mode

chown - изменяет file owner

clearstatcache - очищает stat-кэш файла

copy - копирует файл

delete - (здесь заглушка статьи учебника)

dirname — возвращает компонент directory name пути

disk_free_space — возвращает доступное пространство в директории

disk_total_space — возвращает общий размер директории

diskfreespace - псевдоним disk_free_space()

fclose - закрывает указатель открытого файла

feof - проверяет, находится ли указатель файла в точке end-of-file

fflush - очищает вывод в файл

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

fgetcsv - получает строку от указателя файла и разбирает CSV-поля

fgets - получает строку от указателя файла

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

file_exists - проверяет, существует ли файл

file_get_contents - читает весь файл в строку

file_get_wrapper_data - запрашивает header/meta-данные из указателей "обёрнутых" файлов

file_register_wrapper - регистрирует URL-оболочку/wrapper, реализованную как PHP-класс

file - читает весь файл в массив

fileatime - получает время последнего доступа к файлу

filectime - получает inode время изменения файла

filegroup - получает file group

fileinode - получает file inode

filemtime - получает время последнего изменения файла

fileowner - получает file owner

fileperms - получает file permissions

filesize - получает размер файла

filetype - получает тип файла

flock - переносимая информирующая блокировка файла

fopen - открывает файл или URL

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

fputs - записывает в указатель файла

fread - Binary-safe/безопасное в двоичном режиме чтение файла

fscanf - разбирает ввод из файла в соответствии с форматом

fseek - ищет в указателе файла

fstat - получает информацию о файле с использованием указателя открытого файла

ftell - сообщает позицию чтения/записи указателя файла

ftruncate - усекает файл до заданного размера

fwrite - Binary-safe запись в файл

glob - находит pathnames, совпадающие с патэрном

is_dir - сообщает, является ли filename директорией

is_executable - сообщает, является ли filename исполняемым

is_file - сообщает, является ли filename регулярным файлом

is_link - сообщает, является ли filename символической ссылкой

is_readable - сообщает, является ли filename читаемым

is_uploaded_file - сообщает, был ли файл загружен через HTTP POST

is_writable - сообщает, можно ли записывать в filename

is_writeable - сообщает, можно ли записывать в filename

link - создаёт жёсткую ссылку

linkinfo - получает информацию о ссылке

lstat - выдаёт информацию о файле или символической ссылке

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

move_uploaded_file - перемещает загруженный файл в новое место

parse_ini_file - разбирает файл конфигурации

pathinfo — возвращает информацию о пути файла

pclose - закрывает process file pointer/указатель процесса файла

popen - открывает process file pointer

readfile - выводит файл

readlink — возвращает цель/target символической ссылки

realpath — возвращает канонизированный абсолютный pathname

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

rewind - возвращает в начало указатель файла

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

set_file_buffer - устанавливает буферизацию файла на данном указателе файла

stat - выдаёт информацию о файле

symlink - создаёт символическую ссылку

tempnam - создаёт файл с уникальным именем

tmpfile - создаёт временный файл

touch - устанавливает время доступа и изменения файла

umask - изменяет текущую umask

unlink - удаляет файл

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

flush - Flush the output buffer

ob_clean - очищает (удаляет) буфер вывода

ob_end_clean - очищает (удаляет) буфер вывода и выключает буферизацию вывода

ob_end_flush - очищает (отправляет) буфер вывода и включает буферизацию вывода

ob_flush - очищает (отправляет) буфер вывода

ob_get_contents - возвращает содержимое буфера вывода

ob_get_length - возвращает длину буфера вывода

ob_get_level - возвращает содержащий/nesting уровень механизма буферизации вывода

ob_gzhandler - ob_start callbackфункцию для буфера вывода gzip

ob_implicit_flush - включает/выключает неявную очистку

ob_start - включает буферизацию вывода

Функции изображений

Предопределённые константы 

IMG_GIF (integer)

IMG_JPG (integer)

IMG_JPEG (integer)

IMG_PNG (integer)

IMG_WBMP (integer)

IMG_XPM (integer)

IMG_COLOR_TILED (integer)

IMG_COLOR_STYLED (integer)

IMG_COLOR_BRUSHED (integer)

IMG_COLOR_STYLEDBRUSHED (integer)

IMG_COLOR_TRANSPARENT (integer)

IMG_ARC_ROUNDED (integer)

IMG_ARC_PIE (integer)

IMG_ARC_CHORD (integer)

IMG_ARC_NOFILL (integer)

IMG_ARC_EDGED (integer)

exif_imagetype - определяет тип изображения

exif_read_data — читает шапки EXIF в JPEG или TIFF

exif_thumbnail - запрашивает внедрённую уменьшенную версию/thumbnail изображения TIFF или JPEG

getimagesize - получает размер изображения

image2wbmp - выводит изображение в браузер или файл

imagealphablending - устанавливает режим смешения/blending изображения

imagearc - прорисовывает дугу

imagechar - прорисовывает символ горизонтально

imagecharup - прорисовывает символ вертикально

imagecolorallocate - выделяет цвет для изображения

imagecolorat - получает индекс цвета пиксела

imagecolorclosest - получает индекс цвета, ближайшего к специфицированному цвету

imagecolorclosestalpha - получает индекс цвета, ближайшего к специфицированному цвету + alpha

imagecolorclosesthwb - получает индекс цвета, оттенок, белизну и черноту, ближайшие к данному цвету

imagecolordeallocate - снимает выделение/размещение цвета для изображения

imagecolorexact - получает индекс специфицированного цвета

imagecolorexactalpha - получает индекс специфицированного цвета + alpha

imagecolorresolve - получает индекс специфицированного цвета или ближайшей возможной альтернативы

imagecolorresolvealpha - получает индекс специфицированного цвета + alpha или ближайшей возможной альтернативы

imagecolorset - устанавливает цвет для специфицированного индекса палитры

imagecolorsforindex - получает цвет индекса

imagecolorstotal - определяет количество цветов в палитре изображения

imagecolortransparent - определяет цвет как прозрачный/transparent

imagecopy - копирует часть изображения

imagecopymerge - копирует и объединяет часть изображения

imagecopymergegray - копирует и объединяет часть изображения с серой шкалой

imagecopyresampled - копирует часть изображения и изменяет его размер путём пересэмплирования

imagecopyresized - копирует часть изображения и изменяет его размер

imagecreate - создаёт новую палитру на основе изображения

imagecreatefromgd2 - создаёт новое изображение из GD2-файла или URL

imagecreatefromgd2part - создаёт новое изображение из данной части GD2-файла или URL

imagecreatefromgd - создаёт новое изображение из GD-файла или URL

imagecreatefromgif - создаёт новое изображение из файла или URL

imagecreatefromjpeg - создаёт новое изображение из файла или URL

imagecreatefrompng - создаёт новое изображение из файла или URL

imagecreatefromstring - создаёт новое изображение из потока изображения в строке

imagecreatefromwbmp - создаёт новое изображение из файла или URL

imagecreatefromxbm - создаёт новое изображение из файла или URL

imagecreatefromxpm - создаёт новое изображение из файла или URL

imagecreatetruecolor - создаёт новое изображение true color

imagedashedline - прорисовывает пунктирную линию

imagedestroy - разрушает изображение

imageellipse - прорисовывает эллипс

imagefill - заполняет заливкой

imagefilledarc - прорисовывает часть эллипса и заполняет её

imagefilledellipse - прорисовывает заполненный эллипс

imagefilledpolygon - прорисовывает заполненный многоугольник

imagefilledrectangle - прорисовывает заполненный прямоугольник

imagefilltoborder - заполняет заливкой специфицированного цвета

imagefontheight - получает высоту шрифта

imagefontwidth - получает ширину шрифта

imageftbbox - задаёт ограничивающий бокс текста, используя шрифты через freetype2

imagefttext - записывает текст на изображение, используя шрифты с FreeType 2

imagegammacorrect - применяет коррекцию гаммы к GD-изображению

imagegd2 - выводит GD2-изображение в браузер или файл

imagegd - выводит GD-изображение в браузер или файл

imagegif - выводит-изображение в браузер или файл

imageinterlace - включает или отключает interlace/вывод изображения полосами

imagejpeg - выводит-изображение в браузер или файл

imageline - прорисовывает линию

imageloadfont - загружает новый шрифт

imagepalettecopy - копирует палитру из одного изображения в другое

imagepng - выводит PNG-изображение в браузер или файл

imagepolygon - прорисовывает многоугольник

imagepsbbox - задаёт ограничивающий бокс прямоугольника текста, используя шрифты PostScript Type1

imagepscopyfont - делает копию уже загруженного шрифта для последующей модификации

imagepsencodefont - изменяет вектор кодировки символов шрифта

imagepsextendfont - расширяет или сжимает шрифт

imagepsfreefont - освобождет память, использованную шрифтом PostScript Type 1

imagepsloadfont - загружает шрифт PostScript Type 1 из файла

imagepsslantfont - наклоняет шрифт

imagepstext - прорисовывает текстовую строку поверх изображения с использованием шрифтов PostScript Type1

imagerectangle - прорисовывает прямоугольник

imagesetbrush - устанавливает изображение кисти для прорисовки линии

imagesetpixel - устанавливает одиночный пиксел

image lang="en-us"settyle - устанавливает стиль прорисовки линии

imagesetthickness - устанавливает толщину прорисовки линии

imagesettile - устанавливает изображение, размножаемое для заполнения/tile

imagestring - прорисовывает aстроку горизонтально

imagestringup - прорисовывает строку вертикально

imagesx - получает ширину изображения

imagesy - получает высоту изображения

imagetruecolortopalette - конвертирует изображение true color в палитровое/palette изображение

imagettfbbox - задаёт ограничивающий бокс текста, используя шрифты TrueType

imagettftext - записывает текст на изображение, используя шрифты TrueType

imagetypes - возвращает типы изображений, поддерживаемые этим построением PHP

imagewbmp - выводит изображение в браузер или файл

iptcembed - внедряет двоичные IPTC-данные в JPEG-изображение

jpeg2wbmp - конвертирует файл JPEG-изображения в файл WBMP-изображения

png2wbmp - конвертирует файл PNG-изображения в файл WBMP-изображения

read_exif_data - читает header-информацию, хранимую в изображениях TIFF и JPEG

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

connection_aborted - возвращает TRUE, если клиент разорвал соединение

connection_status - возвращает битовое поле статуса соединения

connection_timeout - возвращает TRUE, если скрипт взял таймаут

constant - возвращает значение константы

define - определяет именованную константу

defined - проверяет, существует ли данная именованная константа

die - псевдоним exit()

eval - вычисляет строку как PHP-код

exit - выводит сообщение и прерывает выполнение текущего скрипта

get_browser - сообщает, какой браузер у пользователя

highlight_file - подсветка синтаксиса файла

highlight_string - подсветка синтаксиса строки

ignore_user_abort - устанавливает, должно ли отсоединение клиента прерывать выполнение скрипта

iptcparse - разбирает двоичный IPTC http://www.iptc.org/ блок в отдельные тэги

leak - утечка памяти

pack - упаковывает данные в бинарную строку

show_source - подсветка синтаксиса файла

sleep - задержать выполнение

uniqid - генерирует уникальный id

unpack - распаковывает данные из бинарной строки

usleep - задержка выполнения в микросекундах

Функции регулярных выражений
preg_grep - возвращает вхождения массива, совпадающие с патэрном

preg_match_all - выполняет глобальный поиск совпадений регулярного выражения

preg_match - выполняет поиск совпадений регулярного выражения

preg_quote - закавычивает символы регулярного выражения

preg_replace_callback - выполняет поиск регулярного выражения и замену с использованием обратного вызова/callback

preg_replace - выполняет поиск регулярного выражения и замену

preg_split - делит строку регулярным выражением

ereg_replace - заменяет регулярное выражение

ereg - поиск совпадений регулярного выражения

eregi_replace - заменяет регулярное выражение без учёта регистра символов

eregi - поиск совпадений регулярного выражения без учёта регистра символов

split - делит строку на массив с помощью регулярного выражения

spliti - делит строку на массив с помощью регулярного выражения без учёта регистра символов

sql_regcase - делает регулярное выражение для поиск совпадений регулярного выражения без учёта регистра символов


Задание к лабораторной работе:

  1.  Установить программу Denwer, включающую в себя web-сервер Apache, Язык программирования PHP и СУБД MySQL.
  2.  Изменить web-сайт, разработанный в лабораторной работе №3, написав его на языке PHP и переместив его в директорию /WebServers/home/имя_сайта/www. Перезапустить Apache.
  3.  Проанализировать сайт и вынести общие элементы, такие как шапка (header), подвал (footer), меню и т.д. в отдельные файлы, подключив их к основным скриптам функциями require, require_once, include, include_once. При этом такое содержимое шапки, как заголовок страницы, теги <meta> и др. на разных страницах должно отличаться, т.е. соответствовать назначению документа.
  4.  Произвести проверку данных, введенных в поля формы (на заполнение, на правильность email, на ввод только числового значения и т.д. при помощи регулярных выражений) скриптом PHP. В случае ошибок вывести их, выделить неправильно заполненные поля (бэграундом, цветом, картинкой) и заполнить поля теми же значениями, которые там были до отправки формы. Использовать метод POST.
  5.  Сделать страничку на PHP для подсчета занимаемого вашим сайтом или отдельной папкой места на жестком диске (можно разместить на about.php). Наименование папки можно передавать методом GET.
  6.  Реализовать один из следующих приемов, написав класс для обработки данных:
    •  отправка email’а через форму обратной связи с полями «Представьтесь», «Ваш E-mail», «Текст сообщения». Использовать дополнительные заголовки.
    •  RSS-поток с возможностью просмотра в google reader или яндекс ленте. Данные для потока читать из файла.
    •  наложение текстов/изображений на другие изображения (водяные знаки) или рисование графиков, загрузка изображений и других файлов в каталог на сервере и отображение ссылок на них.
    •  организовать сохранение/чтение/удаление из файла данных на определенную предметную область (например база данных аудиотреков, видеофильмов, компьютерных комплектующих и т.д. с параметрами «название», «длительность», «вес»).
    •  из заданного статичного файла со списком новостей используя регулярные выражения в формате PCRE вывести все новости на экран игнорируя ненужную служебную информацию, такую как строка меню, шапка заголовка, подвал, т.е. все что не новости.
    •  ведение статистики по посетителям (ip-адрес, браузер, количества посещений, заходы на конкретную страницу). Данные сохранять в *.csv файл и представить на PHP-странице в удобном виде.
  7.  Переписать/дописать галерею изображений с передачей в качестве параметра метода GET идентификатора/имени изображения.
  8.  Страницы должны быть работоспособны в любом браузере.

Каждый отчет должен содержать:

  1.  Заголовок лабораторной работы (название и цель работы).
  2.  Фамилия, инициалы и группа студента.
  3.  Задание к лабораторной работе.
  4.  Краткие теоретические сведения.
  5.  Описание алгоритмов, функций, примененных решений.
  6.  Экранные формы разработанных страниц.
  7.  Основные тексты страниц.
  8.  Выводы по сделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

27190. Внутренняя и внешняя п. Фр. в период консульства и 1-й империи Наполеона. Наполеоновская эпоха в исторической науке 41.5 KB
  Вандаль: к власти во Фр. – человек чуждый революции начал задумываться о захвате власти достаточно рано. Было много разбойников в городах и на больших дорогах отсутствовал законопорядок в стране – все это убедило большинство в необходимости передачи власти в твердые руки. давно мечтал о власти решил воспользоваться ситуацией; Манфред: Наполеон уехал из Египта чтобы не проиграть.
27194. Франко-германская война 1870-1871 гг. и парижская Коммуна 1871 г. и их место в историческом процессе 37 KB
  19 сентября немецкие войска осадили Париж = голод зима безденежье = народные восстания = меры правительства: запрет на взыскание платы за аренду и по кредитам = бунты продолжались = 28 января 1871 г. По мере уплаты контрибуций германские войска покидали оккупированные территории. Вооруженные силы ПК значительно уступали по численности и подготовки Версальским войскам которых к тому же поддерживали германские оккупационные войска. 21 мая версальские войска ворвались в Париж.
27195. Общие черты и особенности эк. и П. развития стран Западной Европы и США в конце 19- начале 20 века 67.5 KB
  Развития стран Западной Европы и США в конце 19 начале 20 века. Европейские страны кроме Германии и США отставали от Англии в темпах роста. индустриальными были всего 3 страны Германия США Англия а аграрноиндустриальными были Россия Австрия Фр. развития уступая США.