Введение. 2

1. Что такое PHP?. 3

1.1            Кратко об истории. 3

1.2 Возможности PHP. 4

2        Синтаксис языка PHP  5

3        Переменные в PHP. 6

3.1            Типы переменных  6

3.2            Особенности ссылок на переменные  6

3.3            Массивы   7

3.4            Область видимости. 8

4        Логические конструкции языка PHP. 9

4.1 Общие сведения. 9

4.2            Особенности циклов While  11

4.3            Конструкция Switch  11

5. Математические выражения в PHP. 11

6. Перегруженные операторы для работы с типами данных. 12

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

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

7.2 Работа с файлами. 15

7.3 Работа со строками. 17

7.4 Работа с HTTP. 18

Заключение. 19

Использованные информационные ресурсы: 20


Введение

Слово «WWW» (World Wide Web) относится к той немногочисленной категории понятий, название которых известно всем, однако далеко не всякий в состоянии правильно объяснить, что же это в сущности такое. Довольно часто приходится слышать, как WWW отождествляют с Internet, что, мягко говоря, не совсем верно. На самом деле Web — это одна из частей Internet, которая на протяжении последних 5–6 лет стала феноменально популярной и способствовала гигантскому скачку развития Сети в целом.

 

WWW можно назвать графическим интерфейсом для работы с Internet. Изобретение Web связано с именем Тима Бернерс-Ли (Tim Berners-Lee). Бернерс-Ли работал в швейцарской лаборатории физики частиц CERN и ему часто приходилось использовать Internet для общения с коллегами. В то время получение информации из Сети было нетривиальной задачей и требовало высокой квалификации и владения специальными навыками. Ученый облегчил себе работу, создав систему, упрощающую навигацию. В 1991 г. система получила признание и была названа WWW.

 

«World Wide Web» переводится как «всемирная паутина», и название достаточно точно определяет суть явления. WWW — гигантская сеть страниц (документов), связанных между собой гиперссылками. Это действительно очень напоминает своими колоссальными размерами и структурой паутину, протянувшуюся по всему миру.

 

Наравне с WWW существуют и другие части Internet: e-mail, конференции, терминальный доступ, некоторые устаревшие службы, (например, Gopher), множество разнообразных коммуникационных программ, работающих через Сеть. Образно говоря, Internet — провода, позволяющие компьютерам разных типов обмениваться информацией. А вот WWW, электронная почта, Gopher и т. д.— это то, что наполняет эти провода содержанием.

 

Способ, позволяющий «общаться» компьютерам, называется протокол. Internet работает на основе двух протоколов: TCP (Transmission Control Protocol — протокол управления передачей) и IP (Internet Protocol — протокол Internet),— которые вместе стали известны как TCP/IP. Изобретение этих протоколов в начале 80-х годов позволило обмениваться данными и использовать их как компьютерам, так и компьютерным сетям разных типов.

 

Основа WWW — файлы в формате HTML (Hyper Text Markup Language — язык разметки гипертекста), или гипертекстовые страницы. Гипертекст — это легкая в использовании и чрезвычайно мощная система связанных слов и фраз, позволяющая легко перемещаться по особым образом организованным страницам. Она связывает фразу или слово одной страницы с любой другой страницей, абзацем, фразой или словом. Если развить идею гипертекста и включить в него графику, видео и звук, мы получим гипермедиа. Гипермедиа — среда, основанная, как и гипертекст, на взаимосвязях, в которой в качестве гиперссылок могут выступать визуальные и аудиокомпоненты. Гипертекст и гипермедиа являются фундаментальными для WWW технологиями, а HTML — средство для работы с этими технологиями. Но с появлением новых технологий хранения и передачи информации стало необходимо появление динамически создаваемых HTML страниц, в частности, что бы получить ответ на запрос из (или добавить что-нибудь в) базы данных через сеть интернет, пользуясь при этом только стандартным набором ПО (браузером и ни чем более). Именно для этого используются выполняемые на стороне сервера приложения. Они позволяют ускорить работу пользователя с сервером во многие разы, упростив при этом задачу по администрированию и созданию web-страниц.

1. Что такое PHP?

