ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.05.2024

Просмотров: 590

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1. Історія php

2. Можливості php

3. Установка і настройка по

3.1. Установка Apache 1.3.29 під Windows xp

3.2. Установка php 4.3.4 під Windows

1. Основний синтаксис

1.1 Розділення інструкцій

1.2 Коментарі

2. Змінні, константи і оператори

2.3 Константи

2.4 Оператори

1. Основний синтаксис

1.1 Розділення інструкцій

1.2 Коментарі

2. Змінні, константи і оператори

2.3 Константи

2.4 Оператори

1.2 Оператор else

1.3 Оператор elseif

1.4 Оператор switch

2 Цикли

3 Оператори передачі управління

4 Оператори включення

4. Лекція

2 Типи серверів

3 Протокол http і способи передачі даних на сервер

4 Методи

5 Використання html-форм для передачі даних на сервер

5. Лекція:

1 Функції, створені користувачем

2 Аргументи функцій

3 Списки аргументів змінної довжини

4 Статичні змінні

5 Значення, що повертаються

6 Повернення посилання

7 Внутрішні (убудовані) функції

6. Лекція:

2 Ініціалізація змінних

4 Спадкування extends

5 Оператор ::

6 Оператор parent

7. Лекція:

1 Масиви

2 Операції з масивами

3 Функції обробки масивів

4 Сортування масивів

5 Виділення підмасива

8. Лекція:

2 Запис даних у файл

3 Читання даних з файлу

4 Перевірка існування файлу

5 Видалення файлу

6 Завантаження файлу на сервер

10. Лекція:

1 Бази даних: основні поняття

2 Ключі

3 Індексація

4 Субд MySql

5 Язик sql

6 Основні оператори язика sql

6.1 Оператор create table

6.2 Оператор drop table

6.3 Оператор alter table

7 Оператор select

8 Оператор insert

9 Оператор update

10 Оператор delete

11. Лекція:

1 Побудова інтерфейсу для додавання інформації

2 Запис даних в базу даних

3 Відображення даних, що зберігаються в MySql

1 Побудова інтерфейсу для додавання інформації

2 Запис даних в базу даних

3 Відображення даних, що зберігаються в MySql

12. Лекція:

2 Механізм сесій

3 Настройка сесій

4 Робота з сесіями

4.1 Створення сесії

4.2 Реєстрація змінних сесії

4.3 Видалення змінних сесії

5 Безпека

asort($books);

// сортуємо масив, зберігаючи значення ключів

print_r($books);

echo "<br>";

rsort($books);

// сортуємо масив у зворотному порядку, ключі будуть замінені

print_r($books);

?>

Приклад 7.7. Застосування функцій asort, rsort, arsort

У результаті роботи цього скрипта одержимо:

Array ( [Толстой] => Війна й мир

[Лермонтов] => Герой нашого часу

[Пушкін] => Руслан і Людмила )

Array ( [0] => Руслан і Людмила

[1] => Герой нашого часу

[2] => Війна й мир )

Приклад 7.8. Допустимо, ми створюємо каталог описів документів. У кожного документа є автор, назва, дата публікації й короткий зміст. Ми вже не раз відображали описи, складені із цих характеристик. Щораз порядок відображення цих елементів залежав від створеної нами програми. Тепер же ми хочемо мати можливість змінювати порядок відображення елементів за бажанням користувача. Складемо для цього наступну форму:

<form action=task.php>

<table border=1>

<tr><td>Назва </td><td><input type=text name=title size=5> </td></tr>

<tr><td>Короткий зміст </td><td><input type=text name=description size=5> </td></tr>

<tr><td>Автор </td><td><input type=text name=author size=5> </td></tr>

<tr><td>Дата публікації </td><td><input type=text name=published size=5> </td></tr>

</table>

<input type=submit value="Відправити">

</form>

Приклад 7.8a. Форма для приклада 7.8

Будемо впорядковувати дані, передані цією формою, по убуванню їхніх значень, зберігаючи при цьому значення ключів. Для цього зручно скористатися функцією arsort() . Оскільки нам важливий тільки новий порядок елементів, збережемо в новому масиві ключі вихідного масиву в потрібному порядку. Ми зберігаємо ключі вихідного масиву, оскільки вони є іменами елементів, з яких конструюється опис документа, а пам'ятати їх важливо. Отже, одержуємо такий скрипт:

<?php

print_r($_GET); echo "<br>";

arsort ($_GET);

// сортуємо масив у зворотному порядку, зберігаючи ключі

print_r($_GET); echo "<br>";

