Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1501 Практична робота на тему Синтаксис мови програмування PHP

Практична робота на тему Синтаксис мови програмування PHP

« Назад

Синтаксис мови програмування PHP

PHP — мова написання скриптів, які вбудовуються безпосередньо в гіпертекстові файли й виконуються на Web-сервері. Програма на PHP заключена в теги, а інтерпретатор обробляє команди між цією парою тегів і формує остаточний файл, що передається на локальну машину. Як уже згадувалося, мова PHP досить проста і основні її конструкції (цикли, умови, функції) нагадують С.

У цей час випущена п‘ята версія PHP з поліпшеними продуктивністю й можливостями. Так, в PHP 5 з'явилися сесії, подібні Active Server Page, що й дозволяють маніпулювати даними протягом усього сеансу доступу користувача, розширені вбудовані функції системи. Кожна конструкція PHP закінчується крапкою з комою, блоки програм виділяються фігурними дужками, для операцій присвоювання використовується знак рівності («=»), а для порівняння — подвійна рівність («==»). Мова підтримує унарні операції, на зразок «++», «—=», «+=» і ін. Крім великої кількості вбудованих функцій для роботи з рядками, числами, датами, файлами й масивами можна повідомляти додаткові функції за допомогою ключового слова function. До особливостей PHP ставиться формат запису змінних і масивів — кожний ідентифікатор змінної починається зі значка $.

Масиви в PHP служать для зберігання даних різних типів, і на відміну від синтаксично строгих мов програмування в них допускається присвоювання елементам масиву чисел, рядків, дат і інших типів даних. Змінні можуть автоматично конвертуватися в масиви й назад, наприклад виконання наступної конструкції не викликає помилок (правда, при перетворенні попередні значення змінної виявляються загубленими):

// змінної $myvar привласнюється строковий вираз
$myvar=«filename.txt»;
// змінна $myvar перетвориться в масив, кожний елемент якого — окремий рядок файлу
$myvar=File($myvar);
// змінної $myvar привласнюється числове значення
$myvar=0;


Масиви автоматично створюються при завантаженні вмісту файлу або при читанні рядка таблиці, але їх можна повідомляти й за допомогою функції array(), наприклад:
 $a=array();
 $a[1]=«січень»;
 $a[2]=«лютий»;
 :
 :
 $a[12]=«грудень»;


У квадратних дужках вказується індекс масиву. Якщо він опускається, то масив вважається динамічним. Так, можна написати:
$b=array();

 $b[]=1;
 $b[]=2;
 $b[]=3;
 $b[]=4;


При цьому в елементі $b[0] буде зберігатися значення 1, а в $b[2] — значення 3.
Для виводу значень в PHP використовуються оператори echo, print і функція printf(). Як правило, конструкції echo і print роблять те саме, а функція printf(), крім видачі строкових значень, виконує їхнє форматування, наприклад:

$name=«Петров»;
$name1=«Петро»;
print «<table>»;
printf(«<tr><td>%s</td><td>%s</td></tr>\n», $name, $name1);
print «</table>»


PHP інтегрований з Web. Це, зокрема, означає, що внесені у форми значення, передані гіпертекстовому файлу параметри, збережені Web-броузером, автоматично конвертуються в змінні. Так, описавши у формі поле введення <input type=«text» name=«pdate» size=«12» value=«дата»>, у скрипті можна маніпулювати змінної $pdate. Інтеграція з Web дозволяє створювати динамічні Web-сторінки, що залежать від параметра, наприклад гіперпосилання, по якому перейшов користувач, або введеного у форму значення. Скажемо, задавши у файлі список тем опитувань, можна вивести їх у традиційній для сайтів формі.

<form method=«POST» action=«dovotes.php3»>
<?
$votefile=File(«votes.txt»);
for ($i=0; $i<count
($votefile); $i++)
{
print «<p><input type=radio name=iselect value= $votefile[$i]>»;
}
?>
<center><input type=«submit» value=«Готове» name=«B1»></center>
</form>

Елементи мови

