
- •1. Статические и динамические Web-страницы. Особенности скриптовых программ. Анализ языков управления сценариями (JavaScript, vbScript, php, Perl).
- •2. Назначение и применение языка JavaScript. Ввод и вывод данных. Типы данных. Переменные и операторы. Функции. Встроенные объекты. Пользовательские объекты. Специальные операторы.
- •Способ 1: url-схема "JavaScript:"
- •Способ 2: обработчики событий
- •Способ 3: подстановки
- •Размещение кода внутри html-документа
- •Условная генерация html-разметки на стороне браузера
- •Комментарии в html и JavaScript
- •Указание языка сценария
- •Регистр символов
- •Литералы
- •Переменные
- •Массивы
- •Метод join()
- •Метод reverse()
- •Метод sort()
- •Операторы языка
- •Функции
- •Функция как тип данных
- •Функция как объект
- •3. JavaScript. Создание сценариев. Понятие динамического html. Расположение объектов, обработка событий, объекты, управляемые сценариями. Понятие события. Работа с окнами и фреймами. Объекты
- •Операторы работы с объектами
- •Клиентские объекты
- •Иерархия классов dom
- •Коллекции
- •Cвойства
- •События
- •Пользовательские объекты
- •Понятие пользовательского объекта
- •Прототип
- •Методы объекта Object
- •4. JavaScript. Объектная модель броузера и документа. Особенности объектов Window, Document, Location, History, Navigator, Event, Screen Объект window
- •Свойства объекта window Поле статуса и свойство window.Status
- •Программируем status
- •Программируем defaultStatus
- •Поле адреса и свойство window.Location
- •Свойства объекта location
- •Методы объекта location
- •История посещений (history)
- •Тип браузера (navigator)
- •Методы объекта window
- •Методы focus() и blur()
- •Метод setTimeout()
- •Метод clearTimeout()
- •Методы setInterval() и clearInterval()
- •События объекта window
- •Переменные как свойства окна
- •Объект document
- •Фреймы (Frames)
- •Иерархия и именование фреймов
- •Коллекция фреймов
- •Передача данных во фрейм
- •5. Язык сценариев php. Синтаксис языка.
- •Основной синтаксис
- •Разделение инструкций
- •Комментарии
- •6. Основы php. История развития языка php История php
- •7. Основы php. Настройка среды разработки Установка и настройка по
- •Установка Apache 1.3.29 под Windows xp
- •Установка php 4.3.4 под Windows
- •Установка php под Linux
- •Дистрибутив Денвер
- •Константы
- •10. Основы php. Типы данных в php Типы данных
- •Тип boolean (булев или логический тип)
- •Тип integer (целые)
- •Тип float (числа с плавающей точкой)
- •Тип string (строки)
- •Одинарные кавычки
- •Двойные кавычки
- •Тип array (массив)
- •Определение при помощи array()
- •Определение с помощью синтаксиса квадратных скобок
- •Тип object (объекты)
- •Тип resource (ресурсы)
- •11. Основы php. Операторы. Операторы присваивания. Операторы
- •12. Основы php. Математические функции
- •13. Основы php. Арифметические операции в рнр
- •14. Основы php. Операторы. Приоритет операторов
- •15. Основы php. Операторы. Оператор исполнения
- •16. Основы php. Операторы. Строковые операторы
- •17. Основы php. Операторы. Битовые операторы
- •18. Основы php. Операторы. Условный оператор if Оператор if
- •Оператор else
- •Оператор elseif
- •24. Основы php. Циклы. Цикл for
- •25. Основы php. Циклы. Цикл while
- •26. Основы php. Циклы. Цикл do... While
- •27. Основы php. Циклы. Цикл foreach
- •28. Основы php. Операторы. Оператор break. Бесконечные циклы Операторы передачи управления
- •29. Основы php. Операторы. Оператор continue Операторы передачи управления
- •30. Основы php. Массивы. Основы php. Индексы массивов
- •Массивы
- •Операции с массивами
- •Функция count
- •Функция in_array
- •Функция array_search
- •Функция array_keys
- •Функция array_unique
- •Сортировка массивов
- •Функция sort
- •Функции asort, rsort, arsort
- •Сортировка массива по ключам
- •Сортировка с помощью функции, заданной пользователем
- •Применение функции ко всем элементам массива
- •Выделение подмассива Функция array_slice
- •Функция array_chunk
- •Сумма элементов массива
- •31. Основы php. Обработка данных пользователя из форм Протокол http и способы передачи данных на сервер
- •Форма запроса клиента
- •Использование html-форм для передачи данных на сервер
- •Для метода get
- •Для метода post
- •Обработка запросов с помощью php
- •Пример обработки запроса с помощью php
- •32. Основы php. Использование булевых операторов в структурах управляющей логики// в операторах?
- •33. Пользовательские функции в php. Создание функций
- •Функции, определяемые пользователем
- •Аргументы функций
- •Списки аргументов переменной длины
- •Использование переменных внутри функции Глобальные переменные
- •Статические переменные
- •Возвращаемые значения
- •Возвращение ссылки
- •Переменные функции
- •Внутренние (встроенные) функции
- •34. Работа с файлами в php. Открытие файла. Отображение файлов. Закрытие файла Создание файла Функция fopen
- •Закрытие соединения с файлом
- •35. Работа с файлами в php. Чтение из файлов и запись в файлы Запись данных в файл Функция fwrite
- •Чтение данных из файла
- •Функция fread
- •Функция fgets
- •Функция fgetss
- •Функция fgetc
- •Функция readfile
- •Функция file
- •Функция file_get_contents
- •Проверка существования файла
- •Функция file_exists
- •Функция is_writable
- •Функция is_readable
- •36. Работа с файлами в php. Копирование, переименование и удаление файлов
- •37. Работа с файлами в php. Работа с каталогами //в 38
- •38. Язык сценариев php. Управление сессиями. Работа с www. Работа с Cookies
- •Авторизация доступа
- •Механизм сессий
- •Настройка сессий
- •Работа с сессиями Создание сессии
- •Регистрация переменных сессии
- •Удаление переменных сессии
- •Безопасность
- •39. Язык сценариев php. Взаимодействие с базами данных MySql.
- •Построение интерфейса для добавления информации
- •Установка соединения
- •Выбор базы данных
- •Получение списка полей таблицы
- •Отображение списка полей в html-форму
- •Запись данных в базу данных
- •Отображение данных, хранящихся в MySql
- •40. Php и MySql. Обработка результатов запроса. // в 40
- •41. Анализ субд для работы в Web (WebSql, w3ql, WebOql, MySql).
Функция array_unique
Функция array_unique(массив) возвращает новый массив, в котором повторяющиеся элементы фигурируют в одном экземпляре. Таким образом, вместо нескольких одинаковых значений и их ключей мы имеем одно значение. Какой у него будетключ? Как из нескольких ключей одинаковых элементов выбирается тот, который будет сохранен в новом массиве? Происходит следующее. Все элементы массива преобразуются в строки и сортируются. Затем обработчик запоминает первый ключ для каждого значения, а остальные ключи игнорирует.
Попробуем избавиться от повторяющихся языков в списке изученных.
<?php
$langs =
array("Lisp","Java","Python","Java",
"PHP","Perl","Lisp");
print_r(array_unique($langs));
?>
Получим следующее:
Array ( [0] => Lisp [1] => Java [2] => Python [3]
=> PHP [4] => Perl )
Далее рассмотрим задачу сортировки массива.
Сортировка массивов
Необходимость сортировки данных, в том числе и данных, хранящихся в виде массивов, очень часто возникает при решении самых разнообразных задач. Если в языке Си для того, чтобы решить эту задачу, нужно написать десятки строк кода, то в PHP это делается одной простой командой.
Функция sort
Функция sort имеет следующий синтаксис
sort (массив [, флаги])
и сортирует массив, т.е. упорядочивает его значения по возрастанию. Эта функция удаляет все существовавшие в массиве ключи, заменяя их числовыми индексами, соответствующими новому порядку элементов. В случае успешного завершения работы она возвращает true, иначе – false.
Пример 7.6.Пусть у нас есть два массива: цены товаров – их названия и, наоборот, названия товаров – их цены. Упорядочим этимассивы по возрастанию:
<?
$items = array(10 => "хлеб", 20 => "молоко",
30 => "бутерброд");
sort($items);
// строки сортируются в алфавитном
// порядке, ключи теряются
print_r($items);
$rev_items = array("хлеб" => 10,
"бутерброд" => 30, "молоко" => 20);
sort($rev_items);
// числа сортируются по возрастанию,
// ключи теряются
print_r($rev_items);
?>
Пример 7.6. Применение функции sort()
Получим:
Array ( [0] => бутерброд [1] =>
молоко [2] => хлеб )
Array ( [0] => 10 [1] => 20 [2] => 30 )
В качестве дополнительного аргумента может использоваться одна из следующих констант:
SORT_REGULAR – сравнивать элементы массива обычным образом;
SORT_NUMERIC – сравнивать элементы массива как числа;
SORT_STRING – сравнивать элементы массива как строки.
Функции asort, rsort, arsort
Если требуется сохранять индексы элементов массива после сортировки, то нужно использовать функцию asort (массив [, флаги]) . Если необходимо отсортировать массив в обратном порядке, т.е. от наибольшего значения к наименьшему, то можно задействовать функцию rsort (массив [, флаги]) . А если при этом нужно еще и сохранить значения ключей, то следует использовать функцию arsort(массив [, флаги]) . Как вы, наверное, заметили синтаксис у этих функций абсолютно такой же, как у функции sort . Соответственно и значения флагов могут быть такими же, как у sort : SORT_REGULAR ,SORT_NUMERIC , SORT_STRING . Кстати говоря, флаг SORT_NUMERIC появился только в PHP4.
<?php
$books = array("Пушкин"=>"Руслан и Людмила",
"Толстой"=>"Война и мир",
"Лермонтов"=>"Герой нашего времени");
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