$ordered_names = array_keys($_GET);

// становимо новий масив

foreach($ordered_names as $key => $val)

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

// виводимо елементи нового масиву

?>

Приклад 7.8b. Програма обробки форми із приклада 7.8


Сортування масиву по ключах

Очевидно, що може виникнути необхідність у сортуванні масиву за значеннями ключів. Наприклад, якщо в нас є масив даних про книги, як у наведеному вище прикладі, то цілком імовірно, що ми захочемо відсортувати книги по іменах авторів. Для цього в PHP також не потрібно писати багато рядків коду - можна просто скористатися функцією ksort() для сортування по зростанню (прямій порядок сортування ) або krsort() - для сортування по убуванню (зворотний порядок сортування ). Синтаксис цих функцій знову ж аналогічний синтаксису функції sort() .

<?php

$books = array("Пушкін"=>"Руслан і Людмила", "Толстой"=>"Війна й мир", "Лермонтов"=>"Герой нашого часу");

ksort($books);

// сортуємо масив, зберігаючи значення ключів

print_r($books);

?>

Приклад 7.9. Сортування масиву по ключах

Одержимо:

Array ( [Лермонтов] => Герой нашого часу

[Пушкін] => Руслан і Людмила

[Толстой] => Війна й мир )

Сортування за допомогою функції, заданої користувачем

Крім двох простих способів сортування значень масиву (по убуванню або по зростанню) PHP пропонує користувачеві можливість самому задавати критерії для сортування даних. Критерій задається за допомогою функції, ім'я якої вказується як аргумент для спеціальних функцій сортування usort() або uksort() . По назвах цих функцій можна догадатися, що usort() сортує значення елементів масиву, а uksort() - значення ключів масиву за допомогою заданої користувачем функції. Обидві функції повертають true, якщо сортування пройшло успішно, і false - у противному випадку. Їхній синтаксис виглядає в такий спосіб:

usort (масив , що сортує функція)

uksort (масив , що сортує функція)

Звичайно ж, не можна сортувати масив за допомогою будь-якої користувальницької функції. Ця функція повинна задовольняти певним критеріям, що дозволяють порівнювати елементи масиву. Як повинна бути влаштована функція, що сортує? По-перше, вона повинна мати два аргументи. У них інтерпретатор буде передавати пари значень елементів для функції usort() або ключів масиву для функції uksort() . По-друге, що сортує функція повинна повертати:

  • ціле число, менше нуля, якщо перший аргумент менше другого;

  • число, рівне нулю, якщо два аргументи рівні;

  • число більше нуля, якщо перший аргумент більше другого.


Як і для інших функцій сортування, для функції usort() існує аналог, що не змінює значення ключів, - функція uasort() .

Приклад 7.10. Допустимо, у нас є масив, що містить такі відомості про літературні твори, як назва, автор і рік створення. Ми хочемо впорядкувати книги по даті створення.

<?php

// масив виглядає в такий спосіб:

$books = array("Герой нашого часу" => array ("Лермонтов", 1840),

"Руслан і Людмила" => array("Пушкін",1820),

"Війна й мир" => array ("Толстой",1863),

"Ідіот" => array("Достоєвський",1868));

/* можна, звичайно переписати цей масив по-іншому, зробивши рік видання, наприклад, індексом, але набагато зручніше написати свою функцію для сортування */

uasort($books,"cmp");

// сортуємо масив за допомогою функції cmp

foreach ($books as $key => $book) {

echo "$book[0]: \"$key\"<br>";

}

function cmp($a,$b){

// функція, що визначає спосіб сортування

if ($a[1] < $b[1]) return -1;

elseif ($a[1]==$b[1]) return 0;

else return 1;

}

?>

Приклад 7.10. Сортування за допомогою користувальницьких функцій

У результаті одержимо:

Пушкін: "Руслан і Людмила"

Лермонтов: "Герой нашого часу"

Толстой: "Війна й мир"

Достоєвський: "Ідіот"

Ми застосували нашу власну функцію сортування до всіх елементів масиву. Далі розглянемо, як застосувати до елементів масиву будь-яку іншу користувальницьку функцію.

Застосування функції до всіх елементів масиву

Функція array_walk(масив, функція [, дані]) застосовує створену користувачем функцію до всіх елементів масиву масив і повертає true у випадку успішного виконання операції й false - у противному випадку.

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

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


<?php

$books1 = array("А.С. Пушкін"=>"Руслан і Людмила",

"Л.Н. Толстой"=>"Війна й мир",

"М.Ю. Лермонтов"=>"Герой нашого часу");