Будь-який скрипт PHP складається з послідовності операторів. Оператор може бути присвоюванням, викликом функції, циклом, умовним виразом або порожнім виразом. Оператори звичайно закінчуються крапкою з комою. Також оператори можуть бути об'єднані в групи операторів у фігурних дужках. Група операторів також є оператором. У цій частині описані різні типи операторів.


Константа

PHP визначає кілька констант і надає механізм для визначення Ваших констант. Константи схожі на змінні, але вони мають злегка змінений синтаксис.

Визначені константи - це __FILE__ and __LINE__, які відповідають імені файлу й номеру рядка, який виконується в даний момент.

Приклад 1. Використання __FILE__ і __LINE__

<?php
function report_error($file, $line, $message) {
    echo "An error occured in $file on line $line: $message.";
} 
report_error(__FILE__,__LINE__, "Something went wrong!");
?>    

Ви можете визначити додаткові константи за допомогою функцій define() і undefine() .

Приклад 2. Опис констант

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
undefine ("CONSTANT");
?>
     


Вирази

Вирази - це наріжний камінь PHP. В PHP майже все є виразами. Найпростіший і найбільш точний спосіб визначити вираз - це "якесь значення, що має, ".

Найпростіший приклад, що приходить на думку це константи й змінні. Коли ви друкуєте "$a = 5", ви привласнюєте значення '5' змінної $a.

Трохи більш складні приклади виразів - це функції. Приміром, подумайте над наступною функцією :

function foo () {
return 5;
}
  

Припускаючи, що ви знайомі з концепціями функції (якщо ні, гляньте на частину, присвячену функціям), ви вважаєте, що $c = foo() це практично те ж саме, що написати $c = 5 і ви праві. Функції - це вирази з тим значенням, які вони повертають. Тому що foo() повертає 5, значення виразу 'foo()' - 5. Звичайно функції підраховують значення, що вертається,а не повертають постійне значення.

Звичайно, значення в PHP не зобов'язано бути цілими й найчастіше вони не є такими. PHP підтримує 3 скалярних типів значень : ціле, число із плаваючою крапкою і рядка ( скалярні вирази ви не можете "розбити" на більш маленькі частини, як, приміром, масиви). PHP підтримує 2 складових (нескалярних) типу : масиви й об'єкти. Кожне з таких значень може бути привласнене змінній або повернуте функцією.

Має сенс запис типу '$b = ($a = 5)' схожа на запис'$a = 5; $b = 5;' (крапка з комою відзначає кінець виразу). Тому що присвоювання розглядаються з права на ліво, ви також можете написати '$b = $a = 5'.

В PHP є 2 типу інкремента - попередній і наступний. І попередній і наступний інкремент збільшує значення змінної і впливає на змінну ідентично. Різниця в значенні виразів інкремента. Попереднє збільшення, яке записується як '++$variable', прирівнюється збільшеної змінної (PHP збільшує змінну до того, як прочитати її значення).

Дуже розповсюджений тип виразів це вирази порівняння. Ці вирази мають значення 0 або 1 (означає неправду або істину відповідно). PHP підтримує > (більше, чим), >= ( більше або рівно), = (рівно), < (менше,чим) і <= (менше або рівно). Ці вирази в основному використовуються усередині умов, наприклад оператора IF.

Останній приклад виразів, з якими ми розберемося, це сполучені вирази оператор-присвоювання. Ви вже знаєте, що для того, щоб збільшити значення $a на одиницю, ви можете написати '$a++' або '++$a'. Але якщо слід збільшити значення більше, чим на одиницю, наприклад - на 3? Ви можете написати '$a++' кілька раз, але це не дуже зручно й ефективно. Набагато більше поширене написання '$a = $a + 3', '$a + 3' обчислюється, як значення $a плюс 3, а потім привласнюється змінної $a, у результаті чого значення $a збільшується на 3 Будь-який бінарний оператор може бути записаний таким методом, наприклад : '$a-=5' (відняти 5 зі значення $a), '$b*=7' (помножити значення $a на 7) і так далі.

Є ще такий вираз, який може здатися незнайомим, якщо ви не зустрічалися з ним в інших мовах - умовний оператор із трьома операндами :

$first ? $second : $third