PHP – это скрипт-язык (scripting language), встраиваемый в HTML, который интерпретируется и выполняется на сервере. Основное отличие от CGI-скриптов, написанных на других языках, типа Perl или C – это то, что в CGI-программах вы сами пишете выводимый HTML-код, а, используя PHP – вы встраиваете свою программу в готовую HTML-страницу, используя открывающий и закрывающий теги (в примере ).

 

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

 

Любители Internet Information Server найдут, что PHP очень похож на Active Server Pages (ASP), а энтузиасты Java скажут, что PHP похож на Java Server Pages (JSP). Все три языка позволяют размещать код, выполняемый на Web-сервере, внутри HTML страниц.

 

В нескольких словах – на PHP можно сделать все, что можно сделать с помощью CGI–программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).

 

Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым. Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим протоколам.

 

1.1   Кратко об истории

Началом PHP можно считать осень 1994 года, когда Rasmus Lerdorf решил расширить возможности своей Home-page и написать небольшой движок для выполнения простейших задач. Такой движок был готов к началу 1995 года и назывался Personal Home Page Tools. Умел он не очень много – понимал простейший язык и всего несколько макросов.

 

К середине 1995 года появилась вторая версия, которая называлась PHP/FI Version 2. Приставка FI – присоединилась из другого пакета Rasmusa, который умел обрабатывать формы (Form Interpritator). PHP/FI компилировался внутрь Apache и использовал стандартный API Apache. PHP скрипты оказались быстрее аналогичных CGI – скриптов, так как серверу не было необходимости порождать новый процесс. Язык PHP по возможностям приблизился к Perl, самому популярному языку для написания CGI-программ. Была добавлена поддержка множества известных баз данных (например, MySQL и Oracle). Интерфейс к GD – библиотеке, позволял генерировать картинки на лету. С этого момента началось широкое распространение PHP/FI.

 

В конце 1997 Zeev Suraski и Andi Gutmans решили переписать внутренний движок, с целью исправить ошибки интерпретатора и повысить скорость выполнения скриптов. Через полгода, 6 июня 1998 года вышла новая версия, которая была названа PHP 3.

 

К лету 1999 года PHP 3 был включен в несколько коммерческих продуктов. По данным NetCraft на ноябрь 1999 PHP использовался в более чем 1 млн. доменах.

 

Сейчас общедоступна версия PHP 4. Она сочетает в себе простоту предыдущих версий и новые широкие возможности.

1.2 Возможности PHP

Например, если Вы создаете форму на одной из ваших web страниц, то вам нужно что-нибудь для обработки информации, связанной с этой формой. Даже если вы хотите только передать информацию в другую web страницу, вам нужно будет иметь программу cgi, которая это сделает. PHP/FI делает чрезвычайно простым делом получение данных из форм и их обработку.

 

Предположим, что у вас есть форма:

 

<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>

<INPUT TYPE="text" name="name">

<INPUT TYPE="text" name="age">

<INPUT TYPE="submit">

</FORM>

 

Ваш display.html файл мог бы в этом случае содержать что-нибудь вроде:

 

<?echo "Hi $name, you are $age years old!<p>">

 

Это так просто! PHP/FI автоматически создает переменную для каждого поля ввода в вашей форме. Вы можете впоследствии использовать эти переменные в ACTION URL файле.

 

Следующий шаг, если только Вы определили, как использовать переменные, это начать играться с некоторыми тэгами, определяющими логический ход выполнения в ваших страницах. Например, если Вы хотели отобразить различные сообщения, основанные на том, что именно вводит пользователь, Вы используете if/else конструкцию. В примере выше, мы можем отображать различные сообщения, основанные на возрасте, который ввел пользователь, изменив наш display.html:

 

<?

if($age>50);

echo "Hi $name, you are ancient!<p>"; elseif($age>30);

echo "Hi $name, you are very old!<p>"; else;

echo "Hi $name."; endif;

>

 

PHP/FI обеспечивает очень мощный язык, который будет делать намного больше чем то, что показывает этот простой пример.

 

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

 

PHP/FI также имеет возможность принимать файл, загружаемый из любого, отвечающего требованиям RFC- 1867, web броузера. Эта возможность позволяет передавать как текстовые, так и двоичные файлы. С управлением доступом PHP/FI и его логическими функциями, у вас есть полный контроль над тем, кому позволено передавать файлы и что с этим файлом должно быть сделано , если он передан.

 

