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

 

class________________________________________________________________          

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

 

<?php

class Cart {

var $iterns; // Items in our shopping cart

// Add $num articles of $artnr to the cart

 

function add_item ($artnr, $num) {

$this->items[$artnr] += $num;

}

// Take $num articles of Sartnr out of the cart

function remove_item ($artnr, $num) {

if ($this->items[$artnr] > $num) {

$this->items[$artnr] -= Snum;

return true; }

 else {

return false;

}

}

}

?>

 

В этом примере определен класс с именем Cart, который состоит из ассоциативного массива предметов, расположенных в корзине Carl и двух функций, с помощью которых происходит добавление предме­тов в корзину и удаление их из корзины.

Классы представляют собой типы, таким образом, классы являются своего рода шаблонами для переменных. Переменная типа того или иного класса может быть создана с применением оператора new.

 

$cart = new Cart;

$cart->add_item("10", 1);

 

В этом примере создается объект (экземпляр класса) $cart класса Cart. Функция add_item() этого объекта добавляет один предмет в корзину, номер предмета 10. Классы могут представлять собой расши­рения других классов, являющихся базовыми для данного класса. Та­кие производные классы содержат в себе все переменные и функции базового класса, а также все то, что было добавлено в класс, но не содержалось в базовом классе. Наследование осуществляется с ис­пользованием ключевого слова extends. Множественное наследование не поддерживается.

 

class Named_Cart extends Cart {

var $ owners;

function set_owner ($name) {

$this->owner = $name;

}

}

 

В вышеприведенном примере описан класс Named_Cart, в котором есть все функции и переменные класса Cart, а также дополнительная переменная $owner и функция set_owner(). С использованием этого класса можно создать именованную корзину и задать (или прочитать) владельца этой корзины:

 

$ncart = new Named_Cart;     // создаем именованную корзину

$ncart->set_owner ("kris");      // задаем имя корзины

print $ncart->owner;                // печатаем имя владельца корзины

$ncart->add_item ("10", 1);     // функции, унаследованные из cart

 

Внутри классов переменная Sthis указывает на текущий объект. Для того, чтобы получить доступ к любой переменной или функции теку­щего объекта, можно использовать конструкцию $this->something.

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

 

class Auto_Cart extends Cart {

function Auto_Cart () {

$this->add_item ("10", 1);

}

}

 

В этом примере определен класс Auto_Cart, который наследуется из класса Cart, но в добавок содержит конструктор, который инициа­лизирует новый объект этого класса, помещая в корзину один предмет с номером «10». Конструктор может иметь аргументы, однако наличие таких аргументов необязательно. Это делает использование конструк­торов более гибким.

 

class Constructor_Cart extends Cart {

function Constructor_Cart ($item = "10", $num = 1) { $

this->add_item ($item, $num);

}

}

 

// Shop the same old boring stuff.

 

$default__cart = new Constructor_Cart;

 

// Shop for real...

 

$different_cart = new Constructor_Cart ("20", 17);

 

Внимание

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


Ссылки

 

В этом разделе мы рассмотрим следующие вопросы.

 

- Что такое ссылки.

- Для чего используются ссылки.

- Чем не являются ссылки.

- Возвращение значений при помощи ссылок.

- Удаление ссылок.

 

Что представляют собой ссылки

 

Ссылки в РНР представляют собой средство обращения к одним и тем же переменным при помощи разных имен. Такие ссылки отлича­ются от ссылок, используемых в языке С. В РНР имена ссылок и содержание переменных различаются, иными словами одно и то же содержимое может быть названо несколькими разными именами.

 

Для чего используются ссылки

 

Ссылки в РНР позволяют двум различным переменным использо­вать одно и то же содержание. Вот пример;

$а =& $Ь

Это обозначает, что и $а и $Ь содержат одно и то же значение.

 

Примечание.

Здесь $а и $b абсолютно равноценны, т.е. неверно было бы считать, что $а указывает на $b или наоборот. Здесь и $а и $b указывают на одно и то же «место».


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

 

function foo (&$var) {

$var++;

}

 

$a=5;

foo ($a);

 

Здесь обращение к функции приведет к тому, что $а станет равно 6. Это произойдет потому, что в функции foo переменная $var ссылается на то же самое место, что и переменная $а.

Третья причина использования указателей — возвращение значе­ний функции при помощи ссылок.

 

Для чего нельзя использовать ссылки

 

Как уже было сказано выше, ссылки не являются указателями в том смысле, как они понимаются в языке С. По этой причине приве­денный ниже пример не будет работать так, как ожидается на первый взгляд.

 

function foo (&$var) {

$var =& $GLOBALS["baz"];

}

foo($bar);

 

При обращении к функции foo переменная $var, которая использу­ется в качестве формального параметра при описании функции, будет указывать на то же содержимое, что и переменная $bar, указанная в качестве фактического параметра при обращении к функции. Затем она будет связана с переменной $GLOBALSbaz»]. Не существует другого способа связывания переменной $bar с чем-либо иным, если используется механизм ссылок, поскольку переменная $bar не доступ­на внутри функции foo. Эта переменная внутри функции представлена другим именем — именем $var.

 

Ссылки у возвращающие значения в функциях

 

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

 

function &find_var ($param) {

 ...code...

return $found_var;      

}

 

$foo =& find_var ($bar);

$foo->x = 2;

 

Примечание.

Символ & необходимо использовать в двух местах — один раз, чтобы показать, что значение возвращается по ссылке, а затем, чтобы показать, как возвращаемое значение связано с другими переменными.


Удаление ссылок

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

 

$а = 1;

$b =& $а;  

unset ($а);

 

Глобальные ссылки

 

Если переменная определена как глобальная переменная $var, то по сути создается ссылка на глобальную переменную как если бы была выполнена следующая инструкция:

 

$var =& $GLOBALS["var" ] ;

 

При этом, конечно, удаление ссылки для переменной $var не приведет к удалению глобальной переменной.

 

$this

 

Ссылка $this всегда указывает на текущий объект (на текущий экземпляр класса).

 

 

Краткий справочник

 

ФУНКЦИИ В РНР

 

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


Apache_lookup_uri______________________________________________

Выполняет запрос по указанному URI и возвращает информацию

 

Apache_note____________________________________________________

Получает и устанавливает значения в таблице примечаний запроса Apache

 

Getallheaders___________________________________________________

Выбор всех заголовков HTTP-запросов

 

Пример GetAllHeaders():

$headers = getallheaders();

while (list($header, $value) = each($headers) ) {

echo "$header: $value<br>\n" ;

}

 

Этот пример покажет все заголовки текущего запроса.

 

Virtual____________________________________________________________

Выполняет подзапрос Apache

 

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

 

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

 

Array________________________________________________________________

Создает массив

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

 

Пример аггау():

 

$fruits = array(

"fruits" => array("a"=>"orange","b"=>"banana","c"=>"apple"),

"numbers" => array (1, 2, 3, 4, 5, 6)

"holes" => array("first", 5 => "second", "third")

);

 

array_count_values_____________________________________________________

Пересчитывает значения, содержащиеся в массиве

 

array_walk_____________________________________________________________

Применение функции к каждому члену массива

 

Описание

 

int array_walk(array arr, string func);

 

Применяет функцию с именем func для каждого элемента массива arr.

 

Пример array_walk():

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple") ;

function test_alter( $iteml ) {

$iteml = 'bogus';

}

function test_print( $item2 ) {

echo "$item2<br>\n" ;

}

array_walk( $fruits, 'test_print' );

array_walk( $fruits, 'test_alter' );

array_walk( $fruits, 'test_print' );

 

arsort_______________________________________________________________________

Сортировка массива в обратном порядке

 

Пример arsort():

$fruits = array ("d"=>"lemon", "a',=>"orange", "b"=>"banana", "c"=>"apple") arsort($fruits);

for(reset ($fruits); $key = key($fruits); next($fruits)) {

echo "fruits[$key] = ".$fruits[$key]."\n";

}

 

Пример нам покажет:

 

fruits[a]            =          orange

fruits[d]            =          lemon

fruits[b]            =          banana

fruits[c]            =          apple

 

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

 

См. также asort(), rsort(), ksort(), sort().

 

Assort________________________________________________________________________

Сортирует массив и поддерживает связанные индексы

 

Пример asort():

 

$fruits = array("d"=>"lemon","а"=>"о range","b"=>"banana","c"=>"apple")

asort($fruits);

for(reset($fruits) ; $key = key($fruits); next($fruits)) {

echo "fruits[$key] = ".$fruits[$key]."\n";

}

 

Этот пример приведет к следующим значениям:

 

fruits[с]            = apple

fruits[b]            = banana

fruits [d]           =lemon

fruits[a]            = orange

 

Фрукты показаны в алфавитном порядке, и поддерживаются ин дексы связанные с каждым элементом массива.

См. также arsort(), rsort(), ksort(), sort().

 

Count____________________________________________________________

Возвращает число элементов в var

 

int count(mixed var) ;

 

Возвращает 0, если переменная не определена.

Возвращает 1, если переменная не является массивом.

 

См. также sizeof(), isset(), is_array().

 

Current_____________________________________

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

 

Описание

 

mixed current(array array);

 

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

Функция current() возвращает элемент массива, на который в дан­ный момент указывает внутренний указатель. Она не перемещает ука­затель. Если внутренний указатель указывает на конец списка элемен­тов, current() возвращает false (ложно).

 

Внимание: если массив содержит пустые элементы (0 или «», пус­тую строку), то для каждого такого элемента функция возвратит «false».

 

См. также end(), next(), prev(), reset().

 

Each_____________________________________________________________

Возвращает следующую пару ключ/значение из массива

 

Описание

array each(array array);

 

Возвращает пару ключ/значение.

 

Пример each():

$foo = array ( "bob"", "fred", "jussi", "jouni.2 );

$bar = each( $foo );

$bar теперь содержит следующие пары ключ/значение:.

0 => 0

1 => 'bob'

key => 0

value => 'bob'

$foo = array( "Robert" => "Bob", "Seppo" => "Sepi" );

$bar = each ( $foo );

 

Значения $bar таковы:

0 => 'Robert'

1 => 'Bob'

key => 'Robert'

value => 'Bob'

 

Each(), как правило, используется вместе с list() чтобы просмотреть массив; например, $HTTP_POST_VARS:

 

Пример. Просмотр $HTTP_POST_VARS с помощью each():

echo "Values submitted via POST method:<br>";

while ( list ( $key, $val ) = each ( $HTTP_POST_VARS ) ) {

echo "$key => $val<br>";

}

 

См. также key(), list(), current(), reset(), next(), prev().

 

end___________________________________________________________

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

 

Описание

 

end(array array);

 

End() перемещает array's внутренний указатель на последний эле­мент массива.

 

См. также current(), each(), end(), next(), reset().

 

key______________________________________________________

Выбирает ключ из ассоциативного массива

 

Описание

 

mixed key(array array);

 

Key() возвращает индекс элемента в текущей позиции массива См. также current(), next().

 

ksort___________________________________________________________

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

 

Описание

 

int ksort(array array);

 

Пример ksort():

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");

ksort($fruits);

 

 

for (reset($fruits) ; $key = key ($fruits) ; next($fruits) ) {

 echo "fruits[$key] = ". $fruits[$key] ."\n";

}

 

После выполнения (см. рис. C.l):

 

fruits [а] = orange

fruits[b] = banana

fruits[c] = apple

fruits[d] = lemon

 

См. также asort(), arsort(), sort(), rsort().

 

List_________________________________________________________        

Связывает переменные, как если бы они были массивом

 

Пример list():

<table>           

   <tr>

     <th>Employee name</th>

     <th>Salary</th>

   </tr>

<?php

$result = mysql($conn, "SELECT id, name, salary FROM employees";

while (list($id, Snarue, $salary) = mysql_fetch_row($result)) {

print(" <tr>\n2.

" <td><a href=\"info.php?id=$id\">$name</a></td>\n".

" <td>$salary</td>\n".

" </tr>\n");

)

?></table>

 

См. также each(), array().

 

next_____________________________________________

Передвигает внутренний указатель массива

 

Описание

 

mixed next(array array);

 

Возвращает следующий элемент массива, по сравнению с текущей позицией, на которую указывает внутренней указатель, или false, если в массиве больше нет элементов (false также будет возвращен для всех пустых элементов массива). Для просмотра массива, содержащего пус­тые элементы, рекомендуется использовать функцию each().

Next() ведет себя подобно current(), с одной лишь разницей. Он передвигает внутренний указатель массива на один элемент вперед прежде, чем возвратить элемент. Это означает, что он возвращает значение следующего элемента и передвигает на него внутренний указатель массива. Если при обращении к следующему элементу обна­ружен конец массива, то next() возвращает «ложь» (false).

 

См. также current(), end(), prev(), reset()

pos_________________________________________________________________    

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

 

Описание

 

mixed pos(array array);

 

Это псевдоним для current().

См. также end(), next(), prev(), reset().

prev__________________________________________________________________            

Перемещает внутренний указатель массива назад

 

Описание

 

mixed prev(array array);

 

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

Prev() ведет себя подобно next(), за исключением того, что он переводит внутренний указатель массива на одну позицию назад, а не вперед.

См. также current(), end() next(), reset().

 

reset____________________________________________________________________

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

 

Описание

mixed reset(array array);

 

Reset() возвращает внутренний указатель массива в первый эле­мент.

Reset() возвращает первый элемент массива.

См. также current(), each(), next() prev(), reset().

rsort______________________________________________________________________

Сортирует массив в обратном порядке

 

Описание

 

void rsort(array array);

 

Сортирует массив в обратном порядке (по убыванию).

 

Пример rsort():

$f ruits = array("lemon","orange","banana","apple");

rsort($fruits);

for(reset($fruits) ; ($key,Svalue) = each($fruits) ; ) {

echo "fruits[$key] = ".$value."\n" ;

}

 

Результат работы:

 

fruits [0] = orange

fruits [1] = lemon

fruits [2] = banana

fruits [3] = apple

 

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

 См. также arsort(), assort(), ksort(), sort(), usort().

sizeof__________________________________________________

Получает размер массива

 

Описание

int sizeof(array array);

Возвращает число элементов списка.

См. также count().

 

Sort____________________________________________________________

Сортирует массив

 

Описание

void sort(array array);

Эта функция сортирует массив — все элементы по окончании ее работы будут расположены по возрастанию.

 

Пример sort():

$fruits = array("lemon","orange","banana","apple");

sort($fruits);

for (reset($fruits); $key - key($fruits); next($fruits)) {

echo "fruits[$key] = " . $fruits[$key]."\n";

}

 

Результат работы:

fruits [0] = apple

fruits [1] = banana

fruits [2] = lemon

fruits [3] = orange

 

Фрукты будут отсортированы по возрастанию в алфавитном порядке.

См. также arsort(), asort(), ksort(), rsort(), usort().

uasort___________________________________________________________________

Сортирует массив с использованием функций сравнения, определенных пользователем

 

Описание

 

void uasort(array array, function cmp_function);

 

Эта функция сортирует массив так, что индексы массива поддер­живают их корреляцию с элементами массива.

 

Uksort________________________________________________________________________

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

 

Описание

 

void uksort(array array, function cmp_function);

 

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

 

Пример uksort():

function mycompare($а, $b) {

if ($a == $b) return 0;

return ($a > $b) ? -1 : 1;

}

$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten")

uksort($a, mycompare);

while(list($key, $value) = each($a)) {

echo "$key: $value\n";

}

 

Результат:

20: twenty

10: ten

4: four

3: three

 

См. также arsort(), asort(), uasort(), ksort(), rsort(), sort().

 

usort____________________________________________________________________

Сортирует массив no значениям, используя функции сравнения, определенные пользователем

 

Пример usort():

function cmp($a,$b) {

if ($a == $b) return 0;

return ($a > $b) ? -1 : 1;

}

$a = array(3,2,5, б, 1) ;

usort($a, crnp) ;

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

( echo "$key: $value\n";

}

 

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

 

Эти функции доступны только в том случае, если включен параметр enable-bcmath.

 

bcadd________________________________

Сложение двух чисел произвольной точности

 

Описание

 

string bcadd(string левый операнд, string правый операнд, int [масштаб]);

Прибавляет левый операнд к правому операнду и возвращает сум­му типа string (строковая переменная). Параметр масштаб использует­ся для того, чтобы установить количество разрядов после десятичной отметки в результате.

 

См. также bcsub().

 

bccomp        __________________________________________________                                                                                    

Сравнение двух чисел произвольной точности

 

 Описание

 

int bccomp (string левый операнд, string правый операнд, int [масштаб]);

 

Сравнивает левый операнд с правым операндом и возвращает ре­зультат типа integer (целое). Параметр масштаб используется для уста­новки количества цифр после десятичной отметки, используемых при сравнении. При равенстве двух операндов возвращается значение 0. Если левый операнд больше правого операнда возврашается +1, и если левый операнд меньше правого операнда возвращается — 1.

 

Bcdiv___________________________________________________________

Операция деления для двух чисел произвольной точности

 

Описание

 

string bcdiv (string левый операнд, string правый операнд, int [масштаб]);

 

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

См. также bcmul().

 

bcsqrt________________________________________________

Получение квадратного корня числа произвольной точности

 

Описание

 

string bcsqrt(string операнд, int масштаб);

 

Возвращает квадцратный корень операнда. Параметр масштаб уста­навливает количество цифр после десятичной отметки в результате.

См. также bcpow().

Bcsub_____________________________________________________

Вычитает одно число произвольной точности из другого

 

Описание

 

string bcsub (string левый операнд, string правый операнд, int [масштаб]);

 

Вычитает правый операнд из левого операнда и возвращает резуль­тат -типа string. Параметр масштаб устанавливает количество цифр после десятичной отметки в результате.

См. также bcadd().

 

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

 

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

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

См. http://genealogy.org/~scottlee/cal-overview.html.

 

JDToGregorian____________________________________________________

Преобразование юлианского счета в грегорианскую дату

 

Описание

string jdtogregorian(int julianday);

 

Преобразование юлианского счета в грегорианскую в формате «месяц/день/год».

 

Gregorian ToJD____________________________________________________

Преобразовывает грегорианскую дату на юлианский счет

 

Описание

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

 

Правиaльный диапазон для грегорианского календаря 4714 до н.э. до 9999 н.э.

Пример. Календарные функции:

<?php

$ jd = GregorianToJD(10,11,2001);

echo("$jd\n");

$gregorian = JDToGregorian($jd);

echo("$gregorian\n") ;

?>

 

Этот пример показан на рис. С.2. Заметим, что посредником во всех преобразованиях даты является количество дней по юлианскому календарю, т.е. юлианский счет.

 

 

 

JDToJulian

Преобразовывает дату юлианского календаря на юлианский счет

 

Описание

string jdtojulian(int julianday);

 

Преобразование юлианского счета в строку, содержащую дату юли­анского календаря в формате «месяц/день/год».

 

JulianToJD

Преобразовывает дату юлианского календаря на юлианский счет

 

Описание

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

 

Правильный диапазон для юлианского календаря 4713 до н.э. до 9999 н.э.

 

JDToJewish

Преобразовывает юлианский счет в еврейский календарь

 

Описание

string jdtojewish(int julianday);

 

Преобразование дневного юлианского счета в еврейский календарь.

 

JewishToJD

Преобразовывает дату в еврейском календаре на юлианский счет

 

Описание

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

 

JDToFrench

Преобразовывает юлианский счет во французский республиканский календарь

 

Описание

string jdtofrench(int month, int day, int year);

 

FrenchToJD________________________________________________________

Преобразовывает дату французского республиканского календаря в юлианский счет

 

Описание

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

 

JDMonthName_____________________________________________________

Возвращает название месяца

 

Описание

string jdmonthname(int julianday, int mode);

 

Значения для mode:

0— грегорианский (краткий);

1— грегорианский;

2— юлианский (краткий);

3— юлианский;

4— еврейский;

5— французский республиканский.

 

JDDayOfWeek_____________________________________________________   

Возвращает день недели

 

Описание

Mixed jddayofweek(int julianday, int mode);

 

Возвращает день недели. Может возвратить string или int в зависи­мости от значеия параметра mode.

 

Значения параметра mode:

            0……возвращает порядковый номер дня недели в виде целого значе­

ния int (0 = воскресенье, 1 = понедельник, и т.п.);

            1……возвращает строку string — название дня недели (английское-

грегорианское);

            2……возвращает строку, содержащую краткое название дня недели

(английский-грегорианский).


easter_date          ________________________________________________

Получает время формата UNIX для начала Пасхи текущего года

 

Описание

int easter_date (int year)

 

Пример:

echo date М-d-Y», easter_date(1999));       /* «Арr-04-l999» */

echo date М-d-Y», easter_date(2000));       /* «Арr-23-2000» */