Якщо значення першого виразу істинно (не рівно 0), то виконується другий вираз і це є результатом даного умовного виразу. Інакше виконується третій оператор.

Цей приклад повинен допомогти Вам краще зрозуміти попереднє і наступне збільшення і взагалі вираз ?

function double($i)    /* функція подвоєння змінної */
{
return $i*2;
}
$b = $a = 5;    /* привласнюємо значення змінним $a і $b */
$c = $a++;    /* наступне збільшення, привласнюємо $c початкове значення $a (5)*/
$e = $d = ++$b;    /* попереднє збільшення, привласнюємо $d і $e збільшене значення$b (6) */
/* отут і $d і$e рівні6 */
$f = double($d++);    /* привласнити подвоєне значення $d до його збільшення, тобто 2*6 = 12, змінної $f*/
$g = double(++$e);    /* привласнити подвоєне значення $e після його збільшення, тобто 2*7 = 14, змінної g */
$h = $g += 10;    /* спочатку збільшити значення $g на 10, що дає в результаті 24, а потім привласнити це значення змінної $h, що також дає 24 */

Таблиця 1

Арифметичні оператори

приклад

назва

результат

$a + $b

Додавання

Сума $a і $b.

$a - $b

Віднімання

Віднімає $b з $a.

$a * $b

Множення

Добуток $a і $b.

$a / $b

Ділення

Ділення $a на $b.

$a % $b

Залишок ділення

Залишок від ділення $a на $b.

Оператор ділення("/") повертає цілу величину якщо обоє оператори - цілі (або рядок перетворено в ціле). Якщо кожний операнд є величиною із плаваючої коми, виконається розподіл із плаваючою комою.


Оператори рядків

B дійсності є тільки один оператор -- оператор конкатенації (".").

$a = "Hello ";
$b = $a . "World!"; // тепер $b = "Hello World!"
     

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

Основним оператором присвоювання є "=". Ви могли подумати що це "рівно"("equal to"). Але це не так. У дійсності це означає що лівий операнд одержує значення виразу з права (збірне присвоювання).

Значенням виразу присвоювання є величина, що привласнюється. Тому якщо "$a = 3", то це 3. Це дозволить Вам робити деякі мудровані речі:

$a = ($b = 4) + 5; // тепер $a рівно 9, а $b стало рівним 4.

На додаток до основних операторів присвоювання є додаткові "комбінаційні оператори", для всіх арифметичних і строкових операторів, що дозволяє Вам використовувати значення у виразах і потім установлювати своє значення в результаті цього виразу. Наприклад:

$a = 3;
$a += 5; // тепер $a рівно 8, як якби ми сказали: $a = $a + 5;
$b = "Hello ";

Бінарні Оператори(Побітові Логічні Оператори)

Бінарні Оператори дозволяють вам змінювати біти в цілих числах.

Table 7-2. Бінарні Оператори

приклад

назва

результат

$a & $b

И

Будуть установлені біти, які були встановлені і в $a і в $b.
*Приклад:
 $a=5; /* 0101 */
$b=12; /* 1100 */
$c=$a & $b; /* $c буде рівно 4 (0100) */

$a | $b

Або

Будуть установлені біти, установлені в $a або $b .
*Приклад:
 $a=5; /* 0101 */ $b=12; /* 1100 */ $c=$a|$b; /* $c буде (1101) */

~ $a

Не

Будуть установлені не_присутні в $a біти (реверс)
*Приклад:
 $a=5; /* 0101 */ ~ $a /* $a буде рівно x (1010) */

 

Логічні оператори

Таблиця 7-3. Логічні оператори

приклад

назва

результат

$a and $b

И

Істина, якщо дійсні $a і $b.

$a or $b

Або

Істина, якщо дійсні $a або $b.

$a xor $b

Або

Істина, якщо дійсні $a або $b, але не обоє.

! $a

Не

Істина, якщо не істинно $a.

$a && $b

И

Істина, якщо дійсні й $a і $b.

$a || $b

Або

Істина, якщо дійсні $a або $b.

Різниця у двох різних варіантах операторів "and" і "or" - у відмінності пріоритетів операцій. (см. нижче)