PHP/FI имеет поддержку для пакета базы данных, называемого mSQL. Это позволяет Вам помещать информацию в базу данных или обращаться за этой информацией через простые, встроенные прямо в ваши .HTML файлы, SQL запросы. Обработка базы данных через web страницу никогда не была проще.

 

2             Синтаксис языка PHP

Скрипт язык PHP подобен по синтаксису языку C по многим показателям. Он поддерживает переменные, массивы, обращения к функциям, различные типы переменных и множество других вещей, которые вам могут потребоваться для написания сложных cgi программ.

 

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

 

Программы, написанные на PHP, достаточно легкочитаемы. Написанный PHP – код легко зрительно прочитать и понять, в отличие от Perl-программ.

 

Каждая команда PHP начинается с тэга <? и заканчивается >. Или команды могут быть сгруппированы внутри одной пары <? > и отделяться друг от друга символом ; .

 

Поддерживаются переменные, имена переменных начинаются с символа $. Так например, чтобы присвоить значение 5 переменной a и затем отобразить ее, можно написать следующий фрагмент:

 

<?$a = 5>

<?echo $a>

 

 

Это можно записать также в виде:

 

<; $a = 5; echo $a >

 

Или даже:

 

<

$a = 5;

echo $a;

>

 

Лишние символы пробела, табуляции и новой строки игнорируются. Это нужно для того чтобы форматировать блоки программы PHP, для большего удобства чтения. Регистр написания имеет значение для имен переменных, но не для имен функций. Позже в этой документации, при обзоре функций, регистр используется только для того, чтобы сделать имена функций более читабельными. В фактической программе Вы можете использовать любой регистр, который пожелаете. Комментарии поддерживаются. Комментарии записываются точно так же как комментарии в Языке C. /* начинает комментарий, */ заканчивает комментарий. Комментарии могут быть помещены в любом месте внутри блока <? ... >.

 

3             Переменные в PHP

3.1   Типы переменных

Поддерживаются три типа переменных. Длинные целые (long int) , двойной точности с плавающей запятой (double) и символьные строки (strings). Тип переменных обнаруживается автоматически. Например:

 

<?$a = 5>

 

Заставляет $a стать переменной типа INTEGER.

 

<?$a = 5.0>

 

Заставляет $a стать переменной типа DOUBLE.

 

<?$a = "5">

 

Заставляет $a стать переменной типа STRING.

 

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

 

$a = $b + $c;

 

Может вести себя двояко. Если $b это число, то числовое значение $c добавляется к $b, и сумма сохраняется в $a. В этом случае тип $c не важен. Операция управляется типом первой переменной. Если $b строка, то значение строки $c сонкатенируется с $b, и результирующая строка помещается в $a.

 

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

 

3.2        Особенности ссылок на переменные

То есть имя переменной может устанавливаться и использоваться динамически. Нормальной переменной присваивается значение оператором типа:

 

$a = "hello";

 

При использовании ссылки на переменную берется значение переменной и обрабатывается как имя переменной. В вышеупомянутом примере, hello, может использоваться как имя переменной, используя два знака $. То есть.

 

$$a = "world";

На этот момент определены две переменных и сохранены в дереве символов PHP/FI:

 

Имя переменной         Содержимое переменной

Ahello                                             hello     

Hello                                               world

 

Следовательно, оператор:

 

echo "$a $$a";

 

Произведет точно такой же вывод как и:

 

echo "$a $hello";

 

То есть. Они выведут строку: hello world

 

3.3        Массивы

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

 

Ассоциативный массив - это массив, в котором индекс не обязательно должен быть последовательным рядом числовых значений. Индексом массива может быть любое число или строка. PHP/FI обеспечивает набор функций, чтобы манипулирования этими ассоциативными массивами. Это: Next(), Prev(), Reset(), End(), и Key().

 

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

 

<?

$a[0] = 5;

$a["hello"] = 6;

echo $a[0];

echo $a["hello"];

>

 

Обратите внимание, что, если имя переменной используется, и как массив и как обычная переменная, то имя обычной переменной является синонимом элементу массива с индексом "0". То есть.

 

$a = 1;

 

Это тоже самое что:

 

