Включение внешних источников данных
При включении внешних источников данных, входящих в конфигурацию Apache, тег <include> вызывается с методом URI или local. В обоих случаях выполняется подзапрос к Apache, то есть включение обрабатывается как прямой запрос Apache, результаты которого вставляются в позицию тега <include> документа LXP.
Принципиальное различие между этими двумя способами заключается в том, что метод URI получает атрибут src в том виде, в котором Apache получает его от браузера – с начальным символом / и заданным по отношению к корневому каталогу хоста (например, /example.php). С другой стороны, при использовании метода local серверу Apache передается информация о местонахождении файла в локальной файловой системе (например, /home/web/example.php).
В листинге 13.26 приведен файл LXP с двумя вариантами включения сценария РНР. В обоих случаях включение производится с участием Apache и потому зависит от правильной настройки запрашиваемого типа данных в Apache. Это особенно важно для метода local, требующего наличия соответствующих прав доступа к каталогу, содержащему включаемый сценарий.
Листинг 13.26. Включение внешних данных.
<lхр> An example PHP scnpt:<br /> <include src="/example.php" method="URI" /> <hr /> The same PHP script, using the local method:<br /> <include src="/home/web/default/example.php" method="local" /> </lxp>
Если при включении документа, заданного атрибутом src, атрибут method отсутствует, а имя документа завершается одним из стандартных расширений РНР (.php, .php3 и .phtml), по умолчанию выбирается метод local. В LXP 0.8 метод URI не выбирается по умолчанию. Чтобы использовать метод URI, необходимо передать в теге <include> атрибут method="URI".
Включение данных SQL
Метод SQL обладает исключительно широкими возможностями в области непосредственного взаимодействия с PostgreSQL. В частности, он позволяет внедрять динамические результаты запросов к базе данных в web-страницу, не прибегая к языку программирования, создавать программные объекты подключений или команд и даже производить лексический разбор и форматирование результатов.
Метод SQL выбирается включением BTcr<include> атрибута method="SQL". Кроме того, этот метод выбирается по умолчанию при передаче атрибута sql с выполняемой командой SQL. В следующем примере используется второй вариант, то есть метод SQL подразумевается благодаря атрибуту sql:
<include sql="SELECT * FROM pg_database">
По аналогии с методами лексического разбора данных, блок между открывающим и закрывающим тегами <include> выполняется для всех записей, полученных в результате успешно выполненного запроса SQL.