echo date М-d-Y», easter_date(2001));       /* «Арr-15-2001» */

 

easter_days____________________________________________________

Получает количество дней до пасхи после 21 марта для текущего года

 

Описание

int easter_days (int year)

 

Пример (см. рис. С.З):

echo easter_days (1999); /* 14, i.e. April 4 */

echo easter_days (1492); /* 32, i.e. April 22 */

echo easter days (1913); /* 2, i.e. March 23 */

 

 

 

 

 

unixtojd________________________________________________

Преобразует формат временnt UNIX в юлианские дни

 

Описание

int unixtojd ([int timestamp])

 

jdtounix_________________________________________________

Преобразует юлианские дни в формат UNIX

 

Описание

int jdtounix (int jday)

 

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

 

Эти функции позволяют получать информацию, касающуюся клас­сов и объектов, экземпляров классов. С их помозью можно получить имя класса, к которому относится тот или иной объект, а также получить информацию о его свойствах и методах. Функции позволяют также получить информацию о родительских класса.

 

Пример

В этом примере мы определим базовый класс и его расширение. Базовый класс будет описывать овощи, указывая их свойсва (съедобен или нет и цвет). Подкласс Spinach будет содержать метод с описанием приготовления овоща и другие методы.

Файл classes, inc

<?php

 

// базовый класс, содержащий свойства и методы class Vegetable {

 

var $edible;

var $color;

function Vegetable( $edible, $color="green" ) {

$this->edible = $edible;

$this->color = $color;

}

 

function is_edible{) I return $this->edible;

}

 

function what_color() {

return $this->color;

}

} // конец базового класса

 

// расширение базового класса class Spinach extends Vegetable {

 

var $cooked = false;

function $pinach() {

$this->Vegetable(true, "green");

}

function cook_it() { $this->cooked = true;

}

function is_cooked() {

return $this->cooked;

}

} // конец класса Spinach

?>

/

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

 

Файл veg.php

<рге>

<?php

include "classes.inc";

 

// Вспомогательные функции function print vars($obj) {

$arr = get_object_vars($obj);

while (list($prop, $val) = each($arr))

echo "\t$prop = $val\n";

}

 

function print_methods($obj) {

$arr = get_class_methods(get_class($obj));

foreach ($arr as $method)

echo "\tfunction $method()\n" ;

}

 

function class_parentage($obj, $class) {

global $$obj;

if (is_subclass_of($$obj, $class)) {

echo "Object $obj belongs to class ".get_class($$obj) ;

echo " a subclass of $class\n";

} else {

echo "Object $obj does not belong to a subclass of $cla5s\n'

}

}

 

// инициализация двух объектов

 

$veggie = new Vegetable(true,"blue");

$leafy = new Spinach();

 

// ввывод информации об объектах

echo "veggie: CLASS " . get__class ($veggie) . "\n" ;

echo "leafy: CLASS ".get_class($leafу) ;

echo ", PARENT ".get_parent_class($leafy) ."\n";

 

// вывод свойств veggie

echo "\nveggie: Properties\n" ;

print_vars($veggie);

 

// методы leafy echo "\nleafy: Methods\n";

print_methods($leafy);

echo "\nParentage:\n";

class_parentage("leafy", "Spinach");

class_parentage("leafy", "Vegetable");

?>

</pre>

 

В приведенном примере важен тот факт, что объект $leafy является экземпляром класса Spinach, который является подклассом класса Vegetable, поэтому скрипт выведет такой фрагмент (рис. С.4):

 

[…]

Parentage:

Object leafy does not belong to a subclass of Spinach

Object leafy belongs to class spinach a subclass of Vegetable

 

ФУНКЦИИ

 

get_class_________________________________

Возвращает имя класса объекта Описание

 

string get_class (object obj)

См. также get_parent_class(), is_subclass_of().

 

get_parent_class_______________________       

Возвращает имя родительского класса

 

Описание

string get_parent_class (object obj)

 

См. также get_class(), is_subclass_of().

 

get_class_methods___________________________

Возвращает массив имен методов класса

 

Описание

array get_class_methods (string class_name)

 

См. также get_class_vars(), get_object_vars().

 

get_class_vars______________________

Возвращает массив свойств класса

 

Описание

array get_class_vars (string class_name)

 

См. также get_class_metkods(), get_object_vars().

 

get_objeсt_vars_____________________________________

Возвращает ассоциативный массив свойств объекта

 

Описание

array get_object_vars (object obj)

 

См. также get_class_methods(), get_class_vars().

 

is_subclass_of___________________________________________

Определяет, является ли объект подклассом указанного класса

 

Описание

bool is_subclass_of (object obj, string superclass)

 

Функция возвращает true в том случае, если объект obj, относится к классу superclass. Если объект не принадлежит указанному классу, то функция возвращает false.

 

См. также getjdoss(), get_parent_class().

 

 class_exists__________________________________________________

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

 

Описание

bool classjexists (string class_name)

 

Функция возвращает true, если класс class_name был описан, в противном случае возвращает false.

 

method_exists__________________________________ 

Функция проверяет наличие указанного метода

 

Описание

bool ruethod_exists (object object, string method_name)

 

Функция возвращает true, если метод method_name определен в указанном объекте object, если метод не определен, то возвращает значение false.

 

get_declared_classes______________________________

Возвращает массив с именами описанных классов

 

Описание

array get_declared_classes (void)

 

Выводит имя всех классов текущего скрипта. В РНР4 всегда существу­ют классы stdClass (описан в Zend/zend.c), OverloadedTestClass (описан в ext/standard/basic_functions.c) и Directory (описан in ext/standard/dir.c).

 

calljuserjmethod________________________________________

Вызывает метод указанного класса

 

Описание

mixed call_user_method (string method_name, object obj [, mixed parameter [, mixed...]])

 

Вызываемый метод — это метод method_name в объекте obj.

 

Пример:

<?php

class Country {

var $ NAME;

var $TLD;

 

function Country($name, $tld) {

$this->NAME = $name;

$this->TLD = $tld;

}

 

function print_info($prestr="") {

echo $prestr."Country: ".$this->NAME."\n";

echo $prestr."Top Level Domain: ".$this->TLD."\n";

}

}

 

$cntry = new Country("Peru","pe");

 

echo "* Calling the object method directly\n»;

$cntry->print_infо();

 

echo "\n* Calling the same method indirectly\n»;

call_user_method ("print_info", $cntry, "\t");

?>

В броузере будет показана информация в соответсвии с рис. С.5.

 См. также calljuser_junc().

 

 

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

checkdate_________________________________________

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

 

Описание

 

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

 

Возвращает true, если данная дата верна, в противном случае возвра­щает false. Дата будет верной в том случае, если:

-         год находится между 1900 и 32767 (включительно);

-         месяц — между 1 и 12 включительно;

-         день находится в диапазоне разрешенных дней данного месяца, висо­косные годы учитываются.

date__________________________________________________

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

 

Описание

string date (string format, int timestamp);

 

Возвращает строку, отформатированную в соответствии с форматом.

Форматы:

А……«АМ» или «РМ»;

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

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

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

h ……час, цифровой, 12-часовой формат; Н....час, цифровой, 24-часовой формат; i минуты, цифровой;

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

1……(строчная 'L') день недели, текстовый, длинный; т.е. «Friday»;

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

М.... месяц, текстовый, 3 буквы, т.е. «Jan»;

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

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

U ……секунды с начала века; Y     год, цифровой, 4 цифры;

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

у…….год, цифровой, 2 цифры;

z……день года, цифровой, т.е. «299».

 

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

 

Пример date():

print(date( "1 dS of F Y h:i:s A" ));

print("July 1, 2000 is on a ". date("l", mktime (0, 0, 0, 7, 1, 2000)));

На экран будет выведена информация, показанная на рис. С.6.

 

 

Функции date() и mktime() возможно использовать совместно для определения даты в будущем или прошлом.

 

Пример функций date() и mktime():

$tornorrow = mktime (0,0,0, date ("m") , date ("d") +1, date ("Y") ) ;

 $lastmonth = mktime(0,0,0,date("m")-l,date("d"),date("Y"));

$nextyear = mktime(0,0, 0, date("m"),date("d"),date("Y")+1);

 

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

 

См. также gmdate(), mktime().

 

strftime____________________________

Форматирует локальное время

 

Описание

string strftime (string format, int timestamp);

 

Возвращает строку, отформатированную согласно заданному формату:

%а…….сокращенное название дня недели согласно текущему locale;

%А…….полное название дня недели согласно текущему locale;

%b…….сокращенное название месяца согласно текущему locale;

%В…….полное название месяца согласно текущему locale;

%с…….предпочтительное представление даты и времени для текущего

locale;

%d…….день месяца как десятичное число (в диапазоне от 0 до 31);

%Н ......час как десятичное число в 24-часовом формате (в диапазоне

от 00 до 23);

%I…….час как десятичное число в 12-часовом формате (в диапазоне

от 01 до 12);

%j…….день года как десятичное число (в диапазоне от 001 до 366);

%m…….месяц как десятичное число (в диапазоне от 1 до 12);

%М……минуты как десятичное число;

%р……'am' или 'рт' согласно текущему времени, или соответствую­щие строки для текущего locale; %S            секунды как десятичное число;

%U…….номер недели текущего года как десятичное число, начиная с

первого воскресенья в качестве первого дня первой недели;

%W…….номер недели текущего года как десятичное число, ночиная с

первого понедельника в качестве первого дня первой недели;

%w……день недели как целое число, воскресенье — 0-й день;

%х…….предпочитаемое представление даты для текущего locale, не

включающее время;

%Х……предпочитаемое представление времени для текущего locale, не

включающее дату;

%у…….год как десятичное число без столетия (в диапазоне от 00 до 99);

%Y……год как десятичное число, включая столетие;

%Z…….временная зона или название или сокращение;

%%.......символ '%'.

 

Пример функции strftime():

 

setlocale ("LC_TIME", "С");

print(strftime("%A in Finnish is "));

setlocale ("LC_TIME", "fi");

print(strftime("%A, in French "));

setlocale ("LC_TIME", "fr");

print(strftime("%A and in German "));

setlocale ("LC_TIME", "de");

print(strftime("%A.\n"));

См. также setlocale(), mktime().

 

getdate__________________________________

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

Описание

array getdate (int timestamp);

 

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

«seconds»        секунды;

«minutes»         минуты;

«hours»            часы;

«mday»            день месяца;

«wday»            день недели, цифровой;

«топ»              месяц, цифровой;

«уеаг»              год, цифровой;

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

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

«month»           месяц, текстовый, полный, т.е. «January».

 

gmdate_________________________________________

Форматирует GMT/CUT время/дату

 

Описание

string gradate (string format, int timestamp);

 

Аналогична функции date() за исключением того, что время воз­вращается в гринвичском формате Greenwich Mean Time (GMT). На­пример, при запуске в России (GMT +0300), первая строка ниже напечатает «Jan 01 1998 00:00:00», в то время как вторая строка напеча­тает «Dec 31 1997 22:00:00» (см. рис. С.7).

 