$a[0] = 1;

 

PHP/FI также поддерживает не-индексированные массивы. Не-индексированный массив генерирует собственный индекс, по мере добавления элементов к нему. Например:

 

$a[] = "Hello";

$a[] = "There";

 

Первому элементу, вставляемому в не-индексированный массив, всегда присваивается индекс 0, второму 1 индекс, и т.д. Следовательно вышеупомянутые элементы могут быть распечатаны с помощью:

 

echo $a[0];

echo $a[1];

 

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

3.4        Область видимости

Область видимости переменной это контекст, внутри которого она определена. Главным образом все переменные PHP/FI имеют только одну область. Однако, внутри определяемых пользователем функций действует локальная для функции область видимости. Любая переменная, используемая внутри функции по умолчанию ограничена локальной областью видимости. Например:

 

$a=1; /* глобальная переменная */

Function Test (

   echo $a;/* ссылка на локальную переменную */

);

Test();

 

Эта программа ничего не выведет, так как оператор echo работает с локальной версией переменной $a , и ей не было присвоено значение внутри этой области видимости. Вы можете обратить внимание, что это немного отличается от языка C, где глобальные переменные автоматически доступны функциям, если только специально не отменяются локальным определением. Это может вызвать некоторые проблемы, в случае когда люди могут неосторожно изменять глобальную переменную. В PHP/FI глобальная переменная должна быть объявлена глобальной внутри функции, если предполагается что она будет использоваться в этой функции. Пример:

 

$a=1;

$b=2;

Function Sum $first,$second (

   global $a,$b;

   $b = $a + $b;

);

Sum();

echo $b;

 

Эта прграмма выведет "3". После объявления $a и $b глобальными внутри функции, все ссылки к любой из них будут относится к их глобальной версии. Нет никакого ограничения на число глобальных переменных, которые могут использоваться функцией. Однако, переменная должна существовать в глобальной области видимости до вызова функции. Нельзя создать новые глобальные переменные изнутри функции.

 

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

 

Function Test (

  $a=0;

  echo $a;

  $a++;

);

 

Эта функция совершенно бесполезна, так как, каждый раз при вызове, она устанавливает $a в 0 и печатает "0". Оператор $a++, который увеличивает переменную, не дает никакого результата, так как, как только проиходит выход из функции переменная $a исчезает. Чтобы сделать полезную функцию подсчета, которая не будет терять значения текущего счетчика, переменная $a объявляется статической:

 

Function Test (

  static $a=0;

  echo $a;

  $a++;

);

 

Теперь, каждый раз при вызове функции Test(), она будет печатать значение $a и затем увеличивать его.

 

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

 

