mirror of
https://github.com/php/doc-ja.git
synced 2026-04-29 19:13:26 +02:00
179 lines
6.1 KiB
XML
179 lines
6.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: a89c6d71c7b65e3de84f26230fbf72c9b8948adf Maintainer: takagi Status: ready -->
|
|
<!-- CREDITS: hirokawa,mumumu -->
|
|
<refentry xml:id="function.dl" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>dl</refname>
|
|
<refpurpose>実行時に PHP 拡張モジュールをロードする</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>bool</type><methodname>dl</methodname>
|
|
<methodparam><type>string</type><parameter>extension_filename</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
<parameter>extension_filename</parameter> で指定された PHP 拡張モジュールを読み込みます。
|
|
</para>
|
|
<para>
|
|
その拡張モジュールが既に使用可能かどうかを調べるには、
|
|
<function>extension_loaded</function> を使用します。
|
|
これは、組み込みのモジュールと
|
|
(&php.ini; か、あるいは <function>dl</function> を使用して)
|
|
動的に読み込むモジュールの両方に対応しています。
|
|
</para>
|
|
<warning>
|
|
<simpara>
|
|
この関数は、<acronym>CLI</acronym>
|
|
と、組み込済みの <acronym>SAPI</acronym> に対してのみ使えます。
|
|
また、コマンドラインから実行している場合にのみ
|
|
<acronym>CGI</acronym> <acronym>SAPI</acronym> に対しても使えます。
|
|
</simpara>
|
|
</warning>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>extension_filename</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
このパラメータに指定できるのは拡張モジュールの
|
|
ファイル名<emphasis>だけ</emphasis>であり、それはプラットフォームに依存します。
|
|
例えば、Unix プラットフォームでは
|
|
<link linkend="ref.sockets">sockets</link> 拡張モジュール
|
|
(共有モジュールとしてコンパイルされていれば。デフォルトでは有りません!)
|
|
は <filename>sockets.so</filename> と呼ばれていますし、一方 Windows
|
|
プラットフォームでは <filename>php_sockets.dll</filename> と呼ばれます。
|
|
</para>
|
|
<para>
|
|
拡張モジュールを読み込むディレクトリは、プラットフォームによって異なります。
|
|
</para>
|
|
<para>
|
|
Windows - &php.ini; に明記されていない場合、デフォルトでは
|
|
拡張モジュールは、<filename>C:\php5\</filename> からロードされます。
|
|
</para>
|
|
<para>
|
|
Unix - &php.ini; に明記されていない場合、デフォルトでは
|
|
以下に依存します。
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
PHP をビルドする際に <literal>--enable-debug</literal> を指定しているか否か
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
PHP をビルドする際に ZTS (Zend Thread Safety)
|
|
サポートを有効にしているか否か
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
現在の <literal>ZEND_MODULE_API_NO</literal>(Zend 内部モジュール
|
|
API 番号。基本的にはメジャーモジュール API の変更が発生した日時。
|
|
例:<literal>20010901</literal>)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
上記を考慮して、ディレクトリのデフォルトは
|
|
<literal><install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO</literal> となる。
|
|
例:
|
|
<filename>/usr/local/php/lib/php/extensions/debug-non-zts-20010901</filename>
|
|
または
|
|
<filename>/usr/local/php/lib/php/extensions/no-debug-zts-20010901</filename>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
&return.success;
|
|
拡張モジュールのロード機能が無効だったり、あるいは
|
|
無効化されている(<link linkend="ini.enable-dl">enable_dl</link> でオフにされている)場合は、
|
|
<constant>E_ERROR</constant> を発行して実行は停止されます。
|
|
指定されたライブラリをロードできず <function>dl</function> が
|
|
失敗した場合、&false; に加えて <constant>E_WARNING</constant> メッセージが
|
|
発行されます。
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title><function>dl</function> の例</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// OS によってロードするファイルを切り替える
|
|
if (!extension_loaded('sqlite')) {
|
|
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
|
dl('php_sqlite.dll');
|
|
} else {
|
|
dl('sqlite.so');
|
|
}
|
|
}
|
|
|
|
// または PHP_SHLIB_SUFFIX 定数を使用
|
|
if (!extension_loaded('sqlite')) {
|
|
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
|
|
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<para>
|
|
<function>dl</function> は Unix プラットフォーム上では
|
|
大文字小文字を区別します。
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><link linkend="ini.extension">拡張モジュール読み込み用のディレクティブ</link></member>
|
|
<member><function>extension_loaded</function></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
|
|
-->
|