Пример gmdate():

echo date( "М d Y H:i:s",mktime(0,0,0,1,1,1998) );

echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );

См. также dale(), mktime(), gmmktime().

mktime_______________________________________________

Получает временную метку UNIX для даты

 

Описание

int mktime (int hour, int minute, int second, int month, int day, int year) ;

 

Пример mktime():

echo date ( "-М-d-Y", mktime (0, 0, 0, 12, 32, 1997) );

echo date( "М-d-Y",    mktime(0, 0, 0, 13, 1, 1997) );

echo date( "М-d-Y",    mktime(0, 0, 0, 1, 1, 1998) );

См. также date(), time().

 

gmmktime______________________________________________

Получает временную метку UNIX для даты в GMT

 

Описание

int gmmktime (int hour, int minute, int second, int month, int day, int year);

 

time________________________________________________________

Возвращает текущую временную метку UNIX

 

Описание

int time (void) ;

 

Возвращает текущее время, измеренное в числе секунд с эпохи Unix (1 января 1970 00:00:00 GMT).

См. также dateQ.

 

microtime____________________________________________________________

Возвращает текущую временную метку UNIX в микросекундах

 

Описание

string microtime (void);

 

Возвращает строку «msec sec», где sec — текущее время, измеренное в числе секунд с эпохи Unix (0:00:00 1 января, 1970 GMT), a msec - это часть в микросекундах. Эти функции доступны только в операци­онных системах, поддерживающих системный вызов gettimeofday().

См. также time().

 

Gettimeofday_______________________________________________

Получить текущее время

 

Описание

array gettimeofday (void)

 

Возвращает ассоциативный массив:

«sec»                           секунды;

«usee»                          микросекунды;

«minuteswest»  минуты;

«dsttime»                     тип корректировки dst.

 

gmdate______________________________________

Форматировать дату/время

 

Описание

string gmdate (string format, int timestamp)

 

gmstrftime_______________________________________

Форматировать дату/время GMT/CUT в соответствии с локальными установками

 

Описание

string gmstrftime (string format, int timestamp)

 

localtime______________________________________

Получить местное время

 

Описание

array localtime ([int timestamp [, bool is_associative]])

 

Возвращает массив (ассоциативный, если is_associative равен 1)

«tm_sec»         секунды;

«tm_min»         минуты;

«tm_hour»        часы;

«tm_mday»      дата (день месяца);

«tm_mon»        месяц;

«tm_year»        год;

«tm_wday»      день недели;

«tm_yday»       день года;

«tm isdst»         включена ли поддержка дневного времени.

 

microtime_________________________________________

Текущее время UNIX с микросекундами

 

Описание

string microtime(void);

 

time_______________________________________________

Возвращает текущее время UNIX

 

Описание

int time(void);

 

strtotime________________________________________________________________

Анализирует формат текстового фремени и переводит его во время UNIX

 

Описание

string strftime (string format [, int timestamp])

 

%a       день недели кратко;

%A      день недели полностью;

%b       месяц кратко;

%В      месяц полностью;

%с       дата и время;

%С      номер века;

%d       день месяца;

%D      эквивалентно %m/%d/%y;

%е       день месяца (от 'Г до '31');

%h       эквивалентно %Ь;

%Н      часы (до 24);

%1       часы (до 12);

%j        день года (366);

%m      месяц (от 1 до 12);

%М     минуты;

%n       переход на новую строку;

%р       обозначение времени суток 'am' или 'pm' the current locale;

%r       время с обозначениями a.m. или p.m.;

%R      время в обозначении до 24 часов;

%S      секунды;

%t        символ табуляции;

%Т      текущее время, эквивалентно %H:%M:%S;

%u       дни недели в числовом представлении, 1 — понедельник;

%U      номер недели в году;

%V      номер недели в году (ISO 8601:1988), первой неделей считается неделя, содерждащая по крайней мере 4 дня, пришедшиеся на текущий год. Диапазон от 01 до 53; %W         номер недели, первая неделя та, на которую проиходится пер­вый понедельник года;

%w      день недели, воскресенье 0;

%х       дата без времени;

%Х      время без даты;

%у       год без века;

%Y      год (полный, с веком); .

%Z      временная зона;

%%     символ '%'.

 

Пример:

setlocale ("LC_TIME", "С");

print (strftime ("%А in Finnish is "));

setlocale ("LC_TIME", "fi_FI");

print (strftime ("%A, in French "));

setlocale ("LC_TIME", "fr_CA");

print (strftime ("%A and in German "));

setlocale ("LC_TIME", "de_DE");

print (strftime ("%A.\n"));

 

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

 

 Chdir_____________________________________

Смена каталога

 

Описание

int chdir(string directory);

Изменяет текущий PHP-каталог на новый каталог с именем directory. Возвращает FALSE, если текущий каталог изменить не удалось, TRUE — если изменение каталога произведено.

 

dir__________________________________________

Читает содержание текущего каталога

 

Описание

new dir(string directory);

 

Пример с Dir():

$d = dir("/etc");

echo "Handle: ".$d->handle."<br>\n";

echo "Path: ".$d->path."<br>\n";

while($entry=$d->read()) {

echo $entry."<br>\n";

}

$d->close();

 

closedir___________________________________________

Закрыть каталог

 

Описание

void closedir(int dir_handle);

 

Закрывает поток каталога, обозначенный как dir_handle. Поток предварительно должен быть открыт финкцией opendir().

 

opendir__________________________________________

Открыть каталог

 

Описание

int opendir(string path);

 

Возвращает дескриптор (handle) каталога, который в последующем используется в closedir(), readdir(), и rewinddir() обращениях.

 

readdir____________________________________________

Чтение Данных из каталога по дескриптору (handle)

 

Описание

string readdir(int dir handle);

 

Пример. Вывод всех файлов в текущем каталоге (см рис. С. 8):

 

<?php

chdir("dll") ;

$handle=opendir('.');

echo "Directory handle: $handle\n";

echo "Files:<P>";

while ($file = readdir($handle)) {

echo "$file<p>";

}

closedir($handle);

?>

 

rewinddir______________________________________________________

Возврат к началу данных каталога по дескриптору (handle)

 

Описание

void rewinddir(int dir_handle);

 

Очищает поток каталога, обозначенный как dir_handle, возвращая в начало данных.

 

Функции XML/DOM

 

Эти функции доступны только тогда, когда РНР сконфигурирован с поддержкой библиотеки GNOME XML. Для этого необходимо включить в файл pbp.ini строку extension=php_domxml.dll.

В этом модуле определен целый ряд классов. Функции DOM XML производят анализ XML-файла и возвращают дерево его объектов с учетом их иерархии.

 

Функции xmldoc

Создает объект DOM в XML-документе

 

Описание

object xmldoc (string str)

 

Эта функция анализирует документ XML, указанный в качестве аргумента str, и возвращает объект класса «Dom document», обладаю­щий свойствами «doc» (resource), «version» (string) и «type» (long).

 

xmldocfile

Создает объект DOM из XML файла

object xmldocfile (string filename)

 

Функция осуществляет анализ XML-файла с именем filename и возвращает объект класса «Dom document», со свойствами «doc» (resource), «version» (string).

 

xmltree

Строит дерево объектов РНР на основе документа XML

object xmltree (string str)

 

Функция анализирует документ XML, указанный в str, и возвращает дерево объектов РНР в том виде, как они описаны в XML-документе.

 

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

 

Basename___________________________________

Возвращает имя файла по полному пути к файлу

 

Описание

string basename(string path);

 

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

В Windows можно использовать оба вида знака черты — нормаль­ную черту (/) и обратную черту (\). Они используются как разделители при задании пути. В других средах можно использовать только нор­мальную черту (/).

 

Пример basename():

$path = "/home/httpd/htral/index.php";

$file = basename($path) ; // $file устанавливается в "index.php" См. также dirname()

 

chgrp __________________________________________________

Изменить файловую группу, т.е. принадлежность файла

 

Описание

int chgrp (string filename, mixed group);

 

Пытается изменить группу файла filename на group.

Возвращает true при успешном завершении, в противном случае — false.

В Windows при выполнении этой функции ничего не происходит и возвращается true.

См. также chown(), chmo().

 

chmod____________________________     

Изменить режим файла

 

Описание

int chmod(string filename, int mode);

 

Пытается изменить режим файла, указанного в filename на новый режим mode.

 

Заметим, что mode не присваивает автоматически восьмиричное значение, для этого необходимо использовать префикс mode с нулем (0):

 

chmod( "/somedir/somefile", 755 );      *

// десятичный; возможно появление ошибки chmod( "/somedir/somefile", 0755 );

 // восьмиричный; корректное значение режима

 

Возвращает true при успешном завершении, в противном случае — false.

См. также chown(), chgrp().

 

chown_____________________________

Изменяет владельца файла

 

Описание

int chown(string filename, mixed user);

 

Пытается изменить владельца файла filename на пользователя user. Возвращает true при успешном завершении, в противном случае - false. В Windows ничего не выполняется и возвращается true.

См. также chown(), chmod().

 

clearstatcache              

Очистить кеш статистики файла

 

Описание

void clearstatcache(void);

 

copy_______________   

Скопировать файл

 

Описание

int copy(string source, string dest);

 

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

 

Пример сору():

if (!copy($file, $file.'.bak') ) {

print("failed to copy $file...<br>\n") ;

}

 

См. также rename().

 

dirname_________

Путь к файлу

 

Описание

string dirname(string path);

 

По строке, содержащей путь к файлу возвращает каталог, содержа­щий этот файл.

 

Пример dirnamc():

$path = "/etc/passwd";

$file = dirname ($path) ;  // $file is set to "/etc"

 

См. также basename()

 

fclose___________________________________________

Закрывает открытый указатель на файл

 

Описание

int fclose (int fp) ;

 

Указатель на файл fp закрывается. Возвращает true при удачной операции и false при ошибке. Указатель должен быть открыт и указы­вать на файл, открыть который можно с помощью fopen() или fsockopen().

 

feof__________________________________________________

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

 

Описание

int feof(int fp) ;

 

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

Указатель должен быть предварительно открыт с помощью fopen(), popen() или fsockopen().

 

fgetc_________________________

Получить символ из файла

 

Описание

string fgetc(int fp);

 

Возвращает строку, содержащую один символ, прочитанный по файловому указателю fp. При EOF возвращается false. Указатель дол­жен быть открыт с помощью fopen(), popen(), или fsockopen().

 

См. также fopen(), popen(), fsockopen(), fgets().

 

fgets___________________________

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

 

Описание

string fgets(int fp, int length);

 

Возвращает строку длиной до length, читается по одному байту из файла, указанного в fp. Чтение заканчивается, если прочитано число символов, равное length, чтение прекращается также в случае обнару­жения символа конца строки, возврата каретки или конца файла EOF. При ошибке возвращается false. Указатель должен быть открыт с помощью fopen(), рореn() или fsockopen().

 

См. также fopen(), рореn(), fgetc(), fsockopen().

 

fgetss__________________________________________________

Получает строку по указателю файла и убирает из нее ярлыки HTML

 

Описание

string fgetss(int fp, int length);

 

Отличается от fgetss() тем, что удаляет ярлыки HTML и РНР-тэги из прочитанного текста.

См. также fgets(), fopen(), fsockopen(), рореn().

 

file_______________     

Читает файл в массив

 

Описание

array file(string filename);

 

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

См. также readfile(), fopen(), рореn().

 

file_exists__________________

Проверяет существование файла

 

Описание

int file_exists(string filename);

 

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

См. также clearstatcache().

 

fileatime__________________________

Время последнего обращения к файлу

 

Описание

int fileatime(string filename);

 

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

 

filectime________________________

Время последнего изменения файла

 

Описание

int filectime(string filename);

 

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

 

filegroup_____

Группа файла

 

Описание

int filegroup(string filename);

 

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

 

fileinode______________

fileinode inode файла

 

 Описание

int fileinode(string filename);

 

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

 

filemtime_________________

Время модификации файла

Описание

int filemtime(string filename);

 

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

Fileowner_______

Владелец файла

 

Описание

int fileowner(string filename);

 

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

Fileperms_______________________

Ограничения использования файла

 

Описание

int fileperms(string filename);

 

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

 

Filesize_______

Размер файла

 

Описание

int filesize(string filename);

 

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

 

Filetype____

Тип файла

 

Описание

string filetype(string filename); Возвращает тип файла.

 

Возможные значения:

fifo;

char;

dir;

block:

link:

file;

unknown.

 

В случае ошибки возвращется false.

 

fopen____________________

Открыть файл или URL

 

Описание

int fopen(string filename, string mode);

 

Если filename начинается с указания названия протокола «http://» (без учета регистра), открывается соединение HTTP 1.0 с указанным сервером и возвращается указатель файла на начало текста ответа. Поскольку переадресация в HTTP не обрабатывается, то необходимо вставить в указание каталога завершающие слэши.

Если filename начинается с уазания названия протокола «ftp://» (без учета регистра), то откроется ftp-соединение с указанным серве­ром и возвращается указатель на искомый файл. Если сервер не поддерживает режим пассивного ftp, то данная операция завершится ошибкой. Существует возможность открытия файлов через ftp как для чтения, так и для записи (но не одновременно).

Если filename начинается иначе, то откравается файл файловой системы, и возвращается указатель на открытый файл.

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

Mode может принимать такие значения:

"r"        открыть только для чтения, помещает указатель на начало

файла;

"r+" .....открыть для чтения и для записи, помещает указатель на нача­ло файла;

"w" ..... открыть только для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не суще­ствует, создается новый файл;

"w+"…... открыть для чтения и для записи, помещает указатель на нача­ло файл

а и очищает все содержимое файла. Если файл не существует, создается новый файл;

"а"…..открыть только для записи, помещает указатель на конец фай­ла. Если файл не сществует, создается новый файл;

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

Mode может содержать символ 'b' для систем, различающих бинар­ные и текстовые файлы (не используется в Unix).

 

Пример fopen():

$fp = fopen("/home/rasmus/file.txt" , "r");

$fp = fopen("http://www.php.net/", "r");

$fp = fopen ("ftp ://user :pa;ssword@example . com/" , "w");

 

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

 

См. также fclose(), fsockopen(), popen().

 

fpassthru___________________________

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

 

 Описание

int fpassthru(int fp) ;

 

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

 

Файловый указатель должен быть открыт при помощи fopen() popen(), или fsockopen(). Для получения вывода файла целиком на stdout можно использовать функцию readfile(), при этом будет сэко­номлен один ресурс, так как не потребуется открывать файл с помо­щью fopen().

 

См. также readfile(), fopen(), popen(), fsockopen().

 

fputs________

Запись в файл

 

Описание     

int fputs(int fp, string str, int [length]);

 

Fputs() — это псевдоним fvrite(), и обе функции полностью иден­тичны. Заметим, что параметр length не является обязательным и при его отсутствии записывается вся строка str.

 

fread

Бинарное чтение файла

 

Описание

string fread(int fp, int length);

 

Fread() читает байты из файла, на который ссылается fp длиной не более length. Чтение заканчивается, когда прочитан length-байт или достигнут конец файла EOF.

 

// получить содержимое файла в строку

$filename = "/usr/local/something.txt";

$fd = fopen( $filename, "r" );

 

$contents = fread ( $fd, filesize ( $filename ) ); fclose( $fd ) ;

 

См. также fwrite(), fopen(), fsockopen(), popeti(), fgets(), fgetss(), file(), fpassthru().

 

fseek

Поиск в файле

 

Описание

int fseek(int fp, int offset);

 

Для файла fp будет произведена установка внутреннего указателя с отступом на offset-байт. Эквивалентно вызову fseek( fp, offset, SEEK_SET) в языке С. При удачном выполнении возвращает 0, в противном случае возврщается — 1, при этом поиск после EOF не рассматривается как ошибка. Не используется для файловых указателей, возвращенных функцией fopenQ при использовании форматов «http://» или «ftp://».

 

См. также ftell(), rewind().

 

ftell    

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

 

Описание

int ftell (int fp) ;

 

Возвращает позицию указателя в файле, на который ссылается fp, т.е. смещение в потоке файла. При возникновении ошибки возвраща­ется false. Файловый указатель должен быть открыт при помощи fopen() или popen().

См. также fopen(), popen(), fseek(), rewind().

 

fwrite

Бинарная запись в файл

 

Описание

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

 

Fwrite() записывает содержимое string в файловый поток, указан­ный fp. Если аргумент length присутствует, запись останавливается после записи байта с номером length, или после записи всей строки string. Заметим, что если есть аргумент length, то конфигурационные опции magic_quotes_runtime игнорируются и никакие знаки из string не удаляются.

 

См. также fread(), fopen(), fsockopen(), popen(), fputs().

 

is_dir

Проверка каталога

 

Описание

bool is_dir(string filename);

 

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

См. также is_file(), isjink().

 

is_executable

Файл относится к классу исполняемых

 

Описание

bool is_executable(string filename);

 

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

 

См. также is_file(), is_link().

 

is_file

Проверка файла

 

Описание

bool is_file(string filename);

 

Возвращает true, если filename существует и является файлом. См. также is_dir(), is_link().

 

is link

Проверка файла ссылок

 

Описание

bool is_link(string filename);

 

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

См. также is_dir(), is_file().

 

is readable

Проверка читаемых классов

 

Описание

bool is_readable(string filename);

 

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

См. также is_writeable().

 

is writeable

Проверка записываемых файлов (тех, которые можно изменить)

 

Описание

bool is_readable(string filename);

 

Возвращает true, если файл существует и доступен для записи.

См. также is_readable().

 

link

Создать ссылку

 

Описание

int link(string target, string link);

 

Link() создает ссылку.

См. также symlink(), readlink(), linkinfo().

 

linkinfo

Информация о ссылке

 

 Описание

int linkinfo(string path);

 

Linkinfo() возвращает поле st_dev из UNIX С-структуры stat, воз­вращенной системным вызовом lstat. Эта функция используется для проверки того, существует ли ссылка. Возвращает 0 или FALSE в случае ошибки.

 

См. также symlink(), link(), readlink().

 

mkdir

Создать каталог

 

Описание

int mkdir(string pathname, int mode);

 

Создает каталог, указанный в pathname.

mkdir("/path/to/my/dir", 0700);

 

Возвращает true при успешном выполнении и false при ошибке.

См. также rmdir().

 

pclose

Закрывает файловый указатель

 

 Описание

int pclose(int fp) ;

Закрывает файловый указатель, открытый с помощью рореn().

См. также рореn().

 

рореn

Открыть файловый указатель

 

Описание

int рореn(string command, string mode);

 

Возвращает файловый указатель, идентичный возвращаемому фун­кцией fopen(), однако этот указатель может использоваться только для чтения или только для записи и в дальнейшем должен быть закрыт с помощью функции pclose(). Этот указатель можно использовать cfgets(), fgetss() и fputs(). При возникновении ошибки возвращет false.

$fp = рореn( "/bin/Is", "г" );

См. также pclose().

 

readfile

Вывод файла

 

Описание

int readfile(string filename);

 

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

Если filename начинается с «http://» (без учета регистра), открыва­ется соединение HTTP 1.0 к указанному серверу и текст ответа выво­дится на стандартное устройство вывода.

Если filename начинается с «ftp://» (без учета регистра), открывает­ся ftp-соединение с указанным сервером и файл ответа выводится на стандартное устройство вывода. Если сервер не поддерживает режим пассивного ftp, этот вызов завершится ошибкой.

Если filename начинается иначе, то будет открыт файл файловой системы и его ссодержимое выведется на стандартное устройство вы­вода.

 

См. также fpassthru(), file(), fopen(), include(), require(), virtual().

 

readlink

Цель символической ссылки

 

Описание

 

string readlink(string path);

 

Readlink() работает аналогично функции языка С readlink и возвра­щает содержимое символической ссылки path или 0 в случае ошибки.

 

См. также symlink(), readlink(), linkinfo().

 

rename

Переименовать файл

 

Описание

int rename(string oldname, string newname);

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

 

rewind

Обновляет положение внутреннего указателя, возвращая его в начало файла

 

Описание

int rewind (int fp) ;

 

Позиционирует файловый указатель для fp на начало потока файла. При возникновении ошибки возвращается 0. Файловый указатель дол­жен быть открыт при помощи функции fopen(). См. также fseek(), ftell().

 

rmdir

Удалить каталог

 

Описание

int rmdir(string dirname);

 

Пытается удалить каталог. Каталог должен быть пустым. При воз­никновении ошибки возвращается 0.

См, также mkdir().

 

stat     

Информация о файле

 

Описание

array stat(string filename);

 

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

1)     устройство;