Function Test (

  static $count=0;

  $count++;

  echo $count;

  if($count < 10 {

    Test();

  }

);

4          Логические конструкции языка PHP

4.1 Общие сведения

В этом плане язык PHP совершенно прост. Следующие команды используются, для управления ходом выполнения:

 

if(условие)

else

elseif(условие)

endif

switch(выражение)

case выражение

default

break

endswitch

while

endwhile

include

exit

 

Синтаксис условных выражений подобен синтаксису в языке C. == проверка на равенство.!= означает не равно. Также поддерживаются: >, <, >=, <=. Условное И - &&, условное ИЛИ - ||.

 

Примеры:

 

<?

if($a==5 &&  $b!=0 );

$c = 100 + $a / $b;

endif;

>

 

Этот пример может быть записан в стандартном синтаксисе C:

 

<?

if($a==5 && $b!=0) {

$c = 100 + $a / $b;

}

>

 

Нет никакого различия между двумя синтаксисами. Мне лично больше нравится использовать endif, endswitch и endwhile, так что я точно знаю, какую конструкцию я заканчиваю. Однако, эти конструкции окончания могут быть всегда заменены на закрывающую фигурную скобку.

 

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

 

<?if($a==5 &&  $b!=0)>

<b>Normal html text</b>

<?endif>

 

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

 

<?if($a==5 &&  $b!=0) {>

<b>Normal html text</b>

<? } >

 

Обе версии верны, и они будут делать одно и тоже.

4.2        Особенности циклов While

Вы можете зацикливать управление внутри программы PHP, используя конструкцию while(); endwhile;.

 

<?

  $a=0;

  while($a <100) {

$a++;

echo $list[$a];

  }

>

 

Вышеупомянутый пример показывает использование цикла while, чтобы отобразить содержимое массива. Хотя язык PHP поддерживает операторы типа ++ и -- для увеличения или уменьшения переменной, они не обрабатываются точно так же как в языке C . В PHP нет концепции пре- и пост- инкрементирования как это есть в С. Тот же результат может быть получен и с циклом while(); endwhile;.

4.3        Конструкция Switch

PHP поддерживает switch конструкцию очень похожую на эквивалентную в C.

 

<?   $a=0;   switch($a) {    

case 1;       echo "a is 1";

              break;    

case "hello"; echo "a is hello";

              break;    

default;      echo "a is unknown";

              break;  

} >

 

Выше - пример конструкции switch. Она подобна последовательности конструкций if/elseif/else, но более легко читаема. Единственое различие между конструкцией switch PHP и подобным ему в C - это, что в конце каждой строки используется точка с запятой. Нет никаких двоеточий. То же самое может быть получено с switch(); endswitch;.

 

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

5. Математические выражения в PHP

PHP поддерживает полный набор математических операций, в выражениях. Учитывается порядок операций. Следующие операторы допустимы:

 

<? $a = 2 + 1 > Сложение

<? $a = 2 - 1 > Bычитание

<? $a = 2 * 1 > Умножение

<? $a = 2 / 1 > Деление

<? $a = 2 % 1 > Деление по модулю

 

 

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

 

<?$a = (2"+1")*3+6/3>

 

Поддерживаются C-подобные операторы увеличения += и уменьшения -= . То есть.

 

<? $a += $b>

 

Это эквивалентно:

 

<? $a = $a + $b>

 

Поддерживаются C-подобные поразрядные операторы =& и |=. То есть.

 

<? $a &== 4>

 

Это эквивалентно:

 

<? $a = $a &  4>

 

6. Перегруженные операторы для работы с типами данных

Перегруженный оператор - это оператор подобный например '+' , который может делать различные, основываясь на типах выражений, к которым он применяется.

 

Проблема состоит в том, что PHP понимает 3 типа переменных. Integer, Double и String. Когда переменной впервые присваивается значение, PHP автоматически оперделяет тип этой переменной.

 

То есть.

 

$a = 1; Тип будет integer

$b = 1.5; Тип будет double

$c = "1";Тип будет string

 

 

Теперь, что произойдет, если Вы сделаете что-нибудь вроде:

 

$d = $a + $c;

 

Синтаксический анализатор рассматривает первую часть арифметического выражения и использует его для результата а также характер действия, которое должно быть выполнено. В вышеупомянутом прмере, так как $a - integer, $d будет тоже integer, и выполнение целочисленного сложения , даст результат:

 

$d = 2 Тип integer

 

Следовательно:

 

$d = $c + $a

 

 

Результаты в:

 

$d = "11"Тип - string

 

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

 

Решение состоит в механизм простого приведения типа .

 

Фактически все переменные автоматически преобразовываются во все 3 типа, и только внутренний флажок отмечает, какого типа переменная, фактически. Так, когда я говорю:

 

$a = 1;

 

Внутри в таблице идентификаторов я сохраняю 3 версии.

 

Integer:  1  <--- flag

Double: 1.0

String: "1"

 

Функция SetType() может перемещать флажок, указывающий тип переменной.

 

SetType($a,"double");

 

Это вынудит рассматривать $a, как double в дальнейшем.

 

Функция GetType() возвращает тип.

 

GetType($a) вернет, в этом случае, "double" .

 

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

 

IntVal($a)вернет  1

DoubleVal($a)вернет   1.0

StrVal($a)вернет   "1"

 

 

Перегруженный оператор не изменяет характер переменных PHP, но дает Вам некоторые инструментальные средства, для лучшей работы с ними. PHP - не нечто, что напоминало бы не вполне развитый Perl. PHP должен быть малым и быстрым. Perl имеет дело ловушкой перегруженных операторов, заставляя оператор вроде '+' работать только с числами. Если Вы суммировать строки, нужно использовать оператор '.'. Как только появляются отдельные операторы для каждого типа, это делает язык намного более сложным. То есть. Вы не можете использовать '==' для строк, Вам придется использовать 'eq'. Я не вижу смысла, особенно для чего-то вроде PHP, где большинство скриптов будут довольно простыми и в большинстве случаев, написанными непрограммистами, которые хотят язык с базовым логичным синтаксисом, который не требует больших навыков.

 

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

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

 

<?$t=time()>

 

Эта запись присваивает значение, возвращаемое функцией time(), переменной t.

 

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

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

Abs(arg)

Abs возвращает абсолютное значение аргумента.

Cos(arg)

Cos возвращает косинус аргумента, заданного в радианах.

BinDec(binary_string)

BinDec возвращает десятичный эквивалент двоичного числа, представленного параметром binary_string. Самый большое число, которое может быть преобразовано - длиной 31 бит или 4294967295 в десятичном выражении.

DecBin(number)

DecBin возвращает строку, содержащую двоичное представление заданного, в качестве аргумента, числа. Самое большое число, которое может быть преобразовано ограничено длиной 31 бит или 4294967295 в десятичном представлении

DecHex(number)

DecHex преобразовывает десятичное число в шестнадцатеричный строку.

DecOct(number)

DecOct преобразует десятичное число в восьмиричное число.

Log(arg)

Файл регистрации возвращает натуральный логарифм аргумента.

Log10(arg)

Log10 возвращает логарифм аргумента по основанию 10.

Rand()

Rand возвращает случайное число между 0 и RANDMAX. RANDMAX может быть определен функцией getRandMax. Обычно специфический диапазон выбирается, просто применяя оператор модуля к результату.

Srand(integer)

Srand инициализирует генератор случайных чисел. Эта функция принимает любое целое число в качестве аргумента. Можно для выбора инициализационного число, использовать функцию date, чтобы задать текущее количество прошедших секунд, по окончании минуты. Обратите внимание, что эта функция не возвращает значение! Эта функция просто инициализирует генератор случайных чисел для последующих обращений к функции rand(). Напр.

<?srand(date("s")>

Sin(arg)

Sin возвращает синус аргумента в радианах.

Sqrt(arg)

Sqrt возвращает квадратный корень параметра.

Tan(arg)

Tan возвращает тангенс параметра в радианах.

 

7.2 Работа с файлами

ChDir(dir)

ChDir изменяет текущий рабочий каталог на каталог, заданный аргументом.

ChGrp(file,group)

ChGrp изменяет идентификатор группы заданного файла.

ChMod(file,perms)

Функция ChMod изменяет права доступа к файлу, заданному аргументом. Параметр perms задается в восьмеричном виде.

ChOwn(file,owner)

ChOwn изменяет владельца заданного файла. Обратите внимание, что это будет работать только в том случае, если PHP/FI выполняется от имени суперпользователя (что вообще то не очень хорошая идея).

closeDir()

CloseDir закрывает каталог, открытый функцией openDir.

fclose($fd)

fclose() закрывает файл, открытый fopen(). Аргумент - на файловый дескриптор, который возвращается вызовом fopen().

feof($fd)

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

fgets($fd,bytes)

fgets() считаетыват строку из файла, открытого fopen(). Аргументы - файловый дескриптор, возвращаемый fopen() и максимальное число байт для считывания. Чтение оканчивается, когда считано максимальное число байтов, или на конце строки. Эта функция подобна вызову fgets() в C. См. также fputs().

fgetss($fd,bytes)

Идентична fgets(), за исключением того, что эта функция пытается удалить любые тэги HTML или тэги PHP/FI, при чтении файла.

$array = File(filename)

File читает весь файл и возвращает массив, каждый элемент которого, содержит строку файла, индекс в массиве начинается с 0.

fileAtime(filename)

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

fileCtime(filename)

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

 

fileGroup(filename)

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

fileInode(filename)

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

fileMtime(filename)

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

fileOwner(filename)

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

filePerms(filename)

FilePerms возвращает биты доступа файла. Это - st_mode поле структуры stat Unix. Если файл не существует, или если к нему нельзя было обратиться по какой-либо другой причине, эта функция возвращает -1.

fileSize(filename)

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

$fp = fopen(filename,mode)

Fopen() открывает файл и возвращает указатель на дескриптор файла. Если файл не существует, или если к нему нельзя было обратиться по какой-либо другой причине, эта функция возвращает -1. Функция подобна вызову C fopen(). Параметр filename - относительный или абсолютный путь к файлу, который нужно открыть, и параметр режима - один из, "r", "r+", "w", "w+", "a", "a+".

fputs(fp,string)

Fputs() записывает строку в файл, открытый функцией fopen(). Параметры - указателя дескриптора файла, который возвращается fopen() и строка для записи. Обратите внимание, что аргумент строка может содержать специальные символы, \n, \r и \t, для вывода новой строки, возвраты каретки и табуляции соответственно. См. также fgets().

fseek(fp,pos)

Fseek() устанавливает указатель файла, заданный параметром $fd; Значением fp является значение возвращаемое вызовом fopen(). Указатель файла установливается от начала файла плюс смещение, определяемое параметром pos.

fp = fsockopen(hostname,port)

Fsockopen() открывает cокет соединение и возвращает указателя дескриптора файла. Этот указатель дескриптора файла может использоваться функциями fgets, fputs и fclose. Параметры - адрес сервера и номер порта. Возвращаемые значения: -3, если нелзя было создать сокет, -4, если потерпела неудачу попытка поиска адреса соответствующего имени сервера hostname , -5 если, в соединение отказано, или закончилось тайм-аутом, -6 если потерпело неудачу вызов фактический вызов fdopen() или -7, если потерпел неудачу вызов setvbuf(). Если номер порта равен 0, то параметр hostname будет рассматриваться как имя файла для сокета файлового пространства имен (File NameSpace), если ваша операционная система их поддерживает.

pos = ftell(fp)

Ftell() возвращает позицию указателя файла, заданного параметром fp, возвращаемого обращением к fopen(). Позиция может быть использована в качестве параметра для fseek().

getAccDir()

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

rewind($fd)

rewind() сбрасывает указатель файла, заданный параметром $fd, который является значением, возвращенным вызовом fopen(). Указатель файла установливается в начало файла.

rewindDir()

RewindDir перемещает указатель текущего каталога назад к началу каталога. Используйте функцию openDir, чтобы открыть каталог перед вызовом этой функции.

RmDir(dir)

RmDir() удаляет данный каталог.

 

7.3 Работа со строками

Crypt(string,[salt])

Функция Crypt шифрует строку, используя стандартный в Unix метод шифрования - DES . Аргументами являются строка, которую нужно зашифровать и необязательная двух-символьная строка - затравка, служащая базой для шифрования. См. справку по функции Crypt для вашей системы Unix, для более полной информации. Если на вашей системе функция crypt не поддерживается, то Вы можете использовать пакет UFC-crypt Глэда Майкла, который является паблик домен.

strchr(string,arg)

Strchr и strstr - фактически идентичные функции. Они могут взаимозаменямы при использовании и включены обе в целях завершенности. Они возвращают часть строки параметра, начиная с места, где найдена данная подстрока . Например, в строке, "This is an example string" , вызов: <echo strstr($string, "an ") > возвратил бы строку: "an example string".

strlen(string)

Strlen возвращает длину строки.

strrchr(string, arg)

Strrchr будет искать одиночный символ, начиная с конца аргумента string, двигаясь к началу. Она возвращает строку, начиная с символа поиска, если символ был найден и пустую строку, если этого не произошло.

strstr(string,arg)

Strstr и strchr - фактически идентичные функции. Они могут использоваться взаимозаменяемо и включены обе толко для законченности. Они возвращают часть параметра string, начиная с места, где найдена данная подстрока . Например, в строке, "This is an example string" выше, вызов: <? echo strstr ($string, "an")> возвратил бы строку: "an example string".

strtok(string,arg)

Strtok используется для разбивки строки. То есть если есть строка подобно "This is an example string" Вы могли бы разбить эту строку на индивидуальные слова, используя пробел как маркер. Вы использовали бы следующую программу:

<?

  $string = "This is an example string";

  $tok = strtok($string," ");

  while($tok);

     echo "Word=$tok<br>";

     $tok = strtok(" ");

          endwhile;

>

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

strtolower(string)

Strtolower преобразует все символы, аргумента string, в символы строчных букв.

strtoupper(string)

Strtoupper преобразует все символы строки в символы верхнего регистра.

strval(variable)

Strval возвращает строковое значение переменной.

substr(string, start, length)

Substr возвращает часть заданной строки. Позиция начала задается параметром start. Первая позиция в строке - позиция 0. А параметр length определяет количество символов от позиции начала.

 

7.4 Работа с HTTP

GetEnv(string)

GetEnv возвращает значение значения переменной среды, заданной строкой. Обычно эта функция не используется, так как переменные окружения доступны PHP/FI непосредственно. Если сделанна ссылка на переменную, которая не найдена во внутренней таблице идентификаторов, то автоматически просматривается среда окружения. GetEnv нужно использовать, когда необходимо гарантировать, что переменная среды окружения не будет перезаписана поверх нормальной переменной PHP/FI. Механизмы защиты, которые полагаются на переменные, определяемые http-сервером, таких как REMOTE_ADDR и REMOTE_HOST, должны получать значения этих переменных, используюя GetEnv вместо того, стобы непосредственно обращаться к ним (напр. $REMOTE_ADDR), чтобы избежать, что кто-либо, составив фальшивую форму и передав данные на ваш сервер, сможет обойти какой-либо механизм защиты, который мог-бы быть у вас.

getHostByName(domain_name)

GetHostByName преобразует переданное имя домена в IP адрес в формате nnn.nnn.nnn.nnn.

getHostByAddr(ip_address)

GetHostByAddr преобразует данный IP адрес в формате nnn.nnn.nnn.nnn в полное имя домена.

getLastAccess()

GetLastAccess возвращает дату и время последнего обращения к странице, в формате unix. Это значение может быть передано, впоследствии функции Date() для форматирования.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getLastbrowser()

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

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getLastEmail()

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

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getLastHost()

GetLastHost возвращает имя серверас которого было последнее обращени к текущей странице.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getLastMod()

GetLastMod возвращает дату и время, в формате unix, времени последней модификации страницы. Это значение может быть передано функции Date() для форматирования.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getLastref()

GetLastRef возвращает URL, с которого было последнее обращение к странице.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getMyInode()

GetMyInode возвращает числовой inode текущего HTML файла.

getStartLogging()

GetStartLogging возвращает время и дату в, формате Unix, времени начала регистрации на текущей странице. Более точные значения получаются при использовании регистрации на основе mSQL, так как маркер времени хранится в каждом из файла регистрации. Для dbm-регистрации возвращается время создания каталог файлов регистрации пользователем.

getToday()

GetToday возвращает общее число обращений к текущая странице с 12 пополуночи локального времени.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

getTotal()

GetTotal возвращает общее число обращений к текущая странице , с тех пор как была начата регистрация доступа для страницы.

Эта функция доступна, только если PHP компилировался с опцией регистрации доступа.

 

Кроме приведенных функций, PHP включает в себя еще целый набор функций для обработки массивов, для работы с базами данных mSQL, файлами dbf, и мн. др., для работы с системными таймерами, для запуска команд Unix, для разгарничения доступа к файлам и тд, и тп.

 

Заключение

Разработчикам Web-приложений нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем : поиск информации, продажа продуктов, конференции и т.п. Традиционно все это реализовалось CGI-скриптами, написанными на Perl. Но CGI- скрипты очень плохо масштабируемы. Каждый новый вызов CGI, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант – он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft.

 

Синтаксис PHP очень похож на синтаксис C или Perl. Люди, знакомые с программированием, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти.

 

Программы, написанные на PHP, достаточно легкочитаемы. Написанный PHP – код легко зрительно прочитать и понять, в отличие от Perl-программ.

 

Последние годы неимоверно быстро растет количество общедоступных бесплатных готовых скриптов на PHP для создания и поддержания собственного сайта.

 

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


Использованные информационные ресурсы:

1. "PHP/FI" Дик Брендон (www.citmgu.ru)

2. "Руководство PHP" (www.php.net)

3. "Вступление в PHP и MySQL" Вадим Ткаченко (http://web.stealthcomp.com)

4. www.webreview.com

5. www.webhowto.ru

6. www.devshed.com

7. www.rsdn.ru

 

 

 

(c) Morock 2004

 

 

 

Hosted by uCoz