mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-27 22:38:55 +00:00

- All id attributes are now xml:id - Add docbook namespace to all root elements - Replace <ulink /> with <link xlink:href /> - Minor markup fixes here and there git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@238160 c90b9560-bf6c-de11-be94-00142212c4b1
194 lines
5.8 KiB
XML
194 lines
5.8 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.27 $ -->
|
|
<refentry xml:id="function.dl" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>dl</refname>
|
|
<refpurpose>Loads a PHP extension at runtime</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>int</type><methodname>dl</methodname>
|
|
<methodparam><type>string</type><parameter>library</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Loads the PHP extension given by the parameter
|
|
<parameter>library</parameter>.
|
|
</para>
|
|
<para>
|
|
Use <function>extension_loaded</function> to test whether a given
|
|
extension is already available or not. This works on both built-in
|
|
extensions and dynamically loaded ones (either through &php.ini; or
|
|
<function>dl</function>).
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>library</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
This parameter is <emphasis>only</emphasis> the filename of the
|
|
extension to load which also depends on your platform. For example,
|
|
the <link linkend="ref.sockets">sockets</link> extension (if compiled
|
|
as a shared module, not the default!) would be called
|
|
<filename>sockets.so</filename> on Unix platforms whereas it is called
|
|
<filename>php_sockets.dll</filename> on the Windows platform.
|
|
</para>
|
|
<para>
|
|
The directory where the extension is loaded from depends on your
|
|
platform:
|
|
</para>
|
|
<para>
|
|
Windows - If not explicitly set in the &php.ini;, the extension is
|
|
loaded from <filename>c:\php4\extensions\</filename> by default.
|
|
</para>
|
|
<para>
|
|
Unix - If not explicitly set in the &php.ini;, the default extension
|
|
directory depends on
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
whether PHP has been built with <literal>--enable-debug</literal>
|
|
or not
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
whether PHP has been built with (experimental) ZTS (Zend Thread Safety)
|
|
support or not
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
the current internal <literal>ZEND_MODULE_API_NO</literal> (Zend
|
|
internal module API number, which is basically the date on which a
|
|
major module API change happened, e.g. <literal>20010901</literal>)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Taking into account the above, the directory then defaults to
|
|
<literal><install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO</literal>,
|
|
e.g.
|
|
<filename>/usr/local/php/lib/php/extensions/debug-non-zts-20010901</filename>
|
|
or
|
|
<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; If the functionality of loading modules is not available
|
|
(see Note) or has been disabled (either by turning it off
|
|
<literal>enable_dl</literal> or by enabling &safemode;
|
|
in &php.ini;) an <constant>E_ERROR</constant> is emitted
|
|
and execution is stopped. If <function>dl</function> fails because the
|
|
specified library couldn't be loaded, in addition to &false; an
|
|
<constant>E_WARNING</constant> message is emitted.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title><function>dl</function> examples</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Example loading an extension based on OS
|
|
if (!extension_loaded('sqlite')) {
|
|
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
|
dl('php_sqlite.dll');
|
|
} else {
|
|
dl('sqlite.so');
|
|
}
|
|
}
|
|
|
|
// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
|
|
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> is <emphasis>not</emphasis> supported in
|
|
multithreaded Web servers. Use the <literal>extensions</literal>
|
|
statement in your &php.ini; when operating under such
|
|
an environment. However, the <literal>CGI</literal> and
|
|
<literal>CLI</literal> build are <emphasis role="strong">not</emphasis>
|
|
affected !
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
As of PHP 5, the <function>dl</function> function is deprecated in every
|
|
SAPI <emphasis>except</emphasis> <acronym>CLI</acronym>.
|
|
Use <link linkend="ini.extension">Extension Loading Directives</link>
|
|
method instead.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Since PHP 6 this function is disabled in all SAPIs, except CLI, CGI and
|
|
embed.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
<function>dl</function> is case sensitive on Unix platforms.
|
|
</para>
|
|
</note>
|
|
¬e.sm.disabled;
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><link linkend="ini.extension">Extension Loading Directives</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:"../../../../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
|
|
-->
|