2)     inode;

3)     номер ссылки;

4)     id пользователя или владельца;

5)     id группы владельцев;

6)     тип устройства inode *;

7)     размер в байтах;

8)     время последнего доступа;

9)     время последней модификации;

10) время последнего изменения;

11) размер блока для I/O файловой системы *;

12) количество занятых блоков.

 

* — только для систем, поддерживающих тип st_blksize, в других системах (т.е. Windows) возвращается — 1.

 

Istat   

Информация о файле или символической ссылке

 

 Описание

array lstat(string filename);

Возвращает информацию о файле или символической ссылке filename. Эта функция идентична stat(), но если filename — это симво­лическая ссылка, то возвращается статус символической ссылки, а не статус файла, на который указывает данная ссылка.

Возвращает массив статистическои информации со следующими элементами:

1)     устройство;

2)     inode;

3)     число ссылок;

4)     id пользователя или, владельца;

5)     id группы владельцев;

6)     тип устройства, если inode — устройство *;

7)     размер в байтах;

8)     время последнего доступа;

9)     время последней модификации;

10) время последнего изменения;

11) размер болка для I/O файловой системы *;

12)  количество занятых блоков.

 

* — только для систем, поддерживающих тип st_blksize, в других системах (т.е. Windows) возвращается —1.

 

symlink                     

Создать символическую ссылку

 

Описание

int symlink(string target, string link);

 

Symlink() создает символическую ссылку, указывающую на суще­ствующий ресурс target с именем link.

 

См. также link(), readlink(), linkinfo().

 

tempnam       

Создать имя файла

 

Описание

string tempnam(string dir, string prefix);

 

Создает уникальное имя файла в указанном каталоге. Если каталог не существует, tempnam() может сгенерировать имя файла во времен­ном каталоге системы.

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

 

Пример tempnam():

$tmpfname = tempnam( "/tmp", "FOO" );

 

touch

Установить время модификации файла

 

Описание

int touch(string filename, int time);

 

Пытается установить время модификации файла filename в виде значения time. Если опция time отсутствует, то используется текущее время. Если файл не существует, то он создается. Возвращает true при успешном выполнении, в обратном случае — false, •

 

umask        

Изменить маску

 

Описание

int umask(int mask);

 

Umask() устанавливает текущую umask РНР в mask & 0777 и возвра­щает старую umask. Umask() без аргументов возвращает текущую маску.

 

unlink

Удалить файл

 

Описание

int unlink(string filename);

 

Удаляет файл filename. Аналогично функции Unix С unlink(). Воз­вращает 0 или FALSE при ошибке.

 

См. также rmdir() для удаления директорий.

 

delete

 

Описание

void delete (string file)

 

diskfreespace

Возвращает количество свободного места в директории

 

Описание

float diskfreespace (string directory)

 

Пример:

$df = diskfreespace ("/") ;        // $df contains the number of bytes

// available on "/"

См. также рис. С.9.

 

fgetcsv

Получает строку из указателя строки

 

Описание

array fgetcsv (int fp, int length [, string delimiter])

 

Пример:

$ row = 1;

$fp = fopen ("test.csv","r");

 while ($data = fgetcsv ($fp, 1000, ",")) {

$num = count ($data);

print "<p> $num fields in line $row: <br>";

$row++;

for ($c=0; $c<$num; $c++) {

 print $data[$cj. "<br>";

}

}

fclose ($fp);

 

flock   

Запирает файл

 

Описание

bool flock (int fp, int operation [, int wouldblock])

 

Operation может принимать значения:

-         LOCK_SH 1 (чтение);

-         LOCK_EX 2 (запись);

-         LOCK_UX 3 (освободить);

-         LOCK_NB 4 (не блокировать).

 

fscanf

Анализирует содержимое файла в соответствии с указанным форматом

 

Описание

mixed fscanf (int handle, string format [, string varl.

Функция похожа на sscanf(),

 

См. также fread(), fgets(), fgetss(), sscanf(), printf(), sprint().

 

fstat   

Получает информацию о файле

 

Описание

array fstat (int fp)

 

Возвращает массив со следующими элементами:

1)     устройство device;

2)     inode;

3)     количество ссылок;

4)     идентификатор пользователя id;

5)     идентификатор группы;

6)     тип устройства;

7)     размер в байтах;

8) время последнего доступа;

9) время последней модификации;

10) время последнего изменения;

11) размер блока ввода-вывода;

12) количество блоков.

 

ftell    

Сообщает указателю положение для чтения или записи

 

Описание

int ftell (int fp)

 

ftruncate

Обрезает файл в соответствии с заданной величиной

 

Описание

int ftruncate (int fp, int size)

 

set_file_buffer

Задает размер буфера для данного указателя файла

 

Описание

int set_file_buffer (int fp, int buffer)

 

realpath

Возвращает путь к файлу

 

Описание

string realpath (string path)

 

Пример:

$real_path = realpath ("../../index.php");

 

tmpfile

Создает временный файл

 

Описание

int tmpfile (void)

 

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

См. также tempnam().

 

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

 

При работе с модулем FTP определены константы FTP_ASCII и FTP_BINARY.

 

ftp_connect

Создает и возвращает поток FTP,при возникновении ошибки возвращает false

 

Описание

int ftp_connect (string host [, int port])

 

Функция ftp_connect() открывает FTP-соединение с хостом host. Параметр порта port не является обязательным. По умолчанию (или если задано значение 0) используется порт 21.

 

ftp_login

Передает имя и пароль

 

Описание

int ftp_login (int ftp_stream, string username, string password)

 

 При удачном выполнении возвращает true, в противном случае — false.

 

ftp _pwd

Возвращает имя текущего директория

 

Описание

int ftp_pwd (int ftp_stream)

 

Возвращает текущий директорий или false при возникновении ошибки,

 

ftp_cdup

Родительский директорий

 

Описание

int ftp_cdup (int ftp_stream)

 

При удачной смене каталога возвращает true, при ошибке — false. Осуществляет переход в файловой системе на один каталог вверх.

 

ftp_chdir

Изменяет текущий директорий ftp-сервера

 

Описание

int ftp_chdir (int ftp_stream, string directory)

 

Осуществляет переход к указанному каталогу directory. Возвращает true, при возникновении ошибки возвращает false.

 

ftp_mkdir

Создает каталог

 

 Описание

string ftp_mkdir (int ftp_stream, string directory)

 

Создает новый каталог на ftp-сервере (каталог directory). Возвраща­ет true, при возникновении ошибки — false.

 

ftp_rmdir

Удаляет директорий

 

Описание

int ftp_rmdir (int ftp_stream, string directory)

 

Удаляет директорий directory. При удачном выполнении возвраща­ет true, при возникновении ошибки возвращает false.

 

ftp_nlist

Возвращает список файлов текущего каталога

 

Описание

int ftp_nlist (int ftp_stream, string directory)

 

Возвращает массив имен фалов, при возникновении ошибки воз­вращает false.

 

ftp_rawlist

Возвращает детальный список файлов указанного каталога

 

Описание

int ftp_rawlist (int ftp_stream, string directory)

 

Функция ftp_rawlist() выполняет комантду FTP LIST и возвращает массив, каждый элемент которого представляет собой строку.

 

ftp_systype

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

 

Описание

int ftp_systype (int ftp_stream)

 

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

 

ftp _pasv

Включает и выключает пассивный режим

 

Описание

int ftp_pasv (int ftp_stream, int pasv)

 

Функция ftp_pasv() включает пассивный режим в том случае, если параметр pasv имеет значение true — пассивный метод выключен, если значение pasv равно false. В пассивном режиме связь инициализирует­ся клиентом, а не сервером. При удачном выполнении функция воз­вращает true, при возникновении ошибки — false.

 

ftp_get       

Загружает файл с ftp-сервера

 

Описание

int ftp_get (int ftp_stream, string local_file, string remote_file, int mode)

 

Функция ftp_get() получает файл remote_file с ftp-сервера и сохра­няет его в виде локального файла local_file. Режим mode должен иметь значение FTP_ASCII или FTP_BINARY. Возвращает true при благо­приятном выполнении, при возникновении ошибки — false.

 

ftp fget       

Загружает файл с ftp-сервера и сохраняет его в виде открытого файла

 

Описание

int ftp_fget (int ftp_stream, int fp, string remote_file, int mode)

 

Функция ftp_fget() получает файл remote_file с ftp-сервера и запи­сывает его в указатель fp. Режим устанавливается в виде FTP_ASCII или FTP_BINARY. При успешном выполнении возвращает true, при возникновении ошибки возвращает false.

 

ftp _put

Передает локальный файл ftp-серверу

 

Описание

int ftp_put (int ftp_stream, string remote_file, string local_file, int mode)

 

Функция ftp_put() передает локальный файл local_file ftp-серверу и сохраняет на нем в виде файла с именем remote_file. Режим mode должен бьггь установлен в виде FTP_ASCII или FTP_BINARY. Возвращает true при удачном выполнении, при возникновении ошибки — false.

 

ftp_fput      

Передает открытый файл ftp-cepвepy

 

Описание

int ftp_fput (int ftp_stream, string remote_file, int fp, int mode)

 

Функция ftp_put() загружает локальный файл из указателяч fp (до достижения конца файла) на FTP-сервер и сохраняет его там под име­нем remote_file. Режим передачи должен быть установлен FTP_ASCII или FTP_BINARY. Возвращает true при благополучном выполнении, при наличии ошибок — false.

 

ftp_size

Возвращает размер указанного файла

 

Описание

int ftp_size (int ftp_stream, string remote_file)

 

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

 

ftp_mdtm

Возвращает время последнего изменения указанного файла

 

Описание

int ftp_mdtm (int ftp_stream, string remote_file)

 

Функция ftp_mdtm() определяет время последнего изменения файла и возвращает это время. В случае возникновения ошибки будет возвра­щено — 1.

 

ftp_rename

Изменяет имя файла на ftp-сервере

 

Описание

int ftp_rename (int ftp_stream, string from, string to)

 

Функция ftp_rename() изменяет имя файла from и устанавливает новое имя to. При удачном выполнении возвращает true, при возник­новении ошибки — false.

 

ftp_delete

Удаляет файл с ftp-сервера

 

Описание

int ftp_delete (int ftp_stream, string path)

 

Функция ftp_delete() удаляет файл path и возвращает true в случае удачного выполнения, при возникновении ошибки — false.

 

ftp_site

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

 

Описание

int ftp_site (int ftp_stream, string cmd)

 

Функция ftp_site() посылает команду cmd ftp-серверу. Набор допус­тимых команд зависит от типа сервера. При удачном выполнении возвращает true, при возникновении ошибки — false.

ftp_quit

Закрывает связь с ftp-сервером

 

Описание

int ftp quit (int ftp stream)

 

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

 

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

 

header           

Посылает заголовок HTTP

 

Описание

int header (string string)

 

