Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

сценарий взаимодействия с источником данных

ASP

Кроме $_ в Perl имеются и другие предопределенные переменные:

$] - номер версии Perl. $ - номер строки, прочитанной из файла. последней. $! - сообщение об ошибке. $$ - идентификатор текущего процесса. И т.д.

Подобно предопределенным скалярным переменным, в Perl существуют массивы, имеющие специальное значение. Наиболее важный из них - ассоциативный массив %ENV, содержащий текущие значения переменных окружения. Для работы с файлами и потоками в Perl предусмотрены специальные файловые дескрипторы (указатель на файл, устройство или PIPE канал).

В состав языка Perl входят средства поиска и замены, причем, задавая шаблон для поиска, можно использовать регулярные выражения.

Язык Perl. Краткое описание.

Язык Perl (Practical Extraction and Report Language) — это язык программирования. Сильные стороны - богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Имеет огромную коллекцию дополнительных модулей CPAN. Программа может выполняться под управлением интерпретатора. Чтобы файл с исходным текстом Perl можно было запускать на выполнение, надо чтобы первая его строка выглядела так:

#!путь_к_интерпретатору_Perl.

Основными типами данных в языке являются: скаляры, массивы (скалярные), хеш-таблицы (ассоциативные массивы), функции, файловые дескрипторы и константы.

Переменные разных типов отличаются знаком, который стоит перед именем переменной: $a - скаляр или указатель @b - скалярный массив %c - ассоциативный массив (хеш-таблица) &d – функция F - дескриптор ввода-вывода или константа. Тип скалярной переменной не фиксирован и определяется динамически в зависимости от контекста.

Скалярный массив является упорядоченным списком скаляров.

Предопределённые переменные в Perl.

В языке Perl существует предопределенная скалярная переменная $_, используемая по умолчанию. В нее помещаются данные, в том случае если в выражении отсутствует операция присваивания результата.

Кроме $_ в Perl имеются и другие предопределенные переменные.

$] - номер версии Perl.

$. - номер строки, прочитанной из файла последней.

$! - сообщение об ошибке.

$$ - идентификатор текущего процесса.

$^T - время в секундах с начала 1970 года до запуска данной программы.

$O - имя файла, в котором содержится выполняемая программа.

$1...$9 - фрагменты текста, отмеченные при выполнении операции сопоставления с шаблоном.

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

Наиболее важный из них - ассоциативный массив %ENV, содержащий текущие значения переменных окружения.

Чтобы получить значение переменной окружения, надо обратиться к элементу данного массива, указав в качестве индекса имя переменной окружения:

$path_string = $ENV { 'PATH' };

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

 

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

Ò Функция всегда возвращает какое-либо значение либо UNDEF.

Ò Если возвращаемое значение явно не указано оператором return, возвращается последнее вычисленное значение.

Файловые дескрипторы Perl

Файловый дескриптор представляет собой указатель на файл, устройство или PIPE канал, открытые для записи, чтения или для записи и чтения

Оператор “<>” в Perl называется бриллиантовым оператором (diamond operator). Он определяет операцию чтения строки из потока, дескриптор которого содержится в угловых скобках.

§ $str=<STDIN>; #чтение строки из дескриптора STDIN (стандартного потока ввода)

§ @lines=<F>; #чтение всех строк из связанного с дескриптором файла F.

§ print STDOUT $str; #печать в STDOUT (стандартный поток вывода)

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

Для связывания файла с файловым дескриптором используется функция open. Ниже приводятся варианты использования этой функции:

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

Массивы в Perl: скалярные, ассоциативные. Их инициализация и обращение к элементам массива.

Ò Массив (скалярный) является упорядоченным списком скаляров.

Ò Каждый элемент массива имеет порядковый номер (индекс), с помощью которого к нему можно получить доступ. Нумерация элементов начинается с нуля.

Ò Перед именем переменной типа массив указывается знак @, а для доступа к определенному элементу массива необходимо ставить знак $, так как определенный элемент массива является скаляром.

Ò Тип скалярной переменной не фиксирован и определяется динамически в зависимости от контекста

Ò Скалярный массив:

§ Является упорядоченным списком скаляров.

§ Каждый элемент массива имеет порядковый индекс, с помощью которого к нему можно получить доступ.

§ Нумерация элементов начинается с нуля.

§ Перед именем переменной-массива необходимо ставить знак '@'

§ При доступе к определенному элементу массива ставится знак '$', так как он фактически является скаляром.

Ò Хеш-таблица представляет собой ассоциативный массив, позволяющий ассоциировать строку (ключ) со скаляром (значение).

Ò Строка называется ключом, а скаляр в хеш-таблице значением.

Ò Перед именем переменной-списка необходимо ставить знак процента %, а для доступа к определенному элементу массива рекомендуется ставить знак $.

Ò Хеш-таблица представляет собой массив, где в нечетных позициях находятся ключи, а на четных — значения.

Например, для того чтобы присвоить значение трем элементам массива %dict с индексами first, second и third, можно воспользоваться одним из двух способов, указанных ниже.

