git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@341523 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Andrey Gromov
2016-12-29 14:48:16 +00:00
parent 1a1516b904
commit 80c8207b1f
11 changed files with 966 additions and 0 deletions

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a54c827eb1a935a6998a6315de057110735b0a3b Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<book xml:id="book.oggvorbis" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>OGG/Vorbis</title>
<titleabbrev>oggvorbis</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.oggvorbis">
&reftitle.intro;
<para>
Формат файлов OGG/Vorbis, как определено в <link
xlink:href="&url.ogg.vorbis;">&url.ogg.vorbis;</link> - это схема
сжатия аудио-потока с использованием множества факторов и минимальными
потерями качества. Это расширение добавляет поддержку Ogg Vorbis в
<link linkend="wrappers">Обертки URL</link> PHP. Когда используется в режиме чтения,
сжатые данные OGG/Vorbis расжимаются в сырой аудио поток PCM в одном из шести
форматов кодирования PCM, перечисленных в разделе
<link linkend="oggvorbis.constants">предопределенные константы</link>.
</para>
</preface>
<!-- }}} -->
&reference.oggvorbis.setup;
&reference.oggvorbis.constants;
&reference.oggvorbis.contexts;
&reference.oggvorbis.examples;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<section xml:id="oggvorbis.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
<para>
&pecl.info;
<link xlink:href="&url.pecl.package;oggvorbis">&url.pecl.package;oggvorbis</link>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c1dc0919bfba0a89e163ece9bc58c54811a042c7 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<appendix xml:id="oggvorbis.constants" xmlns="http://docbook.org/ns/docbook">
&reftitle.constants;
&extension.constants;
<table>
<title>OGG/Vorbis поддерживает кодирование PCM в следующих форматах</title>
<tgroup cols="2">
<thead>
<row>
<entry>Константа</entry>
<entry>Описание</entry>
</row>
</thead>
<tbody>
<row xml:id="constant.oggvorbis-pcm-u8">
<entry><constant>OGGVORBIS_PCM_U8</constant></entry>
<entry>Беззнаковый 8-битный PCM.</entry>
</row>
<row xml:id="constant.oggvorbis-pcm-s8">
<entry><constant>OGGVORBIS_PCM_S8</constant></entry>
<entry>Знаковый 8-битный PCM.</entry>
</row>
<row xml:id="constant.oggvorbis-pcm-u16-le">
<entry><constant>OGGVORBIS_PCM_U16_LE</constant></entry>
<entry>Беззнаковый 16-битный PCM. Порядок байт Little Endian.</entry>
</row>
<row xml:id="constant.oggvorbis-pcm-u16-be">
<entry><constant>OGGVORBIS_PCM_U16_BE</constant></entry>
<entry>Беззнаковый 16-битный PCM. Порядок байт Big Endian.</entry>
</row>
<row xml:id="constant.oggvorbis-pcm-s16-le">
<entry><constant>OGGVORBIS_PCM_S16_LE</constant></entry>
<entry>Знаковый 16-битный PCM. Порядок байт Little Endian.</entry>
</row>
<row xml:id="constant.oggvorbis-pcm-s16-be">
<entry><constant>OGGVORBIS_PCM_S16_BE</constant></entry>
<entry>Знаковый 16-битный PCM. Порядок байт Big Endian.</entry>
</row>
</tbody>
</tgroup>
</table>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<chapter xml:id="oggvorbis.contexts" xmlns="http://docbook.org/ns/docbook">
<title>Опции контекста</title>
<table>
<title>Опции настройки OGG/Vorbis</title>
<tgroup cols="4">
<thead>
<row>
<entry>Option</entry>
<entry>Definition</entry>
<entry>Relevance</entry>
<entry>Default</entry>
</row>
</thead>
<tbody>
<row>
<entry>pcm_mode</entry>
<entry>Используется байтовая кодировка PCM. Смотрите константы ниже.</entry>
<entry>Чтение / Запись</entry>
<entry><constant>OGGVORBIS_PCM_S16_LE</constant></entry>
</row>
<row>
<entry>rate</entry>
<entry>Частота PCM. Измеряется в герцах.</entry>
<entry>Только запись</entry>
<entry><constant>44100</constant></entry>
</row>
<row>
<entry>bitrate</entry>
<entry>
Vorbis Average Bitrate Encoding / Variable Bitrate Encoding.
Измеряется в bps (ABR) или Уровне Качества (VBR: 0.0 to 1.0).
128000 ABR примерно равно 0.4 VBR.
</entry>
<entry>Только запись</entry>
<entry><constant>128000</constant></entry>
</row>
<row>
<entry>channels</entry>
<entry>Количество каналов PCM. 1 == Моно, 2 == Стерео.</entry>
<entry>Только запись</entry>
<entry><constant>2</constant></entry>
</row>
<row>
<entry>serialno</entry>
<entry>
Серийный номер потока внутри файла. Должен быть уникален внутри файла.
Так как потенциально возможна ситуация, что в связанном файле
будет дублирующий серийный номер, озаботьтесь самостоятельным
управлением серийными номерами при кодировании.
</entry>
<entry>Только запись</entry>
<entry><emphasis>Random</emphasis></entry>
</row>
<row>
<entry>comments</entry>
<entry>
Ассоциативный массив комментариев файла.
Должно быть переведено с помощью <literal>strtoupper($name) . "=$value"</literal>.
Обратите внимание: Данная опция контекста не доступна в oggvorbis-0.1
</entry>
<entry>Только запись</entry>
<entry><literal>array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')</literal></entry>
</row>
</tbody>
</tgroup>
</table>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<chapter xml:id="oggvorbis.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="oggvorbis.examples-basisc">
<title>Примеры использования обертки ogg://.</title>
<para>
<example>
<title>Чтение файла OGG/Vorbis</title>
<programlisting role="php">
<![CDATA[
<?php
dl("oggvorbis.so");
/* По умолчанию, ogg:// будет декодировать в знаковый 16-битный Little Endian формат */
$fp = fopen('ogg://myaudio.ogg', 'r');
/* Сбор информации о файле. */
$metadata = stream_get_meta_data($fp);
/* проверка первой песни (обычно единственной, но файл OGG/Vorbis может быть связанным) */
$songdata = $metadata['wrapper_data'][0];
echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n.";
echo " {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
echo " $comment\n";
}
while ($audio_data = fread($fp, 8192)) {
/* Делаем что-то с PCM-аудио, которое достали из OGG.
Копирование в /dev/dsp - хороший выбор на системах linux,
только убедитесь, что ваше устройство соответствующим образом настроено. */
}
fclose($fp);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Кодирование аудио-файла в OGG/Vorbis</title>
<programlisting role="php">
<![CDATA[
<?php
dl('oggvorbis.so');
$context = stream_context_create(array('ogg'=>array(
'pcm_mode' => OGGVORBIS_PCM_S8, /* Знаковое 8-битное аудио */
'rate' => 44100, /* Качество 44kHz CD */
'bitrate' => 0.5, /* Среднее качество VBR */
'channels' => 1, /* Моно */
'serialno' => 12345))); /* Уникальный номер внутри файла */
/* Открываем файл для добавления. Мы "привяжем" второй поток OGG в конец файла. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);
$pcm = fopen('mysample.pcm', 'r');
/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);
fclose($pcm);
fclose($ogg);
?>
]]>
</programlisting>
</example>
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<chapter xml:id="oggvorbis.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.setup;
<!-- {{{ Requirements -->
<section xml:id="oggvorbis.requirements">
&reftitle.required;
<para>
Это расширение требует <literal>PHP &gt;= 4.3.0</literal>,
<link xlink:href="&url.ogg.vorbis.downloads;">libogg</link> &gt;= 1.0 и
<link xlink:href="&url.ogg.vorbis.downloads;">libvorbis</link> &gt;= 1.0.
</para>
</section>
<!-- }}} -->
<!-- {{{ Installation -->
&reference.oggvorbis.configure;
<!-- }}} -->
<!-- {{{ Configuration -->
<section xml:id="oggvorbis.configuration">
&reftitle.runtime;
&no.config;
</section>
<!-- }}} -->
<!-- {{{ Resources -->
<section xml:id="oggvorbis.resources">
&reftitle.resources;
&no.resource;
</section>
<!-- }}} -->
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 95bdd6883b5dde9504701777ba81b3c5f15df52b Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<section xml:id="openssl.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
<para>
Для поддержки OpenSSL в PHP вам необходимо скомпилировать PHP с опцией
<option role="configure">--with-openssl[=DIR]</option>.
</para>
<para>
Также библиотека OpenSSL имеет дополнительные требования для нормальной работы
во время исполнения. Самое главное, OpenSSL требуется доступ к генераторам случайных и
псевдослучайных чисел; на большинстве систем Unix/Linux, это означае
доступ к устройствам <literal>/dev/urandom</literal> или <literal>/dev/random</literal>.
</para>
<note>
<title>Замечания для пользователей Win32</title>
<para>
&ext.windows.path.dll;
<filename>libeay32.dll</filename>
</para>
<para>
Дополнительно, если вы собираетесь использовать функции генерации
ключей и подписи сертификатов, вам придется установить корректный
файл <filename>openssl.cnf</filename> в вашей системе.
Мы включили демонстрационный конфигурационный файл в бинарную
поставку под win32. Он лежит в директории
<filename class="directory">extras/openssl</filename>.
</para>
<para>
PHP будет искать <filename>openssl.cnf</filename> используя следующую логику:
<itemizedlist>
<listitem>
<simpara>Переменная окружения <literal>OPENSSL_CONF</literal>. Если установлена, то
должна содержать путь (включая имя файла) до конфигурационного файла.
</simpara>
</listitem>
<listitem>
<simpara>переменная окружения <literal>SSLEAY_CONF</literal>. Если установлена, то
должна содержать путь (включая имя файла) до конфигурационного файла.
</simpara>
</listitem>
<listitem>
<simpara>Файл <filename>openssl.cnf</filename> будет искаться по стандартному
пути для сертификатов, заданному при компиляции DLL. Обычно он задан как
<filename>c:\usr\local\ssl\openssl.cnf</filename>.
</simpara>
</listitem>
</itemizedlist>
</para>
<simpara>
При установке вы должны определить, установить ли файл по стандартному
пути <filename>c:\usr\local\ssl\openssl.cnf</filename> или хранить его в другом
месте и задать путь к нему через переменные окружения, что полезно при
использовании виртуальных хостов. Обратите внимание, что путь по
умолчанию можно переопределить в скрипте используя параметр
<parameter>configargs</parameter> функции, которой требуется этот файл.
</simpara>
</note>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

98
reference/openssl/ini.xml Normal file
View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6ab0778c018eabde23b8c1372091e9960c54d774 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<section xml:id="openssl.configuration" xmlns="http://docbook.org/ns/docbook">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>&ConfigureOptions; openssl</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>Список изменений</entry>
</row>
</thead>
<tbody>
<row>
<entry>openssl.cafile</entry>
<entry>""</entry>
<entry>PHP_INI_PERDIR</entry>
<entry>Доступно с PHP 5.6.0.</entry>
</row>
<row>
<entry>openssl.capath</entry>
<entry>""</entry>
<entry>PHP_INI_PERDIR</entry>
<entry>Доступно с PHP 5.6.0.</entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.openssl.cafile">
<term>
<parameter>openssl.cafile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Местоположение файла Certificate Authority на локальной файловой системе,
который должен использоваться с опцией контекста verify_peer для
аутентификации удаленной точки.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.openssl.capath">
<term>
<parameter>openssl.capath</parameter>
<type>string</type>
</term>
<listitem>
<para>
Если cafile не задан или сертификат не найден, то директория, указанная
в capath будет использована для поиска сертификата.
capath должна быть корректно хешированной директорией сертификата.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Также смотрите опции <link linkend="context.ssl">контекста потока SSL</link>.
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 72af2380f5e6118d7823324ba69d6b33970f994f Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="function.preg-replace-callback-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>preg_replace_callback_array</refname>
<refpurpose>Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>preg_replace_callback_array</methodname>
<methodparam><type>array</type><parameter>patterns_and_callbacks</parameter></methodparam>
<methodparam><type>mixed</type><parameter>subject</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>limit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">count</parameter></methodparam>
</methodsynopsis>
<para>
Поведение этой функции похоже на
<function>preg_replace_callback</function>, за исключением того, что для каждого шаблона
используется своя функция обратного вызова.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>patterns_and_callbacks</parameter></term>
<listitem>
<para>
Ассоциативный массив, связывающий шаблоны регулярного выражения (ключи)
и функции обратного вызова (значения).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>subject</parameter></term>
<listitem>
<para>
Строка, в которой будет производиться поиск и замена.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>limit</parameter></term>
<listitem>
<para>
Максимальное количество замен для каждого шаблона в строке
<parameter>subject</parameter>. По умолчанию
<literal>-1</literal> (без ограничений).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>
Если задан, то в указанную переменную будет записано число произведенных замен.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>preg_replace_callback_array</function> возвращает массив, если
параметр <parameter>subject</parameter> является массивом и строку, если строкой.
В случае ошибки возвращается &null;
</para>
<para>
Если совпадения найдены, будет возвращена новая строка, а если нет, то исходная
<parameter>subject</parameter>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>preg_replace_callback_array</function></title>
<programlisting role="php">
<![CDATA[
<?php
$subject = 'Aaaaaa Bbb';
preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
}
],
$subject
);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
6 matches for "a" found
3 matches for "b" found
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link linkend="pcre.pattern">Шаблоны PCRE</link></member>
<member><function>preg_replace_callback</function></member>
<member><function>preg_quote</function></member>
<member><function>preg_replace</function></member>
<member><function>preg_last_error</function></member>
<member><link linkend="functions.anonymous">Анонимные функции</link></member>
<member>&seealso.callback;</member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<section xml:id="ref.pdo-ibm.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
<para>
Для сборки расширения PDO_IBM, на вашей системе должен быть установлен
DB2 Client версии v9.1 или выше. DB2 Client можно загрузить с сайта
<link xlink:href="&url.ibmdb2.ad;">Сайта Разработки Приложений IBM</link>.
</para>
<note>
<title>Обратите внимание</title>
<para>
DB2 Client версии v9.1 и выше поддерживает прямой доступ к DB2 для Linux,
UNIX и Windows Server v8 и v9.1.
</para>
<para>
Также DB2 Client v9.1 поддерживает доступ к серверам DB2 UDB для i5 и DB2 UDB
для z/OS используя отдельно купленый <link xlink:href="&url.ibmdb2.con;">продукт
DB2 Connect</link>.
</para>
</note>
<para>
PDO_IBM - это расширение <link xlink:href="&url.pecl;">PECL</link>, так что следуюте
инструкции <xref linkend='install.pecl' /> для установки данного расширения.
Не забудьте указать команде <command>configure</command> местоположение
заголовочных файлов DB2 Client и библиотек:
<screen>
<![CDATA[
bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
]]>
</screen>
Команда <command>configure</command> по умолчанию будет использовать переменную
окружения <literal>DB2DIR</literal>.
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14af302c9c0e561fa6f9cdd956268758ba9a89c5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<reference xml:id="ref.pdo-ibm" xmlns="http://docbook.org/ns/docbook">
<title>Функции IBM (PDO_IBM)</title>
<titleabbrev>IBM (PDO)</titleabbrev>
<partintro>
<section xml:id="pdo-ibm.intro">
&reftitle.intro;
<para>
PDO_IBM - это драйвер, реализующий интерфейс <link linkend="intro.pdo">PHP Data
Objects (PDO)</link> для предоставления возможности работать с базами данных IBM.
</para>
</section>
<!-- Information found in configure.xml -->
&reference.pdo-ibm.configure;
</partintro>
<refentry xml:id="ref.pdo-ibm.connection">
<refnamediv>
<refname>PDO_IBM DSN</refname>
<refpurpose>Соединение с базой данных IBM</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Имя источника данных (DSN) PDO_IBM базируется на IBM CLI DSN. Главный компонент
PDO_IBM DSN:
<variablelist>
<varlistentry>
<term>Префикс DSN</term>
<listitem>
<para>
Префикс DSN - <userinput>ibm:</userinput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DSN</term>
<listitem>
<para>
DSN может быть одним из нижеследующего:
<itemizedlist>
<listitem>
<para>
a) Настройка источника данных с помощью <filename>db2cli.ini</filename>
или <filename>odbc.ini</filename>
</para>
</listitem>
<listitem>
<para>
b) Каталогизированное имя базы данных. Т.е. псевдоним базы данных
в каталоге клиента DB2
</para>
</listitem>
<listitem>
<para>
c) Полноценная строка соединения:
<code>DRIVER={IBM DB2 ODBC DRIVER};DATABASE=<parameter>database</parameter>;HOSTNAME=<parameter>hostname</parameter>;PORT=<parameter>port</parameter>;PROTOCOL=TCPIP;UID=<parameter>username</parameter>;PWD=<parameter>password</parameter>;</code>
где параметры означают следующее:
<variablelist>
<varlistentry>
<term><parameter>database</parameter></term>
<listitem>
<para>
Имя базы данных.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>hostname</parameter></term>
<listitem>
<para>
Имя хоста или IP-адрес сервера баз данных.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
Порт TCP/IP, на котором слушает база.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>username</parameter></term>
<listitem>
<para>
Имя пользователя.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>password</parameter></term>
<listitem>
<para>
Пароль пользователя.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример PDO_IBM DSN с использованием <filename>db2cli.ini</filename></title>
<para>
Следующий пример демонстрирует PDO_IBM DSN для соединения с базой DB2
указанной как DB2_9 в <filename>db2cli.ini</filename>:
<programlisting><![CDATA[
$db = new PDO("ibm:DSN=DB2_9", "", "");
[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789
]]></programlisting>
</para>
</example>
<example>
<title>Пример PDO_IBM DSN с использованием строки соединения</title>
<para>
Следующий пример демонстрирует PDO_IBM DSN для соединения с базой DB2
с именем <userinput>testdb</userinput> используя синтаксис соединения DB2 CLI.
<programlisting><![CDATA[
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");
]]>
</programlisting>
</para>
</example>
</para>
</refsect1>
</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->