Функция Header() используется в начале HTML-файла для созда­ния HTTP-заголовка. Эта функция должна быть вызвана перед тем, как будут отправлены данные, такие как ярлыки и текст HTML-файла. Использование таких функций как include() приводит к тому, что вывод данных может быть осуществлен перед тем, как будет сформи­рован заголовок при помощи функции' header().

Существует два специальных случая вызова функции header. Пер­вый вариант — указание места «Location». Такой заголовок не только будет послан броузеру, но и изменит статус сервера Apache (REDIRECT).

 

header ("Location: http://www.php.net");

/* Перенаправляет броузер на сайт РНР */ exit ;

/* Убедитесь в том, что расположенный далее код не будет выполнен до того, как произойдет перенаправление броузера. */

 

Второй случай заголовков — заголовки, начинающиеся со строки «HTTP/» (без учета регистра). Например, если при ненахождении запрошенного ресурса можно обратиться к функции так:

 

header ("НТТР/1.0 404 Not Found");

 

Заголовок может содержать информации о кешировании страниц. Кеширование можно выключить, использовав, например, такой заго­ловок (приведено несколько вариантов):

 

header ("Expires: Mon, 16 Apr 2001 05:00:00 GMT");

// Это прошедшая дата

header ("Last-Modified:' ". gmdate("D, d M Y H:i:-s"). " GMT");

 // страница изменена в момент загрузки (всегда изменена) header ("Cache-Control: no-cache, must-revalidate");

// используется в HTTP/1.1 header ("Pragma: no-cache");

// используется в HTTP/1.0

 

См. также headers sent().

 

header_sent

Возвращает значение true, если заголовок был послан

 

Описание

boolean headers_sent (void) См. также header().

 

setcookie

Посылает cookie

 

Описание

int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

 

Функция должна быть выполнена перед тем, как будет осуществлен вывод данных перед ярлыками <html> и <head>.

Все аргументы, за исключением name, являются необязательными.

 Пример setcookie():

setcookie ("TestCookie", "Test Value");

setcookie ("TestCookie", $value,time()+3600) ; /* истекает через час */

setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

 

Пример удаления cookies предыдущего примера.

Еще пример setcookie():

setcookie ("TestCookie");

setcookie ("TestCookie", "", time());

setcookie ("TestCookie", "", time(), "/-rasmus/", ".utoronto.ca", 1);

 

Содержимое cookies можно посмотреть таким способом:

echo $TestCookie;

echo $HTTP_COOKIE_VARS["TestCookie"] ;

 

Можно создать массив cookies:

setcookie ("cookie[three]", "cookiethree");

setcookie ("cookie[two]", "cookietwo");

setcookie ("cookie[one]", "cookieone"); if (isset ($cookie)) {

while (list ($name, $value) = each ($cookie)) {

echo "$name == $value<br>\n";

}

}

 

Для получения подробной информации о работе с cookies смотрите http://www.netscape.com/newsref/std/cookie_spec.html.

 

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

 