Оператори Порівняння

Оператори Порівняння, як і мається на увазі в їхньому імені, дозволяють Вам порівнювати дві величини.

Таблиця 7-4

Оператори Порівняння

приклад

назва

результат

$a == $b

рівно

істина, якщо $a еквівалентно $b.

$a != $b

Не рівно

Істина, якщо $a не еквівалентно $b.

$a < $b

 Менше ніж

Істина якщо $a менше ніж $b.

$a > $b

Більше чому

Істина якщо $a більше $b.

$a <= $b

Менше або рівно

Істина, якщо $a менше або рівно $b.

$a >= $b

Більше або рівно

Істина, якщо $a більше або рівно $b.

 


IF

Структура IF це одна з найважливіших можливостей багатьох мов, включаючи PHP. Вона дозволяє організувати виконання фрагментів коду за умовою. Можливості PHP по використанню виразу IF схожа на C++:

if (expr) statement

Як пояснювалося в частині про вирази, обчислюється логічний результат "expr" . Якщо expr рівно TRUE, то PHP виконає "statement", а якщо FALSE - проігнорує.

Наступний приклад виведе фразу 'a is bigger than b' якщо $a більше $b:

if ($a > $b)
print "a is bigger than b";

Найчастіше Вам потрібно виконати більше ніж один вираз за умовою. Звичайно, не треба оточувати кожний вираз конструкцією IF. Замість цього ви можете згрупувати кілька виразів у блок виразів. Приміром, наступний код не тільки виведе фразу, але і привласнить значення $a змінної $b:

if ($a > $b) { print "a is bigger than b"; $b = $a; }

Вираз IF може мати необмежений ступінь вкладеності в інші вирази IF, що дозволяє Вам ефективно використовувати виконання за умовою різних частин програми.


ELSE

Найчастіше Вам потрібно виконати один вираз, якщо дотримується яка-небудь умова і інший вираз якщо ні, то. От для цього застосовується  ELSE. ELSE розширює можливості IF по частині обробки варіантів виразів, коли воно рівно FALSE. Даний приклад виведе фразу 'a is bigger than b' якщо $a більше $b, і 'a is NOT bigger than b' а якщо ні, то: 

if ($a > $b) { 
print "a is bigger than b"; 
} else { 
print "a is NOT bigger than b"; 
}
     

Вираз ELSE виконується тільки якщо вираз IF рівно FALSE, а якщо є конструкції ELSEIF - то якщо і вони також рівні FALSE (див. нижче).


ELSEIF

ELSEIF, як і випливає з його назви, є комбінацією IF і ELSE, ELSEIF як і ELSE дозволяє виконати вираз, якщо значення IF рівно FALSE, але на відміну від ELSE воно виконається тільки якщо вираження ELSEIF рівно TRUE.Приміром код, що випливає, виведе 'a is bigger than b' якщо$a>$b, 'a is equal to b' якщо $a==$b, і 'a is smaller than b' якщо$a<$b:

if ($a > $b) {
print "a is bigger than b";
} elseif ($a == $b) {
print "a is equal to b";
} else {
print "a is smaller than b";
}
     

Усередині одного вираження IF може бути трохи ELSEIF. Перше вираження ELSEIF (якщо такі є), яке буде рівно TRUE, буде виконано. В PHP3 ви можете написати 'else if' (два слова), що буде значити те ж саме, що й 'elseif' (одне слово).

Вираження ELSEIF буде виконано тільки якщо вираження IF і всі попередні ELSEIF рівно FALSE, а даний ELSEIF рівний TRUE.


Інший синтаксис для оператора IF : IF(): ... ENDIF;

PHP3 пропонує інший шлях для групування операторів з оператором IF. Найбільше часто це використовується коли ви впроваджуєте блоки HTML усередину оператора IF, але взагалі може використовуватися де завгодно. Замість використання фігурних дужок за "IF(вираження)" повинне випливати двокрапка, одне або кілька виражень і завершальний ENDIF. Розглянете наступний приклад :

<?php if ($a==5): ?> A = 5 <?php endif; ?>