$dict {'first' } = "первый"; $dict {'second' } = "второй";

$dict {'third' } = "третий";

 

Поиск Perl.

В состав языка Perl входят средства поиска и замены, причем, задавая шаблон для поиска, можно использовать регулярные выражения.

Оператор поиска m// записывается следующим образом:

m/шаблон/

Если значение переменной $_ содержит подстроку, соответствующую указанному шаблону, оператор поиска возвращает значение true.

Рассмотрим следующий пример:

$_ = <INPUT>;

if (m/Scripts/)

{ print "В URL есть каталог Scripts \n"; }

else

{ print " В URL нет каталога Scripts \n"; }

Оператор замены Perl

s/// записывается следующим образом:

s/шаблон поиска/выражение для замены/[набор модификаторов]

При выполнении оператора s/// производится поиск соответствия шаблону, и если поиск завершается успешно, найденная подстрока заменяется указанным выражением. Подобно оператору m//, оператор s/// использует переменную $_. Ниже приведен простейший пример применения оператора s///.

$_ = "CGI-сценарий написан на языке С";

s/C$/Perl/;

print;

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

CGI-сценарий написан на языке Perl

Модификаторы.

g - глобальный поиск. Если этот модификатор не указан, после обнаружения первого соответствия оператор s/// закончит свою работу. Поэтому при отсутствии модификатора g будет произведено не более одной замены.

i - указывает, что при поиске следует игнорировать регистр символов.

e - указывает, что последовательность символов для замены следует интерпретировать не как подстроку, а как выражение Perl.

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

Переменная =~ оператор_поиска_или_замены

Так, например, для преобразования шестнадцатеричных чисел, содержащихся в переменной $string, в десятичное представление можно использовать инструкцию:

$string =~ s/([0-9A-Fa-f]+)(H|h)/hex($1)/ge;

Введение в PHP. Краткая характеристика.

Язык PHP (PHP:Hypertext Preprocessor) - один из наиболее популярных сценарных языков ввиду своей простоты, скорости выполнения, богатой функциональности и распространенности исходных кодов на основе лицензии PHP.

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

Интерпретатор PHP подключается к веб-серверу либо через DLL модуль, созданный специально для этого сервера, либо в виде CGI-приложения.

Синтаксис похож на Си.

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

<?php

echo 'Hello, world!';

?>

Помимо ограничителей <?php?>, допускается использование дополнительных вариантов, таких как <??> и <script language="php"> </script>.

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

Инструкции завершаются точкой с запятой ()

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

К скалярным типам данных относятся

целый тип (integer), вещественный тип данных (float, double), логический тип (boolean), строковый тип (string) специальный тип NULL.

К нескалярным типам относится "ресурс" (resource), массив (array) и объект (object).

Тип NULL предназначен для переменных без определенного значения. Ссылки на внешние ресурсы имеют тип resource.

Массивы поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Суперглобальными массивами (superglobal arrays) в PHP называются предопределенные массивы, которые видны в любом месте исходного кода без использования ключевого слова global. PHP поддерживает широкие объектно-ориентированные возможности. Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищенными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП - капсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов

Среди наиболее часто используемых возможностей PHP стоит отметить следующие:

  • имеется большой набор функций для работы со строками;
  • работа с регулярными выражениями PCRE.
  • работа с базами данных, осуществляемая посредством модулей:
    • php5-mysql для MySQL,
    • php5-pgsql для PostgreSQL
    • и др.
  • для PHP разработаны средства шаблонирования веб-страниц, позволяющие эффективно разделить представление от модели, например Smarty;

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

 

Массивы PHP

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

Инициализация $languages [ ] = "Spanish"; или добавляя $languages[15] = "Italian";

Ассоциативный: $languages["Spain"] = "Spanish";

При создании массивов используются три стандартные языковые конструкции:

аrrау(); list(); range().

Функция array() получает ноль или более элементов и возвращает массив, состоящий из указанных элементов. Ее синтаксис:

array array ([элемент1, элемент2...])

$languages = array ("English". "Gaelic". "Spanish");

Ассоциативный:

$languages = array("Spain" => "Spanish", "Ireland" => "Gaelic", "United States" => "English");

Конструкция list() похожа на аrrау(), однако ее главная задача — одновременное присваивание значений, извлеченных из массива, сразу нескольким переменным. Синтаксис команды list():

void list (переменная1 [. переменная2,...])

Многомерные массивы $chessboard [1] [4] = "King"; // Двухмерный массив.

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

$desserts["Fruit Cup"]["preparation"] // возвращает "10 minutes"

Поиск элеметов массива.

in_array()

Функция i n_array () проверяет, присутствует ли в массиве заданный элемент. Если поиск окажется удачным, функция возвращает TRUE, в противном случае возвращается FALSE. Синтаксис функции in_array():

bool in_array(mixed элемент, array массив)

array_keys()