Эти функции доступны при наличии библиотеки GD и по­зволяют работать с изображениями JPEG GIF, PNG, SWF (см. http://www.boutell.com/gd/).

Формат изображений, с которыми можно работать, зависит от версии библиотеки gd. Версии, старше gd-1.6, поддерживают gif, но не поддерживают png, в то время как версии моложе gd-1.6 поддерживают png, но не поддерживают gif.

 

GetlmageSize

Возвращает размер картинок в формате GIF, JPEG, PNG, SWF

Описание

array getimagesize (string filename [array imageinfo])

 

Функция определяет размер изображений в формате GIF, JPG, PNG, SWF и возвращает тип файла, размеры по вертикали и горизонта­ли. Возвращает 4 элемента: элемент 0 — ширина рисунка в пикселях, 1 — высота рисунка, 2 — флаг типа рисунка (1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF), 3 — текстовая строка типа «height=xxx width=xxx», такая строка может быть помещена непосредственно в ярлык <IMG>.

 

Пример GetlmageSize:

<?php $size = GetlmageSize ("img/flag.jpg"); ?>

<IMG SRC="img/flag.jpg" <?php echo $size[3]; ?>

 

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

 

Пример:

<?php

$size = GetlmageSize ("testimg.jpg",&$info);

if (isset ($info["APP13"])) {

$iptc = iptcparse ($info["APP13"] ) ;

var dump ($iptc),;

}

?>

 

ImageArc

Рисует фрагмент эллипса

 

Описание

int ImageArc (int im, int cx, int cy, int w, int h, int s, int e, int col)

 

С помощью этой функции можно нарисовать часть эллипса с центром в сх, су (верхний правый угол имеет координаты 0, 0) в картинке im. W и h — это ширина и высота эллипса соответственно, параметры s и е — это начальная и конечная точки эллипса (части эллипса) в градусах.

 

ImageChar

Горизонтальное рисование символа

 

Описание

int imagechar (int im, int font, int x, int y, string c, int col)

 

Функция ImageChar() рисует первый символ строки в рисунке im, расположенную верхним левым углом в точке с координатами х, у цветом, указанным в виде параметра col. Если в качестве параметра font используются числа 1, 2, 3, 4 и 5, то используется встроенный фонт, чем больше число, тем крупнее изображение рисуемого символа.

См. также imageloadfont().

 

ImageCharUp      

Вертикальное рисование символа

 

Описание

int imagecharup (int im, int font, int x, int y, string c, int col)

 

Функция ImageCharUp() рисует первый символ из строки с, распо­лагая его вертикально, в рисунке im в положении с коорждинатами х и у с цветом, указанным в col. В качестве font указывается значения от 1 до 5 (целые числа). Чем больше число, тем крупнее символ.

См. также imageloadfont().

 

ImageColorAllocate

Определить (задать) цвет рисунка

 

Описание

int imagecolorallocate (int im, int red, int green, int blue)

 

Функция ImageColorAllocate() возвращает идентификатор цвета для каждого из цветов, используемых в рисунке. Цвет задается в формате RGB. Значение аргумента im может быть получено при помощи функ­ции imagecreate() (она возвращает значение именно этого аргумента. Функцию ImageColorAllocate() необходимо вызывать для того, чтобы создать все цвета, которые будут использованы в данном рисунке im.

$white = ImageColorAllocate ($im, 255, 255, 255);

$black = ImageColorAllocate ($im, 0, 0, 0) ;

 

 

ImageColorDeAllocate

Убрать цвет рисунка

 

Описание                 

int imagecolordeallocate (int im, int index)

 

Функция Image ColorDeAllocate() удаляет цвет, который предвари­тельно был определен при помощи функции ImageColorAllocate().

 

$white = ImageColorAllocate($im, 255, 255, 255);

ImageColorDeAllocate($im, $white);

 

ImageColorAt

Получить цвет данного пикселя

 

Описание

int imagecolorat (int im, int x, int y)

 

Возвращает цвет пикселя с указанными координаты для изображе­ния im.

 

См. также imagecolorset(), imagecolorsforindex().

 

ImageColorClosest

Получить цвет, ближайший к указанному

 

Описание

int imagecolorclosest (int im, int red, int green, int blue)

 

Возвращает цвет, ближайщий к указанному, в виде параметров функции, из набора цветов, определенных для рисунка im. Расстояние до цвета определяется как расстояние между точками в трехмерном пространстве с координатами RGB.

См. также imagecolorexact().

 

ImageColorExact

Возвращает имя цвета

 

Описание

int imagecolorexact (int im, int red, int green, int blue)

 

Возвращает имя цвета по значениям RGB для рисунка im. Если указанный цвет в риснуке не определен, то возвращает —1.

См. также imagecolorclosest().

 

ImageColorResolve

Получить индекс цвета или индекс ближайшего цвета

Описание

int imagecolorresolve (int im, int red, int green, int blue)

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

См. также imagecolorclosest().

 

ImageGammaCorrect

Применить коррекцию цвета в рисунке GD

Описание

int imagegammacorrect (int im, double inputgamma, double outputgamma)

 

Функция ImageGammaCorrect() использует коррекцию гаммы в ри­сунке im на основе параметров inputgamma и outputgamma.

 

ImageColorSet

Задает цвет

 

Описание

bool imagecolorset (int im, int index, int red, int green, int blue)

 

Задает цвет для индекса цвета в наборе цветов. См. также imagecolorat().

 

ImageColorsForlndex

Определяет цвет по индексу цвета

 

Описание

array imagecolorsforindex (int im, int index)

Возвращает ассоциативный массив (с элементами red, green, blue) для указанного цветового индекса.

См. также imagecolorat(), imagecolorexact().

 

ImageColorsTotal

Определяет количество цветов, используемых в рисунке

 

Описание

int imagecolorstotal (int im)

 

Возвращает количество цветов рисунка im.

См. также imagecolorat(), imagecolorsforindex().

 

ImageColorTransparent

Делает цвет прозрачным

 

Описание

int imagecolortransparent (int im [, int col])

 

Функция ImageColorTransparent() задает цвет col в рисунке im как прозрачный. Col — это знгачение, возвращаемое функцией ImageColorAllocate(). Функция возвращает идентификатор прозрачного цвета.

 

ImageCopy

Копировать часть рисунка

 

Описание

int ImageCopy (int dst_im, int src_im, int dst_x, int dst__y,

int src_x, int src_y, int src_w, int src_h)

 

Копировать часть рисунка src_im в рисунок dst_im, фрагмент ри­сунка начинается в точке с координатами src_x, src_y, ширина фраг­мента src_w, высота фрагмента src_h. Копируемый фрагмент будет помещен в новый рисунок в положение, заданное при помощи коор­динат dst_x и dst_y.

 

ImageCopyResized

Копировать и масштабировать фрагмент рисунка

 

Описание

int imagecopyresized (int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

 

Функция ImageCopyResized() копирует прямоугольный фрагмент ри­сунка в другой рисунок. Dst_im — рисунок, в который производится копирование, src_im — рисунок, из которого производится копирова­ние. Если ширина и высота исходного фрагмента отличаются от шири­ны и высоты конечного фрагмента, по производится необходимое масштабирование. Эта функция может быть испльзована для осуще­ствления копирования фрагмента внутри одного и того же рисунка. Однако, если копируемый фрагмент накладывается на область, кото­рая хотя бы частично пересекается с исходной областью, то результат может быть непредсказуемым.

 

ImageCreate

Создает новый рисунок

 

Описание

int imagecreate (int x_size, int y_size)

 

Функция ImageCreate() возвращает идентификатор рисунка (пусто­го), размеры которого определяются параметрами x_size и y_size.

Пример:

<?php

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

$im = @ImageCreate (50, 100)

or die ("Cannot Initialize new GD image stream");

$background_color = ImageColorAllocate ($im, 255, 255, 255) ;

$text_color = ImageColorAllocate ($im, 233, 14, 91);

ImageString ($im, 1, 5, 5, "Простая текстовая строка", $text_color);

ImagePng ($im);

?>

 

ImageCreateFromGIF

Создать новый рисунок из файла или URL

 

Описание

int imagecreatefromgif (string filename)

 

Функция ImageCreateFromGif() возвращает идентификатор для вновь созданного рисунка.

 

ImageCreateFromJPEG

Создает новый рисунок из фалйа или URL

 

Описание

int imagecreatefromjpeg (string filename)

 

Функция ImageCreateFromJPEG() возвращает идентификатор ново­го рисунка (в случае ошибки — пустую строку).

 

Пример:

function LoadJpeg ($imgname) {

$im = @ImageCreateFromJPEG ($imgname); /* Attempt to open */

if (! $im) { /* See if it failed */

$im = ImageCreate (150, 30); /* Create a blank image */

$bgc = ImageColorAllocate ($im, 255, 255, 255);

$tc = ImageColorAllocate ($im, 0, 0, 0);

ImageFilledp.ectangle ($im, 0, 0, 150, 30, $bgc) ;

/* Output an errmsg */

ImageString ($im, 1, 5, 5, "Error loading $imgname", $tc);

}

return $im;

}

 

ImageCreateFromPNG

Создает новый рисунок из файла или URL

Описание

 

int imagecreatefrompng (string filename)

Функция ImageCreateFromPNG() возвращает идентификатор рисун­ка или пустую строку (в случае ошибки).

 

Пример:

function LoadPNG ($imgname) {

$im = @ImageCreateFromPNG ($imgname); /* Attempt to open */

if (!$im) ( /* See if it failed */

$im = ImageCreate (150, 30); /* Create a blank image */

$bgc = ImageColorAllocate ($im, 255, 255, 255);

$tc = ImageColorAllocate ($im, 0, 0, 0) ;

ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);

/* Output an errmsg */

ImageString ($im, 1, 5, 5, "Error loading $imgname", $tc);      

}         

return $im;

}

 

ImageDashedLine

Рисует пунктирную линию

 

Описание

int imagedashedline (int im, int xl, int yl, int x2, int y2, int

col)

 

Функция ImageDashedLine() рисует пунктирную линию из точки xl, yl к точке х2, у2 в рисунке im цветом col.

 

См. также ImageLine().

 

ImageDestroy

Уничтожает рисунок

 

Описание

int imagedestroy (int im)

 

Функция ImageDestroy() уничтожает рисунок im и освобождает память

 

ImageFill

Заливка цветом

 

Описание

int imagefill (int im, int x, int y, int col)

 

Функция ImageFill() производит заливку цветом col в рисунке im, заливка начинается в точке с координатами х, у.

 

ImageFilledPolygon

Рисует закрашенный многоугольник

 

 Описание

int imagefilledpolygon (int im, array points, int num_points, int col)

 

Функция ImageFilledPolygon() создает закрашенный многоугольник в рисунке im. Массив Points содержит набор координат многоугольни­ка, те. points[0] = х0, points[l] = у0, points[2] = xl, points[3] = у1 и т.д. Num points — общее количество вершин многоугольника.

 

ImageFilledRectangle

Рисует закрашенный прямоугольник

 

Описание

int imagefilledrectangle (int im, int xl, int yl, int x2, int y2, int col)

 

Функция ImageFilledRectangle() создает прямоугольник цвета col в рисунке im с верхней левой координатой xl, yl и правой нижней координатой х2, у2.

 

ImageFillToBorder        

Заливка заданным цветом

 

Описание

int imagefilltoborder (int im, int x, int у, int border, int col)

 

Функция ImageFillToBorder() осуществляет заливку с цветом грани­цы, соответствующим border. Начальная точка заливки определяется координатами х, у, основной цвет заливки — col.

 

ImageFontHeight

Определяет размер фонта

 

Описание

int imagefontheight (int font)

 

Возвращает высоту символов указанного фонта. См. также ImageFontWidth(), ImageLoadFont().

 

ImageFontWidth

Определяет ширину фонта

 

Описание

int imagefontwidth (int font)

 

Возвращает ширину фонта font в пикеселях.

См. также ImageFontHeight(), ImageLoadFont().

 

ImageFilledRectangle

Рисует закрашенный прямоугольник

 

Описание

int imagefilledrectangle (int im, int xl, int yl, int x2, int y2, int col)

 

Функция ImageFilledRectangle() создает прямоугольник цвета col в рисунке im с верхней левой координатой xl, yl и правой нижней координатой х2, у2.

 

ImageFillToBorder        

Заливка заданным цветом

 

Описание

int imagefilltoborder (int im, int x, int у, int border, int col)

 

Функция ImageFillToBorder() осуществляет заливку с цветом грани­цы, соответствующим border. Начальная точка заливки определяется координатами х, у, основной цвет заливки — col.

 

ImageFontHeight

Определяет размер фонта

 

Описание

int imagefontheight (int font)

 

Возвращает высоту символов указанного фонта.

См. также ImageFontWidth(), ImageLoadFont().

 

ImageFontWidth

Определяет ширину фонта

 

Описание

int imagefontwidth (int font)

 

Возвращает ширину фонта font в пикеселях.

См. также ImageFontHeight(), ImageLoadFont().

 

ImageGIF

Выводит рисунок броузеру или в файл

 

Описание

int imagegif (int im [, string filename])

 

Функция ImageGIF() создает файл GIF с указанным именем im. Аргумент im — это значение, возвращаемое функцией imagecreate().

Формат рисунка — GIF87a или, если использована функция для задания прозрачных Цветова ImageColorTransparent(), то GIF89a.

Имя файла указывать необязательно. Если имя не указано, то поток данных рисунка направляется броузеру. Для того, чтобы такой поток был правильно обработан броузером, необходимо воспользо­ваться функцией header() и указать тип посылаемых данных в виде image/gif. Таким образом можно создать скрипт, который выводит изображение непосредственно.

 

ImagePNG

Выводит рисунок PNG в файл или передает его броузеру

 

Описание

int imagepng (int im [, string filename])

Функция ImagePng() выводит поток рисунка im в файл. Если имя файла не указано, то поток будет направлен непосредственно броузеру (на стандартное устройство вывода).

<?php

$im = ImageCreateFromPng("test.png");

ImagePng($im);

?>

 

ImageJPEG

Выводит рисунок jpeg в файл или передает броузеру

 

Описание

int imagejpeg (int im [, string filename [, int quality]])

 

Функция ImageJPEG() создает файл с рисунком JPEG для картинки im.

Если имя файла не указано, то поток данных будет направлен непосредственно броузеру. Чтобы броузер смог правильно обработать полученные данные, необходимо предварительно указать тип посылае­мых данных (image/jpeg), используя функцию header().

 

Imagelnterlace

Включает и выключает режим interlace

 

Описание

int imageinterlace (int im [, int interlace])

 

Функция Imagelnterlace() включает или выключает бит interlacer.

 

ImageLine

Рисует линию

 

Описание

int imageline (int im, int xl, int yl, int x2, int y2, int col)

 

Функция ImageLine() рисует линию из точки xl, yl к точке х2, у2 цветом col.

См. также ImageCreate(), ImageColorAllocate().

 

ImageLoadFont

Загружает новый фонт

 

Описание

int imageloadfont (string file)

 

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

 

ImagePolygon

Рисует многоугольник

 

Описание

int imagepolygon (int im, array points, int num_points, int col) J

 

Функция ImagePolygon() создает многоугольник в рисунке im. Массив Points содержит координаты вершин прямоугольника, т.е. points[0] = х0, points[l] = у0, points[2] = xl, points[3] = yl. Num_points — это общее количество вершин прямоугольника.

См. также imagecreate().

 

ImagePSBBox

Создает рамку

 

Описание

array imagepsbbox (string text, int font, int size [, int space [, int tightness [, float angle]]])

 

Size                 в пикселях.

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

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

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

Angle              в градусах.

 

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

            0          нижняя левая х-координата;

            нижняя левая координата у;

            2          верхняя правая координата х;

            3          верхняя правая координата у.

См. также imagepstext().

 

ImagePSEncodeFont     

Изменяет вектор кодировки символов

Описание

int imagepsencodefont (string encodingfile)

 

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

 

ImagePSFreeFont

Освобождает память, отведенную под фонт PostScript Туре 1

 

Описание

void imagepsfreefont (int fontindex)

 

См. также ImagePSLoadFontQ.

 

ImagePSLoadFont

Загружает из файла фонт PostScript Type 1

 

Описание

int imagepsloadfont (string filename)

 

Возвращает индекс фонта.

См. также ImagePSFreeFont().

 

ImagePsExtendFont

Сжимает или расширяет фонт

 

Описание

bool imagepsextendfont (int font_index, double extend)

 

Расширяет или сжимает фонт font_index, в соответствии с масшта­бом, указанным в виде значения extend.

 

ImagePsSlantFont

Изменяет фонт в соответствии с параметром

 

Описание

bool imagepsslantfont (int font_index, double slant]

 

Величина изменения задается параметром slant.

 

ImagePSText

Пишет текст поверх рисунка, используя фонт PostScript Туре1

 

Описание

array imagepstext (int image, string text, int font, int size, int foreground, int background, int x, int у [, int space [, int tightness [, float angle [, int antialias steps]]]])

 

 

 

 

Size                              в пикселях.

Foreground                  цвет текста.

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

Координаты х, у       определяют начало текста (положение первого сим­вола).

Space                          параметр расстояния между символами. Может быть

отрицательным, так как прибавляется к величине, установленной по умолчанию.

Tightness                      количество пробелов между символами. Может быть отрицательным.

Angle                           угол в градусах.

Antialias_steps количество цветов от 4 до 16.

 

Параметры space и tightness выражается в количестве единиц. 1 единица равна 1/1000 от em-square.

 

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

            0          нижняя левая х-координата;

            нижняя левая координата у;

            2          верхняя правая координата х;

            3          верхняя правая координата у.

См. также imagepsbbox().

 

ImageRectangle

Рисовать прямоугольник

 

Описание

int imagerectangle (int im, int xl, int yl, int x2, int y2, int col)

 

Функция ImageRectangle() рисует прямоугольник цветом col, верх­няя левая координата xl, yl, правая нижняя координата х2, у2.

 

ImageSetPixel

Рисует один пиксель

 

Описание

int imagesetpixel (int im, int x, int y, int col)

 

Функция ImageSetPixel() рисует пиксель с координатами х, у (вер­хний левый угол соответствует 0, 0) в картинке im цветом col.

 

См. также ImageCreate(), ImageColorAllocate().

 

ImageString

Рисует строку, расположенную горизонтально

 

Описание

int imagestring (int im, int font, int x, int y, string s, int col)

 

Функция ImageString() пишет строку s в рисунке im с координатами х, у цветом col.. В случае параметров фонтов из набора 1, 2, 3, 4 и 5, используется встроенный фонт.

См. также ImageLoadFont().

 

ImageStringUp

Рисует строку вертикально

 

Описание

int imagestringup (int im, int font, int x, int y, string s, int col)

Функция ImageStringUp() рисует строку s вертикально в рисунке im с координатами х, у и цветом col. Параметр фонта из набора 1, 2, 3, 4 и 5 соответствует встроенным фонтам.

 

См. также ImageLoadFont().

 

ImageSX

Получить ширину рисунка

 

Описание

int imagesx (int im)

 

Функция ImageSY() возвращает ширину рисунка im.

См. также ImageCreate(), ImageSY().

 

ImageSY

Получить высоту рисунка

 

Описание

int imagesy (int im)

 

Функция ImageSY() возвращает высоту рисунка im.

См. также ImageCreate(), ImageSX().

 

ImageTTFBBox

Определяет обрамляющий прямоугольник текста, созданного с использованием фонта TTF

 

Описание

array imagettfbbox (int size, int angle, string fontfile, string text)

 

Функция вычисляет и возвращает параметры обрамляющего пря­моугольника для текста, написанного фонтом TTF:

text                  строка, размер которой определяет функция;

size                  размер фонта;

fontfile              имя файла, в котором хранится фонт TTF (или URL);

angle                угол в градусах.

 

Функция ImageTTFBBox() возвращает массив, состоящий из 8 эле­ментов, соответствующих четырем верщинам обрамляющего текст пря­моугольника:

            0          левый нижний угол, х координата;

            левый нижний угол, у координата;

            2          правый нижний угол, х координата;

            3          правый нижний угол, у координата;

            4          верхний правый угол х координата;

            5          верхний правый угол, у координата;

            6          верхний левый угол, х координата;

            7          верхний левый угол, у координата.

 

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

См. также ImageTTFText().

 

ImageTTFText    

Пишет текст в картинке с использование фонта TTF

 

Описание

array imagettftext (int im, int size, int angle, int x, int y, int col, string fontfile, string text)

 

Функция ImageTTFText() пишет текст text в рисунке im, с началом в координатах х, у под углом angle и цветом col с использованием фонта TTF, хранящегося в файле fontfile.

Угол указывается в градусах, нулевой угол отсчитывается от положе­ния стрелки на трех часах, отсчет производится против часовой стрелки.

 

Fontfile           путь и название файла с фонтом TTF.

Text                текстовая строка, предназначенная для записи в рисунке, может включать символы в кодировке UTF-8 (например, &# 123;).

Col                  цвет шрифта.

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

 

Пример функции ImageTTFText():

<?php

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

$im = imagecreate (400, 30);

$black = ImageColorAllocate ($im, 0, 0, 0) ;

$white = ImageColorAllocate ($im, 255, 255, 255); .

ImageTTFText ($im,. 20, 0, 10, 20, $white, "/path/arial.ttf", "Testing... ");

ImageGif ($im);

ImageDestroy ($im);

?>

 

ImageTypes

Возвращает тип изображения, поддерживаемый этой версией РНР

 

Описание

int imagetypes(void);

 

Эта функция возвращает бит-поле, соответствующее типу изобра­жения в РНР, поддерживаемого GD. Могут быть возвращены IMG_GIF | IMG_JPG | IMG PNG | IMG_WBMP. Приведем пример проверки изображения формата PNG:

Пример функции ImageTypes:

<?php

if (ImageTypes() & IMG_PNG) {

echo "PNG Support is enabled";         

}

?>

 

read_exif_data

Читать заголовки EXIF из файла JPEG

 

Описание

array read_exif_data (string filename)

Функция read_exif_data() читает заголовки EXIF из файла JPEG. Функция возвращает ассоциативный массив, индексами которого яв­ляются имена заголовков Exif, а значениями являются значения, свя­занные с этими заголовками.

 

Пример с функцией read_exif_data():

 

<?php

$exif = read_exif_data Cp0001807.jpg');

while(list($k,$v)=each ($exif)) {

echo " $k: $v<br>\n";

}

?>

Результат работы:

 

FileName: p0001807.jpg

FileDateTime: 929353056

FileSize: 378599

CameraMake: Eastman Kodak Company

CameraModel: KODAK DC2 65 ZOOM DIGITAL CAMERA (V01.00)

DateTime: 1999:06:14 01:37:36

Height: 1024

Width: 1536

IsColor: 1

FlashUsed: 0

FocalLength: 8.0mm

RawFocalLength: 8

ExposureTime: 0.004 s (1/250)

RawExposureTime: 0.004 00000018 998 98

ApertureFNumber: f/ 9.5

RawApertureFNumber: 9.5100002288818

FocusDistance: 16.66m

RawFocusDistance: 16.659999847412

Orientation: 1

ExifVersion: 0200

 

Эта функция работает только в РНР4 и не требует библиотеки GD.

Функции imap для работы с почтой

 

imap_append       

Добавляет текстовое сообщение в указанный почтовый ящик

 

Описание

int imap_append(int imap_stream, string mbox, string message, stringflags);

 

Возвращает true, в случае возникновения ошибки — false. Функция imap_append() добавляет текстовое сообщение в указанный почтовый ящик mbox. Если указаны необязательные флаги, то записывает в почтовый ящик и флаги.

При общении с сервером Cyrus IMAP нужно использовать в каче­стве ограничителей строки «\г\п» вместо «\п», иначе действие не будет выполняться.

imap_base64        

Декодирует текст, закодированный с помощью BASE64

 

Описание

string imap_base64(string text);

 

Функция imap_base64() декодирует текст в формате BASE-64. Деко­дированное сообщение возвращается как строка.

 

imap__body

Читает тело сообщения

 

Описание

string imap_body(int imap_stream, int msg_number, int flags);

 

Функция imap_body() возвращает тело сообщения, имеющего номер msg_number в текущем почтовом ящике. Необязательные флаги — это битовые маски из следующего списка:

 

FT_UID          номер сообщения rrrsgno является уникальным

идентификатором сообщения;

FT_PEEK       не устанавливать флаг \Seen;

FT_INTERNAL        возвращаемая строка записана во внутреннем фор­мате и не может быть приведена к канонической форме с CRLF.

 

imap_check

Проверяет текущий почтовый ящик

 

Описание

array imap_check(int imap_stream);

 

Возвращает информацию о текущем почтовом ящике. В случае неуспеха возвращает FALSE.

Функция imap_check() проверяет статус текущего почтового ящика на сервере и возвращает информацию в объекте со следующими свой­ствами:

 

Date                 дата сообщения;

Driver              драйвер;

Mailbox           название почтового ящика;

Nmsgs             количество сообщений;

Recent             количество недавно пришедших сообщений.

 

imap_close

Закрывает поток IMAP

 

Описание

int imap_close(int imap_stream, int flags);

 

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

 

 

imap_createmailbox

Создает новый почтовый ящик

 

 Описание

int imap_createmailbox(int imap_stream, string mbox);

 

Imap_createmailbox() создает новый почтовый ящик, указанный mbox. Возвращает true в случае успеха и false при ошибке.

 

imap delete

Помечает сообщение из текущего почтового ящика на удаление

 

Описание

int imap_delete(int imap_stream, int msg number;

 

Возвращает true. Функция imap_delete() помечает сообщение, ука­занное через msg_number на удаление. Настоящее удаление сообщений осуществляется функцией imapexpunge().

 

imap_deletemailbox

Удаляет почтовый ящик

 

Описание

int imap_deletemailbox(int imap_stream, string mbox);

 

Imap_deletemailbox() удаляет указанный почтовый ящик. Возвраща­ет tru, при ошибке — false.

 

Imap_expunge

Удаляет все сообщения, помеченные на удаление

 

Описание

int imap_expunge(int imap_stream);

 

Imap_expunge(), удаляет все сообщения, помеченные на удаление с помощью imap_delete(). Возвращает true.

 

imap_etchbody

Извлекает фрагмент тела сообщения

 

Описание

string imap_fetchbody(int imap_stream, int msg_number, int

part_number, flags flags);

 

Эта функция заставляет извлечь подробную секцию указанного сообщения как текстовую строку. Секция — это строка целых чисел, разделенных точками, которые указывают на части тела сообщения в списке частей согласно спецификации IMAP4. Части тела не декоди­руются этой функцией. Необязательным параметром к imap_fetchbody() является битовая маска из:

 

FT_UTD         msgono является уникальным идентификатором;

FT_PEEK       гне устанавливать флаг \Seen;

FT_UID          возвращаемая строка записана во внутреннем формате, которая не может быть канонизирована с помощью CRLF.

 

imap_fetchstructure

Читает структуру простого сообщения

 

Описание

array imap fetchstructure(int imap stream, int msg number);

 

Эта функция заставляет извлечь всю информацию о структуре сообщения с номером msg_number. В случае сообщения из нескольих частей, функция также возвращает массив объектов всех свойств под названием parts[].

 

imap_header 

Читает заголовок сообщения

 

Описание

object imap_header(int imap_stream, int msg_number, int fromlength, int' subjectlength, int defaulthost);

 

Эта функция возвращает объект для различных элементов заголов­ка: remail, date, Date, subject, Subject, in_reply_to, message_id, newsgroups, followup_to, references.

to[] — возвращает массив объектов из строки То, содержит:

personal

adl

mailbox

host

 

fromaddress — полная строка From: строка длиной до 1024 символов; from[] — возвращает массив объектов из строки From, содержит:

personal

adl

mailbox

host

 

ccaddress (полная строка Cc: строка длиной до 1024 символов); сс[] —- возвращает массив объектов из строки Сс, содержит:

personal

adl

mailbox

host

 

bccaddress (полная строка Bcc: строка длиной до 1024 символов); Bсс[] — возвращает массив объектов из строки Всс, содержит:

personal

adl

mailbox

tat

 

Эта функция заставляет извлечь всю информацию о структуре сообщения с номером msg_number. В случае сообщения из нескольих частей, функция также возвращает массив объектов всех свойств под названием parts[].

reply_toaddress (полная строка Reply_to: строка длиной до 1024 символов); reply_to[] — возвращает массив объектов из строки Reply_to, содержит:

personal

adi

mailbox

host

senderaddress (полная строка Sender: строка длиной до 1024 символов); sender[] — возвращает массив объектов из строки Sender, содержит:

personal

adi

mailbox

host

return_path (полная строка Return-path: строка длиной до 1024 символов); return_path[] — возвращает массив объектов из строки Return_path, содержит:

personal

adl

mailbox

host

udate ( дата сообщения в формате времени Unix);

fetchfrom (строка From, отформатированная до fromlength символов);

fetchsubject (строка Subject, отформатированная до subjectlength символов).

 

imap_headers

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

 

Описание

array imap__headers (int imap_stream) ;

 

Возвращает строковый массив из информации по заголокам. Один элемент массива на сообщение.

 

imap_istmailbox

Читает список почтовых ящиков

 

Описание

array imap_listmailbox (int imap__stream, string ref, string pat); Возвращает массив, содержащий названия почтовых ящиков.

 

imap_listsubscribed

Перечисляет все подписанные ящики

 

Описание

array imap_listsubscribed(int imap_stream, string ref, string

pattern);

 

Возвращаетa массив всех почтовых ящиков, на которые существует подписка. Аргументы ref и pattern указывают начальное месторасполо­жение откуда начинать поиск и шаблон, которому должны удовлетво­рять названия почтовых ящиков.

 

imap_mail_copy

Копирует указанные сообщения в почтовый ящик

 

Описание

int imap_mail_copy(int imap_stream, string msglist, string mbox, int flags);

 

Возвращает true, при ошибке — false.

 

Копирует почтовые сообщения, указанные с помощью msglist, в почтовый ящик mbox. Msglist — это диапазон, а не просто номера сообщений.

 

Флаги — это битовые маски из списка:

CP_UID                      номера в последовательности содержат уникаль­

ные идентификаторы;

CP_MOVE                 после копирования удалить сообщения из текуще­

го почтового ящика.

 

imap_mail_move

Переносит указанные сообщения в почтовый ящик

 

Описание

int imap_mail_move(int imap_stream, string msglist, string mbox);

 

Переносит почтовые сообщения, указанные с помощью msglist, в почтовый ящик mbox. Msglist — это диапазон, а не просто номера сообщений.

Возвращает true в случае успеха, иначе — false.

 

imap_num_msg

Выдает количество сообщений в текущем почтовом ящике

 

Описание

int imap_num_msg(void);

 

Возвращает количество сообщений в текущем почтовом ящике.

 

imap_num_recent

Возвращает количество недавно пришедших сообщений в текущем почтовом ящике

 

Описание

int imap_num_recent(int imap_stream);

 

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

 

Imap_open

Открывает поток IMAP в почтовый ящик

 

Описание

int imap_open(string mailbox, string username, string password, int

flags) ;

 

В случае успеха возвращает поток IMAP1, иначе — false. Эта функ­ция может быть использована для открытия потоков к РОРЗ- и NNTP- серверам. Для того, чтобы присоединиться к серверу IMAP на 143-й порт на локальной машине, сделайте следующее:

 

Smbox = imap_open("{localhost:143}INBOX","user_id","password");

 

Для того, чтобы подсоединиться к РОРЗ-серверу на 110-й порт на локальном сервере используйте:

 

$mbox = imap_open("(localhost/pop3:110}INBOX","user_id","password");

 

Для того, чтобы подсоединиться к NNTP-серверу на 119-й порт на локальном сервере используйте:

 

$nntp = imap_open("{localhost/nntp:119}comp.test","", "") ;

 

Для того, чтобы подсоединиться к удаленному серверу, замените «localhost» на имя или IP-адрес сервера, к которому вы хотите подсо­единиться.

Опции — битовая маска из:

-         OP_READONLY            открыть почтовый ящик в режим «только чтение»;

-         OP_ANONYMOUS       не использовать или не обновлять .newsrc при использовании новостей;

-         OP_HALFOPEN             для IMAP и NNTP устанавливает соединение, но не открывает почтовый ящик;

-         CL_EXPUNGE                автоматически очищать почтовый ящик при закрытии.

 

imap _ping

Проверяет поток IMAP на работоспособность

 

 Описание

int imap_ping(int imap_stream) ;

 

Возвращает true, если поток еще работоспособен, иначе — false. Функция imap_ping() проверяет поток на работоспособность. Он мо­жет также проверять новую почту. Это предпочтительный метод для периодической проверки новой почты и «живучести» удаленных серверов.

 

imap_renamemailbox

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

 

Описание

int imap_renamemailbox(int imap_stream, string old_mbox, string new_mbox);

 

Эта функция переименовывает старый почтовый ящик в новый. Возвращает true или false.

imap_reopen

Заново открывает поток IMAP на новый почтовый ящик

 

Описание

int imap_reopen(string imap_stream, string mailbox, string [flags]);

 

Возвращает true в случае успеха, иначе — false.

Эта функция заново открывает указанный поток на новый ящик.

 

Опции — битовая маска из:

OP_READONLY               открыть почтовый ящик в режиме только чтение:

 

OP_ANONYMOUS           не использовать или не обновлять .newsrc

при работе с новостями;

OP_HALFOPEN                для IMAP и NNTP устанавливает связь но не открывает почтовый ящик;

CL_EXPUNGE                  счищает почтовый ящик при закрытии.

 

imap_subscribe

Подписывает на почтовый ящик

 

Описание

int imap_subscribe(int imap_stream, string mbox);

 

Подписывает на новый почтовый ящик. Возвращает true или false.

 

imap_undelete

Снимает отметку с сообщения, помеченного на удаление

 

Описание

int imap_undelete(int imap_stream, int msg_number) ;

 

Эта функция снимает отметку с сообщения, помеченного на удале­ние функцией imap_delete().

Возвращает true в случае успеха, иначе — false.

 

imap_unsubscribe

Снимает подписку с почтового ящика

 

Описание

int imap_unsubscribe(int imap_stream, string mbox);

Снимает подписку с почтового ящика. Возвращает true в случае успеха, иначе — false.

imap_qprint

Конвертирует строку формата quoted-printable в 8-битовую строку

 

Описание

string imap_qprint(string string);

 

Конвертирует строку формата quoted-printable в 8-битовую строку. Возвращает 8-битовую (бинарную) строку.

 

imap_8bit

Конвертирует 8-битовую строку в формат quoted-printable

 

Описание

string imap_8bit(string string);

 

Конвертирует 8-битовую строку в формат quoted-printable. Возвращает строку в формате quoted-printable.

 

imap_binary

Конвертирует 8-битную строку в формат base64

 

Описание

string imap_binary(string string);

 

Конвертирует 8-битную строку в формат base64.

Возвращает строку в формате'base64.

 

imap_scanmailbox

Читает список почтовых ящиков, проводит поиск в названиях ящиков

 

Описание

array im'ap_scanmailbox (int imap_stream, string string);

 

Возвращает массив, содержащий имена почтовых ящиков, которые имеют строку string в названии.

 

imap_mailboxmsginfo

Получает информацию о текущем почтовом ящике

 

Описание

array imap_mailboxmsginfо(int imap_stream);

 

Возвращает информацию о текущем почтовом ящике. False — в случае неудачи.

Функция imap_mailboxmsginfo() проверяет статус текущего почтово­го ящика на сервере и возвращает информацию в объекте со следую­щими свойствами:

 

Date                дата сообщения;

Driver             драйвер;

Mailbox          название почтового ящика;

Nmsgs                        количество сообщений;

Recent                        количество недавно пришедших сообщений;

Unread           количество непрочитанных сообщений;

Size                 размер почтового ящика.

 

map_rfc822_write_address

Возвращает правильно отформатированный етаИ-адрес

 

Описaание

string imap_rfc822_write__address (string mailbox, string host, string personal);

 

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

 

imap_rfc822_parse_adrlist

Проводит разбор адресной строки

 

Описание

string imap_rfc822_parse_adrlist(string address, string default_host);

 

Эта функция разбирает адресную строку и для каждого адреса возвращает массив объектов. Есть 4 типа объектов:

Mailbox           название почтового ящика (имя пользователя);

host                 название хоста;

personal           личное имя;

adl                   путь к домену-источнику.

 

imap_setflag_full

Устанавливает флаги на сообщения

 

Описание

string imap_setflag_full(int stream, string sequence, string flag, string options);

 

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

 

imap_clearflag_full

Очищает флаги сообщения

 

Описание

string imap_clearflag_ful!(int stream, string sequence, string flag, string options);

 

Эта функция заставляет удалить флаги из набора флагов сообще­ния в указанной последовательности.

 

imap_sort

Сортирует сообщения в текущем почтовом ящике

 

Описание

string imap_sort (int stream, int criteria, int reverse, int options);

 

Возвращает массив номеров сообщений рассортированных по дан­ному параметру.

Rev должен быть равен 1 в том случае, если нужна сортировка в обратном порядке.

Критерии сортировки (должен быть указан только один):

SORTDATE                по дате сообщения;

SORTARRTVAL        по дате поступления;

SORTFROM              по полю FROM;

SORTSUBJECT         по теме сообщения;

SORTTO                    по полю ТО;

SORTCC                    по полю СС;

SORTSIZE                  по размеру.

 

Опции — битовая маска из:

 

SEJUID                       возвратить идентификаторы вместо номеров последовательности;

SE_NOPREFETCH    не извлекать заранее найденные сообщения.

 

imap_fetchheader

Возвращает заголовок сообщения

 

Описание

stringimap_fetchheader(int imap_stream, int msgno, int flags);

 

Эта функция заставляет извлечь полный, неотфильтрованный заго­ловок указанного сообщения в формате RFC 822 как текстовую строку.

Опции:

FT_UID                                             msgno является UID'om;

FT_INTERNAL                                  возвращаемая строка записана во внутреннем

формате без попыток канонизировать ее с помощью CRLF;

FTJPREFETCHTEXT RFC822          текст должен быть предварительно ра­зобран. Это поможет избежать эстренных за­держек если требуется извлечь полный текст сообщения (например, в операции «сохра­нить в локальном файле»).

 

map_uid

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

 

Описание

String imap_uid(string mailbox, int msgno);

 

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

 

imap__rfc822_parse_headers

Возвращает набор различных заголовков

 

Описание

object imap_rfc822_parse_headers (string headers [, string defaulthost])

 

imap_getmailboxes

Читает список почтовых ящиков и возвращает информацию о них

 

Описание

array imap_getmailboxes (int imap_stream, string ref, string pattern)

 

imap_getsubscribed       

Список всех почтовых ящиков, на которые существует подписка

 

Описание

array imap_getsubscribed (int imap_stream, string ref, string pattern)

 

imap_msgno

Номер сообщения no заданному UID

Описание

int imap msgno (int imap stream, int uid)

 

imap_uid

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

 

Описание

String imap_uid(string mailbox, int msgno);

 

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

 

imap_rfc822_parse_headers

Возвращает набор различных заголовков

 

Описание

object imap_rfc822_parse_headers (string headers [, string defaulthost])

 

imap_getmailboxes

Читает список почтовых ящиков и возвращает информацию о них

 

Описание

array imap_getmailboxes (int imap_stream, string ref, string pattern)

 

imap_getsubscribed       

Список всех почтовых ящиков, на которые существует подписка

 

Описание

array imap_getsubscribed (int imap_stream, string ref, string pattern)

 

imap_nsgno

Номер сообщения no заданному UID

 

Описание

int imap msgno (int imap stream, int uid)

 

imap _search

Возвращает массив сообщений, удовлетворяющих заданным критериям

 

Описание

array imap_search (int imap_stream, string criteria, int flags)

 

imap_ast_error

Возвращает последнюю ошибку IMAP

 

Описание

string imap_last_error (void)

 

imap_errors

Список всех ошибок IMAP

 

Описание

array imap_errors (void)

 

imap_alerts

Список всех предупреждений IMAP

 

Описание.

array imap_alerts (void)

 

imap_status

Статус почтового ящика (не текущего)

 

Описание

object imap_status (int imap_stream, string mailbox, int options)

 

imap_utf7_decode

Декодирует строку из UTF-7

Описание

string imap utf7 decode (string text)

 

imap_utf7_encode

Преобразует 8-битовые данные в UTF-7

 

Описание

string imap_utf7_encode (string data)

 

imap_utf8

Преобразует текст в UTF8

 

Описание

string imap_utf8 (string text)

 

imap_fetch_o vervie w

Читает информацию заголовков указанного сообщения

 

Описание

array imap_fetch_overview (int imap_stream, string sequence [, int flags])

 

imap_mime_header_decode

Декодирует заголовки типов MIME

 

Описание                                      

array imap_header_decode (string text)

 

imap_mail_compose

Создает сообщение MIME с использованием тела сообщения при заданном конверте

 

Описание

string imap_mail_compose (array envelope, array body)

Пример:

<?php

 

$envelope["from"]="musone@afterfive.com";

$envelope["to"]="musone@darkstar";

$envelope["cc"]="musone@edgeglobal.com";

$partl["type"]=TYPEMULTIPART;

$partl["subtype"]="mixed";

$filename="/tmp/imap.с.gz";

$fp=fopen($filename,"r"); $contents=fread($fp,filesize($filename)); fclose($fp);

$part2["type"]=TYPEAPPLICATION;

$part2["encoding"]=ENCBINARY;

$part2["subtype"]="octet-stream";

$part2["description"]=basename($filename);

$part2["contents.data"]=$contents;

$part3["type"]=TYPETEXT;

$part3["subtype"]="plain";

$part3["description"]="description3";

$part3["contents.data"]="contents.data3\n\n\n\t";

$body[l]=$partl; $body[2]=$part2; $body[3]=$part3;

echo nl2br(imap_mail_compose($envelope,$body)); ?>

 

imap_maiI  

Посылает почтовое сообщение

 

Описание

string imap_mail (string to, string subject, string message [, string additional_headers [, string cc [, string bcc string

 

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

 

mail

Шлет почту

 

 Описание

bool mail(string to, string subject, string message, string additional_headers);

 

Функция mail() позволяет отсылать почту. Mail() автоматически посылает сообщение, содержащееся в message адресату, указанному в поле to. Несколько получателей могут быть указаны в поле to в виде строки с адресами, разделенными пробелами.

 

Пример 1. Посылка почты:

 

mail("rasmus@lerdorf.on.ca", "Моя тема", "Строка 1\пСтрока 2\пСтрока 3");

 

Если задан четвертый строковый аргумент, он автоматически встав­ляется в конец заголовка, обычно это используется при добавлении дополнительных полей в заголовок. Несколько дополнительных полей разделяются символом новой строки.

 

Пример 2. Посылка почты с дополнительными полями заголовка:

 

mail("ssb@guardian.no", "the subject", $message, "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/", phpversion ());

 

ezmlm_hash  

Определяет скрытое значение, которое используется в EZMLM

 

Описание

int ezmlm_hash (string addr) Пример:

Suser = "putin@koegde.koekak.ru";

$hash = ezmlm_hash ($user);

$query = sprintf ("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);

$db->query($query);

 

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

Математические константы

 

В табл. С.2 представлены математические константы, мые в РНР.

Функции

 

Abs

Абсолютная величина

 

Описание

mixed abs(mixed number);

 

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

 

Acos

Арккосинус

 

 Описание

float acos(float arg);

 

Возвращает арккосинус аргумента в радианах.

См. также asin() , atan() .

 

 

Asin

Арксинус

 

Описание

float asin(float arg);

 

Возвращает арксинус аргумента в радианах.

См. также acos(), atan().

 

Atari

Арктангенс

 

Описание

float atan (float arg);

 

Возвращает арктангенс аргумента в радианах.

См. также acos(), atan().

 

Atari 2

Арктангенс от двух переменных

 

Описание

float atan2(float у, float х) ;

 

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

 

Функция возвращает результат в радианах, находящихся между -PI и PI (включительно).

См. также acos(), atan().

 

base_convert       

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

 

Описание

strin base_convert(string number, int frombase, int tobase);

 

Возвращает строку, содержащую number, представленного по осно­ванию tobase. Основание, в котором дается число which number указы­вается в frombase. Основания frombase и tobase должны находиться в диапазоне от 2 до 36 включительно. Цифры в числах с основанием выше, чем 10 будут представлены буквами a...z, со значениями а = 10, b = 11 и z = 36.

 

Пример base_convert():

$binary = base_convert($hexadecimal, 16, 2);

 

BinDec

Двоичное в десятичное

 

Описание

int bindec(string binary_string);

 

Возвращает десятичный эквивалент двоичного числа, представлен­ного аргументом binary_string.

OctDec конвертирует двоичное число в десятичное. Наибольшее число, которое может быть сконвертировано, равно 31 битам или 2147483647 в десятичном виде.

См. также decbin().

 

Ceil

Округлить дробную часть наверх

 

Описание

int ceil(float number);

 

Возвращает следующее наивысшее целое значение number. Исполь­зование ceil() на целых числах — абсолютная трата времени.

См. также floor(), round().

Cos

Косинус

 

Описание

float cos(float arg);

 

Возвращает косинус аргумента в радианах.

 См. также sin(), tan().

 

DecBin

Десятичное в двоичное

 

Описание

string decbin(int number);

 

Возвращает строку, содержащую двоичное представление аргумен­та number. Наибольшее число, которое может быть сконвертировано, равно 2147483647 в десятичном виде или 31 бит.

См. также bindec().

 

DecHex

Десятичное в шестнадцатиричное

 

Описание

string dechex(int number);

 

Возвращает строку, содержащую шестнадцатиричное представле­ние аргумента number. Наибольшее число, которое может быть скон­вертировано, равно 2147483647 в десятичном виде или «7ffiffff» в шес­тнадцатиричном.

 

См. также hexdec().

 

DecOct

Десятичное в восьмиричное

 

Описание

string decoct(int number);

 

Возвращает строку, содержащую восьмиричное представление ар­гумента number. Наибольшее число, которое может быть сконвертиро- вано, равно 2147483647 в десятичном виде или «17777777777» — в восьмиричном.

 

См. также octdec().

Exp   

е в степени... (экспонента)

 

Описание

float exp(float arg) ;

 

Возвращает число е, возведенное в степень arg.

См. также pow().

 

Floor

Округляет дробную часть вниз

 

Описание

int floor(float number);

 

Возвращает следующее нижележащее значение после number. Ис­пользование floor() на целых числах — абсолютная потеря времени.

См. также ceil(), round().

 

getrandmax

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

 

Описание

int getrandmax(void );

 

Возвращает максимальную величину, которая может быть возвра­щена вызовом функции rand().

См. также rand(), srand() mt_rand(), mt_srand(), mt_getrandmax().

 

HexDec

Шестнадцатиричное в десятичное

 

Описание

int hexdec(string hex_string);

 

Возвращает десятичный эквивалент числа, представленного аргу­ментом hex_string. HexDec конвертирует шестнадцатиричную строку в десятичное число. Наибольшее число, которое может быть сконверти- ровано, равно 7fffffff в шестнадцатиричном виде или 2147483647 — в десятичном.

См. также dechex().

 

Log    

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

 

Описание

float log(float arg);

 

Возвращает натуральный логарифм от аргумента arg.

 

Log 10                       

Логарифм по основанию 10

 

Описание

float loglO(float arg);

 

Возвращает логарифм по основанию 10 от аргумента arg.

max

Находит максимум

 

Описание

mixed max(mixed argl, mixed arg2, mixed argn);

 

Мах() возвращает наибольшее число из перечисленных в параметрах.

Если первый элемент является массивом, mах() возвращает макси­мальную величину массива. Если первый параметр — целое, строка или типа double, следует использовать как минимум два параметра, и в этом случае mах() возвращает наибольшее из этих величин. Вы можете сравнивать неограниченное количество значений.

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

 

min

Находит минимум

 

Описание

mixed min(mixed argl, mixed arg2, mixed argn);

 

Min() возвращает наименьшее значение из указанных в аргументах.

Если первый параметр — массив, min() возвратит наименьшую величину массива. Если первый параметр — целое число, строка или double, следует указать минимум два параметра и min() возвратит наименьшую из них величину. Вы можете сравнивать неограниченно количество величин.

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

 

mt_rand

Генерирует наилучшее случайное число

 

Описание

int mt_rand([int min], [int max]);

 

Множество генераторов случайных чисел, написанных на старой библиотеке libcs, имеют неясные или неизвестные характеристики, и к тому же, медленны. По умолчанию с функцией rand() РНР использует генератор случайных чисел, написанный на libc. Функция mt_rand() является его полной заменой. Она использует генератор случайных чисел с известными характеристиками (Mersenne Twister), который производит случайные числа, пригодные для использования в криптог­рафии и работает в четыре раза быстрее, чем средняя скорость, кото­рую обеспечивает libc. Домашнюю страницу Mersenne Twister'a вы можете найти по адресу: http://www.math.keio.ac.jp/~matumoto/emt.htrnl, а оптимизированную версию исходных текстов на http://www.scp.syr.edu/ -marc/hawk/twister.html.

Если функция вызывается без необязательных аргументов min и max, mt_rand() возвращает псевдослучайное число между 0 и RAND_MAX. Если вы хотите получить случайное число между 5 и 15 (включительно), то можно использовать следующий вызов функции: mt_rand(5,15).

Не забудьте инициализировать генератор случайных чисел перед использованием функции mt_srand().

См. также mt_srand(), mt_getrandmax(), srand(), rand(), getrandmax().

 

mt_srand

Инициализирует лучший генератор случайных чисел

 

Описание     

void mt_srand(int seed);

 

Инициализирует генератор случайных чисел значением seed. Инициализируется количеством микросекунд, истекших с послед­ней «целой» секунды: mt_srand((double)microtime()*1000000); $randval = mt_rand();

См. также mt_rand(), mtj>etrandmax(), srand(), rand(), getrandmax().

 

mt_getrandmax

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

 

Описание

int mt_getrandmax(void );

 

Возвращает максимальную величину, которая может быть возвра­щена вызовом функции mt_rand().

См. также mt_rand(), mt_srand() rand(), srand(), getrandmax().

 

number format

Форматирует число с сгруппированными тысячами

 

Описание

string number_forruat (float number, int decimals, string dec_point, string thousands sep);

 

Number_format() возвращает форматированную версию числа number. Эта функция принимает один, два или четыре параметра (не три):

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

Если дано два параметра, число number will будет отформатировано с десятичным знаком decimals с точкой («.») впереди и запятой («,»)

между каждой группой тысяч.

Если даны все четыре параметра, то число number будет отформа­тировано с десятичным знаком decimals, dec_point вместо точки («.») перед десятичным знаком и thousands_sep вместо запятой («,») между каждой группой тысяч.

 

OctDec

Восьмиричное в десятичное

 

Описание

int octdec(string octal_string);

 

Возвращает десятичный эквивалент восьмиричного числа, пред­ставленного аргументом octal_string. OctDec конвертирует восьмирич­ное число в десятичное. Максимальное число, которое может быть сконвертировано, равно 17777777777 или 2147483647 в десятичном виде,

См. также decoct().

PI

Величина pi

 

Описание

double pi(void );

 

Возвращает аппроксимированное значение pi.

 

pow

Степень числа

 

Описание

float pow(float base, float exp) ;

 

Возвращает base, возведенное в степень exp.

См. также ехр().

 

rad2deg

Конвертирует число в радианах в число в градусах

 

rand

Генерирует случайную величину

 

Описание

int rand([int min], [int max]);

 

Если функция вызывается без необязательных параметров min и max, randQ возвращает псевдослучайную величину между 0 и RAND_MAX. При желании получить случайное число между 5 и 15 (включительно), используйте rand(5,15).

Не следует забывать инициализировать генератор случайных чисел перед использованием srand().

См. также srand(), getrandmax(), mt_rand(), mt_srand(), mt_getrandmax().

 

round

Округляет число с плавающей запятой

 

Описание

double round(double val);

 

Возвращает округленную величину val.

$foo = round ( 3.4 ); // $foo == 3.0 //

$foo = round( 3.5 ); // $foo == 4.0

$ foo = round( 3.6 ); // $foo == 4.0

 

См. также ceil(), floor().

 

Sin      

Синус

 

Описание

float sin (float arg);

 

Возврашает синус аргумента.

            См. также cos(), tan().

 

Sqrt    

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

 

Описание

float sqrt(float arg);

 

Возвращает квадратный корень аргумента.

 

srand

Инициализирует генератор случайных чисел

 

Описание

void srand(int seed);

 

Инициализирует генератор случайных чисел значением seed.

 

//Генератор инициализируется числом микросекунд, истекших с после­дней "целой" секунды

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

$randval = randj);

 

См. также rand(), getrandmax(), mt_rand(), m1_srand(), mt_getrandmax().

Tan

Тангенс

 

Описание

float tan(float arg) ;

 

Возвращает тангенс аргумента.

См. также sin(), cos().

 

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

 

fsockopen

Открывает соединение с узлом в Интернете или Unix-системой через socket

 

Описание

int fsockopen(string hostname, int port, int

 

Открывает сокетное соединение с доменом Internet по адресу hostname на порт port и возвращает файловый указатель, который может использоваться функциями fgets(), fgetss(), fputs() и fclose(). Если вызов завершается неудачей, он возвращает FALSE и если указаны дополнительные аргументы errno и errstr, то они будут использованы, чтобы указать фактическую системную ошибку, которая случилась на системном уровне при вызове connect(). Если возвращенное errno — 0, но функция вернула FALSE, это признак того, что ошибка произошла перед вызовом connect(). Это наиболее вероятно, из-за проблемы ини­циализации сокета. Имейте в виду, что аргументы errno и errstr необя­зательно должны упоминаться.

Если port — 0 и ОС поддерживает доменные сокеты Unix (domain sockets), hostname будет использован для подключения в качестве доменного сокета Unix.

По умолчанию сокет откроется в режиме blocking mode. Вы можете переключить его в non-blocking mode используя set_socket_blocking().

 

Пример:

$fp = fsockopen("www.php.net", 80, &$errno, &$errstr);

if(!$ fp) {

echo "Serrstr (Serrno)<br>\n" ;

} else {

fputs($fp,"GET / HTTP/1.0\n\n");

while(!feof($fp)) {

echo fgets($fp,128);

}

fclose($fp);

}

 

set_socket_blocking

Устанавливает blocking/non-blocking режимы работы сокета

 

Описание

int set_socket_bloc-king (int socket descriptor, int mode);

 

Если mode отсутствует, данный дескриптор сокета переключится на non-blocking режим, а если присутствует, то переключится на blocking режим. Это влияет на вызовы типа fgets(), который читает из сокета. В non-blocking режиме fgets() вызов всегда будет возвращаться немедлен­но, в то время как в blocking режиме он ждет данные, чтобы стать доступным на сокете.

 

gethostbyaddr

Получает имя хоста Internet, соответствующее данному IP-адресу

 

Описание

string gethostbyaddr(string ip_address);

 

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

 

См. также gethostbyname().

 

gethostbyname

Получает IP-адрес, соответствующий заданному имени хоста Интернет

 

Описание

string gethostbyname(string hostname);

 

Возвращает IP-адрес хоста, указанного аргументом hostname.

 См. также gethostbyaddr().

 

gethostbyname

Получает список IP-адресов, соответствующих заданному имени хоста Интернет

 

Описание

array gethostbynamel(string hostname);

 

Возвращает список IP-адресов, на которых разрешен хост Internet, указанный аргументом hostname.

См. также gethostbyname(), gethostbyaddr(), checkdnsrr(), getmxrr().

 

checkdnsrr

Проверяет записи DNS, соответствующие заданному хосту или IP-адресу

 

Описание

int checkdnsrr(string host, string [type]);

 

Ищет в DNS записи типа type, соответствующие аргументу host. Возвращает true, если обнаруживаются какие-либо записи. Возвращает false, если не обнаружены никакие записи или если произошла ошиб­ка.

Туре может быть любым из значений: A, MX, NS, SOA, PTR, CNAME, или ANY. По умолчанию — MX.

Host может или быть адресом IP или именем хоста.

См. также getmxrr(), gethostbyaddr(), gethostbyname(), gethostbynamel().

 

getmxrr

Получает МХ-записи, соответствующие заданному имени хоста

 

Описание.

int getmxrr(string hostname, array mxhosts, array [weight]);

 

Ищет в DNS МХ-записи, соответствующие hostname. Возвращает true если записи найдены, false — если записей не найдено или про­изошла ошибка.

Список МХ-записей может размещаться в массиве mxhosts. Если зада­но weight массива, то он может быть заполнен собранной информацией.

См. также checkdnsrr(), gethostbyname(), gethostbynamel(), gethostbyaddr().

 

openlog

Открывает соединение к системным логам (system logger)

Описание

int openlog(string ident, int option, int facility);

 

Openlog() открывает для программы соединение с system logger. Строка ident добавляется к каждому сообщению. Значение для option и facility даются в следующем разделе. Использование openlog() не обяза­тельно. Это может быть автоматически вызвано вызовом syslog(), если необходимо, в этом случае ident по умолчанию будет false.

См. также syslog(), closelog().

 

syslog

Генерирует системное регистрационное сообщение

 

Описание

int syslog(int priority, string message);

 

Syslog() генерирует регистрационное сообщение, для system logger. Priority — комбинация легкости и уровня, значения для которых дают­ся в следующем разделе. А другой аргумент является отсылаемым сообщением, кроме того, два символа %m заменятся строкой сообще­ния ошибки (strerror) соответствующей значению errno.

Больше информации о средствах syslog можно обнаружить на man- страницах для syslog в Unix-системах. В WindowsNT, сервис syslog эмулируется использованием Event Log.

 

closelog

Закрывает соединение с system logger

 

Описание

int closelog(void);

 

Closelog() закрывает дескриптор, используемый для записи в system logger. Использование closelog() необязательно.

 

debugger_on

Включает внутренний PHP отладчик

 

Описание

int debugger__on (string address);

 

Включает внутренний PHP-отладчик, соединяя его с address.

 

debugger_off

Запрещает внутренний РНР отладчик

 

Описание

int debugger_off(void) ;

 

Выключает внутренний РНР-отладчик.

 

getprotobyname

Определяет номер протокола по названию протокола

 

Описание

int getprotobyname (string name)

 

См. также getprotobynumber().

getprotobynumber

Определяет название протокола по номеру протокола

 

Описание

string getprotobynumber (int number)   ,

 

См. также getprotobyname().

 

getservbyname

Определяет номер порта, связанный со службой Интернет и соответствующим протоколом

 

Описание

int getservbyname (string service, string protocol)

 

См. также getservbyport().

 

 

getservbyport

Определяет службу Интернет по номеру порта и протоколу

 

Описание

string getservbyport (int port, string protocol)

 

Протокол — либо TCP, либо UDP.

См. также getservbyname().

 

pfsockopen

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

 

Описание

int pfsockopen (string hostname, int port [, int errno [, string errstr [, int timeout] ] ] )

 

Эта функция работает в точности так же, как и функция fsockopen() с той лишь разницей, что образованная связь не закрывается после завершения выполнения скрипта, а остается открытой.

 

ip2long

Преобразует Интернет-адрес в формате с точками в адрес типа long

 

Описание

int ip21ong (string ip_address)

 

Пример с функцией Ip2long():

 

<?

$ip = gethostbyname("www.php.net");

$out   =   "Следубщие   адреса   URL   эквивалентны:<br>\n";

$out.=      "http://localhost / ,       http://".$ip ."/,       and     http://

".ip21ong ($ip) ."/<br>\n";

echo   $out;

?>

 

См. также Iong2ip(), рис. С. 10.

 

long2ip

Преобразует Интернет-адрес в стандартный формат с точками

 

Описание

string long2ip (int proper_address)

 

См. также ip2long().