У цьому прикладі блок "A = 5" впроваджений усередину виразу IF, використовуваного альтернативним способом. Блок HTML буде видний тільки якщо $a рівно 5.

Цей альтернативний синтаксис застосуємо і до ELSE і ELSEIF (expr) .От приклад подібної структури :

if ($a == 5):
print "a equals 5";
print "...";
elseif ($a == 6):
print "a equals 6";
print "!!!";
else:
print "a is neither 5 nor 6";
endif;
      

WHILE

Цикл WHILE - найпростіший тип циклу в PHP. Він діє як і його аналог в C++. Основна форма оператора WHILE :

WHILE(expr) statement

Зміст оператора WHILE простий. Він пропонує PHP виконувати вкладений оператор доти поки expr рівно TRUE. Значення виразу перевіряється щораз при початку циклу, тому якщо значення виразу зміниться усередині циклу, то він не перерветься до кінця поточної ітерації (виконання всього блоку вкладених операторів - це одна ітерація). Іноді, якщо значення expr рівно FALSE із самого початку, цикл не виконується жодного разу.

В IF ви можете згрупувати трохи операторів усередині фігурних дужок або використовувати альтернативний синтаксис :

WHILE(expr): вираз... ENDWHILE;

Наступні приклади ідентичні - обоє виводять номера з 1 по 10:

/* example 1 */ 
$i = 1;
while ($i <= 10) {
print $i++;  } 
/* example 2 */ 
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
     

DO..WHILE

Цикл DO..WHILE дуже схожий на WHILE за винятком того, що значення логічного виразу перевіряється не до, а після закінчення ітерації. Основна відмінність у тому, що DO..WHILE гарантовано виконається хоча б один раз, що у випадку WHILE не обов'язково.

Для циклів DO..WHILE існує тільки один вид синтаксису:

$i = 0;
do {
print $i;
} while ($i>0);
     

Цей цикл виконається один раз, тому що після закінчення ітерації буде перевірене значення логічного виразу, а воно рівно FALSE ($i не більше 0), і виконання циклу завершиться.

Досвідчені програмісти на C++ знайомі з іншим використанням DO..WHILE, що дозволяє припинити виконання блоку операторів у середині шляхом впровадження його в цикл DO..WHILE(0) і використання оператора BREAK. Наступний код демонструє таку можливість :

do {
if ($i < 5) {
print "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
print "i is ok";
...process i...
} while(0);   

 


FOR

Цикли FOR - найбільш потужні цикли в PHP. Вони працюють подібно їхнім аналогам в C++. Синтаксис циклу FOR :

FOR (expr1; expr2; expr3) statement

Перший вираз (expr1) безумовно обраховується(виконується) на початку циклу.

На початку кожної ітерації обчислюється expr2. Якщо воно рівно TRUE, то цикл триває і виконуються вкладені оператори. Якщо воно рівно FALSE, то цикл закінчується.

Наприкінці кожної ітерації обчислюється(виконується) expr3.

Кожне із цих виразів може бути порожнім. Якщо expr2 порожньо, то цикл триває нескінченно (PHP за замовчуванням уважає його рівним TRUE, як і С). Це не так даремно, як могло б здатися, тому що найчастіше вам потрібно закінчити виконання циклу використовуючи оператор BREAK у комбінації з логічною умовою замість використання логічного виразу в FOR.

Розглянемо наступні приклади. Усі вони виводять номера з 1 по 10 :

/* приклад 1 */ 
for ($i = 1; $i <= 10; $i++) {
print $i;
}

 
/* приклад 2 */ 
for ($i = 1;;$i++) {
if ($i > 10) {
break;
}
print $i;
}
 
/* приклад 3 */ 
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
print $i;
$i++;
}
 
/* приклад 4 */ 
for ($i = 1; $i <= 10; print $i, $i++) ;
     

Звичайно, перший варіант видасться кращим (або четвертий), але з‘являється можливість використання порожніх виразів у циклі FOR найчастіше виявляється корисним.

PHP також підтримує альтернативний синтаксис FOR :

FOR (expr1; expr2; expr3): вирази; ...; endfor;