// створюємо функцію, що хочемо застосувати до елементів масиву

function try_walk($val,$key,$data){

echo "$data \"$val\" написав $key<br>";

}

// застосовуємо до всіх елементів масиву $books1 функцію try_walk

array_walk($books1,"try_walk","Роман");

?>

Приклад 7.11. Застосування функції до всіх елементів масиву

У результаті роботи скрипта одержимо:

Роман "Руслан і Людмила" написав А.С. Пушкіна

Роман "Війна й мир" написав Л.Н. Толстой

Роман "Герой нашого часу" написав М.Ю. Лермонтов

Помітимо, що ми не змінили значень елементів масиву. Щоб їх змінити, треба було передавати значення в змінну $val функції try_walk по посиланню.

<?php

$books1 = array(

"А.С. Пушкін"=>"Руслан і Людмила",

"Л.Н. Толстой"=>"Війна й мир",

"М.Ю. Лермонтов"=>"Герой нашого часу");

// створюємо функцію, що хочемо застосувати до елементів масиву

function try_walk(&$val,$key){

$key = "<p>Автор: " .$key ."<br>";

$val = "Назва: \"" . $val ."\"</p>";

echo $key.$val;

}

// застосовуємо до всіх елементів масиву $book1 функцію try_walk

array_walk($books1,"try_walk");

print_r($books1);

?>

Приклад 7.12. Застосування функції до всіх елементів масиву. Варіант 2

У результаті роботи скрипта одержимо:

Автор: А.С. Пушкін

Назва: "Руслан і Людмила"

Автор: Л.Н. Толстой

Назва: "Війна й мир"

Автор: М.Ю. Лермонтов

Назва: "Герой нашого часу"

Array ( [А.С. Пушкін] => Назва: "Руслан і Людмила"

[Л.Н. Толстой] => Назва: "Війна й мир"

[М.Ю. Лермонтов] => Назва: "Герой нашого часу")


5 Виділення підмасива

Функція array_slice

Оскільки масив - це набір елементів, цілком імовірно, буде потрібно виділити з нього який-небудь піднабір. В PHP для цих цілей є функція array_slice . Її синтаксис такий:

array_slice (масив, номер_елемента [, довжина])

Ця функція виділяє підмасив довжини довжина в масиві масив, починаючи з елемента, номер якого заданий параметром номер_елемента. Позитивний номер_елемента вказує на порядковий номер елемента відносно початку масиву, негативний - на номер елемента з кінця масиву.

<?php

$arr = array(1,2,3,4,5);

$sub_arr = array_slice($arr,2);

print_r($sub_arr);

/* виведе Array ( [0] => 3 [1] =>4 [2] => 5 ), тобто підмасив, що складається з елементів 3, 4, 5 */

$sub_arr = array_slice($arr,-2);

print_r($sub_arr);

// виведе Array ( [0] => 4 [1] => 5 ), тобто підмасив, з елементів 4, 5

?>

Приклад 7.13. Використання функції array_slice()

Якщо задати параметр довжина при використанні array_slice , то буде виділений підмасив, що має рівно стільки елементів, скільки задано цим параметром. Довжину можна вказувати й негативну. У цьому випадку інтерпретатор видалить із кінця масиву число елементів, рівне модулю параметра довжина.

<?php

$arr = array(1,2,3,4,5);

$sub_arr = array_slice($arr, 2, 2);

// містить масив з елементів 3, 4

$sub = array_slice($arr,-3, 2);

// теж містить масив з елементів 3, 4

$sub1 = array_slice($arr,0, -1);

// містить масив з елементів 1, 2, 3, 4

$sub2 = array_slice($arr,-4, -2);

// містить масив з елементів 2, 3

?>

Приклад 7.14. Використання функції array_slice(). Варіант 2

Функція array_chunk

Є ще одна функція, схожа на array_slice() - це array_chunk() . Вона розбиває масив на декілька підмасивів заданої довжини. Синтаксис її такий:

array_chunk ( масив, розмір [, зберігати_ключі])

У результаті роботи array_chunk() повертає багатомірний масив, елементи якого являють собою отримані підмасиви. Якщо задати параметр зберігати ключі як true, то при розбивці будуть збережені ключі вихідного масиву. У противному випадку ключі елементів заміняються числовими індексами, які починаються з нуля.

Приклад 7.15.У нас є список запрошених, оформлений у вигляді масиву їхніх прізвищ. У нас є столики на три персони. Тому потрібно розподілити всіх запрошених по три.


Смотрите также файлы