Функция array_keys() возвращает массив, содержащий все ключи исходного массива, переданного в качестве параметра. Если при вызове передается дополнительный параметр искомый_элемент, возвращаются только ключи, которым соответствует заданное значение; в противном случае возвращаются все ключи массива. Синтаксис функции array_keys():

array array_keys (array массив [, mixed искомый_элемент])

array_values()

Функция array_values() возвращает массив, состоящий из всех значений исходного массива, переданного в качестве параметра. Синтаксис функции array_values():

array array_values(array массив)

rray_push()

Функция array_push() присоединяет (то есть дописывает в конец массива) один или несколько новых элементов. Синтаксис функции array_push():

int array_push(array массив, mixed элемент [,...])

аrrау_рор()

Результат работы функции аrrау_рор() прямо противоположен array_push() — эта функция извлекает (то есть удаляет) последний элемент из массива. Извлеченный элемент возвращается функцией. Синтаксис функции аrrау_рор():

аrrау_рор(аrrау массив)

array_shift()

Функция array_shift() аналогична аrrау_рор() с одним отличием: элемент удаляется из начала (левого края) массива. Все остальные элементы массива сдвигаются на одну позицию к началу массива. У функции array_shift() такой же синтаксис, как и у аггау_рор():

array_shift(array массив)

Так как у ассоциативных массивов нет индексов, для обхода их введён специальный вид цикла — foreach:

<?php

foreach($arr as $key => $value)

{

echo "$key = $value <br />";

}?>

 

 

PHP функции.

особенности пользовательских функций в PHP:

· Доступны параметры по умолчанию. Есть возможность вызывать одну и ту же функцию с переменным числом параметров;

· Пользовательские функции могут возвращать любой тип;

· Область видимости переменных внутри функции является иерархической (древовидной);

· Есть возможность изменять переменные, переданные в качестве аргумента.

Объявление:

function Имя (аргумент1[=значение1],...,аргумент1[=значение1])
{тело_функции}

Внутри функции все переменные локальны.

По умолчанию аргументы в функцию передаются п о значению. По ссылке передают так: ставят амперсанд (&) перед именем аргумента в описании функции.

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

Реализация этой возможности заключается в использовании функций func_num_args(), func_get_arg() и func_get_args().

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

Функции-переменные.

- динамические вызовы функций, имена которых определяются во время выполнения программы. Вызов функции-переменной представляет собой имя переменной, за которым следует пара круглых скобок. В круглых скобках могут перечисляться параметры (однако присутствие параметров не обязательно). Обобщенный синтаксис функции-переменной: $имя_функции();

// Приветствие на итальянском языке, function italian() {

" print "Benvenuti al PHP Recipes.";

}

// Приветствие на английском языке

function english() {

print "Welcome to PHP Recipes.";

}

// Выбрать итальянский язык

$language = "italian":

// Выполнить функцию-переменную

$language();

Программные и объектные интерфейсы для взаимодействия Web-сервера с СУБД-сервером: DB Library, ODBC, RDO, OLE DB, ADO.

ODBC

Ò ODBC (Open Database Connectivity) - предоставляет в распоряжение разработчиков приложений стандартный программный интерфейс (API) для работы с СУБД. При создании этого интерфейса ставилась цель сделать этот API независимым от языков программирования, конкретных СУБД и операционных систем.

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

Ò Ядром реализации ODBC является библиотека управления драйверами ODBC - менеджер драйверов ODBC, которая выступает в роли посредника между приложениями и СУБД

Ò При этом вся специфика конкретной СУБД реализуется с помощью соответствующего ODBC-драйвера.

Ò Поставщики различных СУБД создают драйверы, содержащие конкретные реализации стандартных функций ODBC с учетом особенностей их продукта.

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

Ò ODBC поддерживается большим количеством операционных систем

Ò Имеются ODBC-драйверы для нереляционных данных таких как электронные таблицы, текст и XML файлы.

RDO была ориентирована на обработку данных на стороне сервера БД (такого как MS SQL Server, Oracle итд) в отличие от DAO ориентированной в основном на обработку данных на стороне клиента. RDO (сокр. от англ. Remote Data Objects) — технология доступа к базам данных компании Microsoft. Представляет из себя набор COM-объектов инкапсулирующих ODBC API, а также клиентскую курсорную библиотеку.

OLE DB (англ. Object Linking and Embedding, Database) — набор интерфейсов, основанных на COM, которые позволяют приложениям обращаться к данным, хранимым в разных источниках информации или хранилищах данных с помощью унифицированного доступа.

сценарий взаимодействия с источником данных

Типичный сценарий работы веб-приложения с источником данных выглядит следующим образом:

§ Установление соединение и подключение к источнику данных.

§ Выполнение запросов, необходимых для выборки, вставки или изменения наборов данных источника.

§ Отключение от источника данных.

ADO

Ò ADO (ActiveX Data Objects) — API для доступа к данным, основанный на технологии компонентов ActiveX

Ò ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде

Компоненты ADO используются в языках высокого уровня, таких как VBScript в ASP, Visual Basic

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...