Інші мови використовують оператор foreach для того, щоб обробляти масиви або списки. PHP використовує для цього оператор while і функції list() і each() .


BREAK

BREAK перериває виконання поточного циклу.

$i = 0;
while ($i < 10) {
if ($arr[$i] == "stop") {
break;
}
$i++;
}
     

CONTINUE

CONTINUE переходить на початок найближчого циклу.

while (list($key,$value) = each($arr)) {
if ($key % 2) { // skip even members
continue;
}
do_something_odd ($value);
}
     

SWITCH

Оператор SWITCH схожий на групу операторів IF з однаковим вираpfvb. У багатьох випадках вам потрібно зрівняти змінну (або вираp) з багатьма різними значеннями і виконати різні фрагменти коду залежно від того, чому буде рівне значення виразу. Це саме те, для чого призначено оператор SWITCH.

Наступні 2 приклади це 2 різних шляхи для досягнення однієї мети, але один використовує серію операторів IF, а інший - оператор SWITCH.

/* приклад 1 */ 
if ($i == 0) {
print "i equals 0";
}
if ($i == 1) {
print "i equals 1";
}
if ($i == 2) {
print "i equals 2";
}
 
/* приклад 2 */ 
switch ($i) {
case 0:
print "i equals 0";
break;
case 1:
print "i equals 1";
break;
case 2:
print "i equals 2";
break;
}     

Математичні функції довільної точності

Зміст:

bcadd

bccomp

bcdiv

bcmod

bcmul

bcpow

bcscale

bcsqrt

bcsub

Дані функції задіяні тільки за умови що PHP був скомпільований у режимі --enable-bcmath, тобто при включених у конфігурацію bcmath функціях.

 

bcadd

bcadd - Додавання двох чисел довільної точності.

Опис

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

Додає лівий операнд до правого операнду  і повертає суму типу string (строкова змінна). Факультативний параметр масштаб використовується щоб установити кількість розрядів після десяткової оцінки в результаті.

 

bccomp

bccomp -- Порівняння двох чисел довільної точності.

Опис

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

Порівнює лівий операнд із   правим операндом і повертає результат типу integer (ціле). Факультативний параметр  масштаб використовується для установки кількості цифр після десяткової оцінки, використовуваних при порівнянні. При рівності двох операндов вертається значення 0. Якщо лівий операнд більше правого операнда вертає   +1,  і якщо  лівий операнд  менше правого операнда вертає    -1.

 

bcdiv

bcdiv -- Операція розподілу для двох чисел довільної точності.

Опис

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

Ділить лівий операнд на   правий операнд і повертає результат.   Факультативний параметр  масштаб установлює кількість цифр після десяткової оцінки в результаті.

 

bcmod

bcmod для одержання модуля числа довільної точності.

Опис

string bcmod(string лівий операнд, string модуль);

Одержання модуля  лівого операнда  використовуючи операнд модуль.

 

bcmul

bcmul-операція множення для двох чисел довільної точності.

Опис

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

Множить лівий операнд на   правий операнд і повертає результат. Факультативний параметр  масштаб установлює кількість цифр після десяткової оцінки в результаті.

 

bcpow

bcpow-введення одного числа довільної точності в ступінь іншого.

Опис

string bcpow(string x, string y, int [масштаб]);

Введення x   у ступінь y. Параметр  масштаб може використовуватися для установки кількості цифр після десяткової оцінки в результаті.

 

bcscale

bcscale-установлює масштаб за замовчуванням для всіх математичних функцій.

Опис

string bcscale(int масштаб);

Ця функція встановлює заданий за замовчуванням параметр масштабу для всіх наступних математичних функцій, які явно не визначають параметр масштабу.

 

bcsqrt

bcsqrt - Одержання квадратного кореня числа довільної точності.

Опис

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

Повертає квадратний корінь операнда. Факультативний параметр  масштаб установлює кількість цифр після десяткової оцінки в результаті.

 

bcsub

bcsub-віднімає одне число довільної точності з іншого.

Опис

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

Віднімає правий операнд із  лівого операнда  й повертає результат типу string. Факультативний параметр  масштаб установлює кількість цифр після десяткової оцінки в результаті.

 


Функции Даты/Времени

Содержание

checkdate

date

strftime

getdate

gmdate

mktime

gmmktime

time

microtime

 

checkdate

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

Опис

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

Повертає true якщо дана дата вірна, інакше false. Перевіряє правільність дати, заданої аргументами. Дата вважається правильною, якщо:

  • рік між 1900 и 32767 включно

  • місяць між 1 і 12 включно

  • день знаходится в діапазоні дозволених днів даного місяца. Високосний рік враховується.

 

date

date - формат локального часу/дати

Опис

string date(string format, int timestamp);

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

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

  • a - "am" или "pm"

  • A - "AM" или "PM"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример 1. Пример date()

print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));

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

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

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

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

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

 

strftime

strftime - форматирует локальное время согласно установкам locale

Описание

string strftime(string format, int timestamp);

Возвращает строку, отформатированную согласно данной форматной строке и используя данную временную метку или текущее локальное время, если метка не задана. Названия месяцев и недель и другие, зависящие от языка строки, зависят от текущего locale, устанавливающегося с помощью setlocale().

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

  • %a - сокращенное название дня недели согласно текущему locale

  • %A - полное название дня недели согласно текущему locale

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

  • %B - полное название месяца согласно текущему locale

  • %c - предпочтительное представление даты и времени для текущего locale

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

  • %H - час как десятичное число в 24-часовом формате (в диапазоне от 00 до 23)

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

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

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

  • %M - минуты как десятичное число

  • %p - `am' или `pm' согласно текущему времени, или соответствующие строки для текущего locale

  • %S - секунды как десятичное число

  • %U - номер недели текущего года как десятичное число, начиная с первого Воскресенья в качестве первого дня первой недели

  • %W - номер недели текущего года как десятичное число, ночиная с первого Понедельника в качестве первого дня первой недели

  • %w - день недели как целое число, Воскресенье - 0-й день

  • %x - предпочитаемое представление даты для текущего locale не включающее время

  • %X - предпочитаемое представление времени для текущего locale не включающее дату

  • %y - год как десятичное число без столетия (в диапазоне от 00 до 99)

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

  • %Z - временная зона или название или сокращение

  • %% - символ `%'

 

Приклад 1. Приклад функции strftime()

setlocale ("LC_TIME", "C");
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"));

 

Приклад буде працювати, якщо у вас установлені відповідні locale.

Див.також setlocale() і mktime().

 

getdate

getdate - одержує інформацію про дату/час

Опис

array getdate(int timestamp);

Повертає асоціативний масив, що містить інформацію про дату з наступними елементами:

  • "seconds" - секунди

  • "minutes" - хвилини

  • "hours" - годинник

  • "mday" - день місяця

  • "wday" - день тижня, цифровий

  • "mon" - місяць, цифровий

  • "year" - рік, цифровий

  • "yday" - день року, цифровий; тобто "299"

  • "weekday" - день тижня, текстовий, повний; тобто "Friday"

  • "month" - місяць, текстовий, повний; тобто "January"

 

gmdate

gmdate - форматує GMT/CUT час/дату

Опис

string gmdate(string format, int timestamp);

Аналогічна функції date() за винятком того, що час вертається в Гринвичском форматі Greenwich Mean Time (GMT). Наприклад, при запуску у Фінляндії (GMT +0200), перший рядок нижче надрукує "Jan 01 1998 00:00:00", у той час як другий рядок надрукує "Dec 31 1997 22:00:00".

Приклад 1. приклад gmdate()

echo date( "M 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) );

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

mktime

mktime - одержує тимчасову мітку UNIX для дати

Опис

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

Попередження: Зверніть увагу на незвичайний порядок аргументів, який відрізняється від порядку аргументів у виклику функції mktime() з UNIX, і який недобре поводиться при неправильно заданих параметрах (див.нижче). Помилка, що це дуже часто зустрічається, у скриптах.

Повертає тимчасову мітку Unix згідно з даними аргументами. Ця тимчасова мітка є цілим числом, рівним кількості секунд між епохою Unix (1 Січня 1970) і зазначеним часом.

Аргументи можуть бути опущені з права на ліво; кожний опущений у такий спосіб аргумент буде встановлений у поточну величину згідно з локальною датою й часом.

Mktime is useful for doing date arithmetic and validation, as it Mktime корисна при арифметичних діях з датою і її перевіркою, вона буде автоматично обчислювати коректну величину для вишедших за межі параметрів.

Наприклад, кожна з наступних строк повертає строку "Jan-01-1998".

Приклад 1. Приклад mktime()

echo date( "M-d-Y", mktime(0,0,0,12,32,1997) );
echo date( "M-d-Y", mktime(0,0,0,13,1,1997) );
echo date( "M-d-Y", mktime(0,0,0,1,1,1998) );

Див.также date() и time().

gmmktime

gmmktime - одержує тимчасову мітку UNIX для дати в GMT

Опис

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

Ідентична mktime() за винятком переданих параметрів, що представляють дату в GMT.

 

time

time - повертає поточну тимчасову мітку UNIX

Опис

int time(void);

Повертає поточний час, обмірюване в числі секунд із епохи Unix (1 Січня 1970 00:00:00 GMT).

Див.також date().

 

microtime

microtime - повертає поточну тимчасову мітку UNIX у мікросекундах

Опис

string microtime(void);

Повертає рядок "msec sec" де sec поточний час, обмірюване в числі секунд із епохи Unix (0:00:00 1 Січня, 1970 GMT), а msec - це частина в мікросекундах. Ці функції доступні тільки в операційних системах, що підтримують системний виклик gettimeofday().

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

Оглавление

chdir

dir

closedir

opendir

readdir

rewinddir

 

chdir

chdir - зміна каталога

Опис

int chdir(string directory);

Змінює поточний PHP каталог на directory. Повертає FALSE якщо не можна змінити, TRUE якщо зміна відбулась.

 

dir

dir - клас каталога (псевдо-об‘ектно орієнтований механізм)

Опис

new dir(string directory);

Псевдо-об‘єктно орієнтований механизм для читання каталогу. Відкриває каталог із directory. Два реквізити доступні, якщо каталог був відкрит. Реквізит handle може бути використан разом з іншими функціями роботи з каталогом типу readdir(), rewinddir() і closedir(). Реквезит path установлен путь каталога, который был открыт. Три метода доступны: чтение, возврат к началу и закрытие.

Пример 1. 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();
        

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

Оглавление

chdir

dir

closedir

opendir

readdir

rewinddir

 

chdir

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

Описание

int chdir(string directory);

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

 

dir

dir - класс каталога (псевдо-объектно ориентированный механизм)

Описание

new dir(string directory);

Псевдо-объектно ориентированный механизм для чтения каталога. Открывает каталог из directory. Два реквезита доступно, если только  каталог был открыт. Реквезит handle может быть использован вместе с другими функциями работы с каталогом типа readdir(), rewinddir() и closedir(). Реквезит path установлен путь каталога, который был открыт. Три метода доступны: чтение, возврат к началу и закрытие.

Пример 1. 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

closedir - закрити дескриптор(handle) каталогу

Опис

void closedir(int dir_handle);

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

 

opendir

opendir-відкрити дескриптор(handle) каталогу

Опис

int opendir(string path);

Повертає дескриптор(handle) каталогу, який надалі використовується в closedir(), readdir(), і rewinddir() обігах.

 

readdir

readdir - читання даних з каталогу по дескриптору(handle)

Опис

string readdir(int dir_handle);

Повертає ім'я наступного файлу з каталогу. Імена не вертаються в будь-якому специфічному порядку.

Пример 1. Вывод всех файлов в текущем каталоге

<?php
$handle=opendir('.');
echo "Directory handle: $handle\n";
echo "Files:\n";
while ($file = readdir($handle)) {
echo "$file\n";
}
closedir($handle); 
?>

rewinddir

rewinddir - повернення до початку даних каталогу по дескриптору(handle)

Опис

void rewinddir(int dir_handle);

Скидає потік каталогу, позначений як dir_handle у початок даних.

З повагою ІЦ "KURSOVIKS"!