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

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@116945 c90b9560-bf6c-de11-be94-00142212c4b1
133 lines
4.6 KiB
XML
133 lines
4.6 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.11 $ -->
|
|
<!-- splitted from ./en/functions/info.xml, last change in rev 1.29 -->
|
|
<refentry id="function.dl">
|
|
<refnamediv>
|
|
<refname>dl</refname>
|
|
<refpurpose>Loads a PHP extension at runtime</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<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>. The <parameter>library</parameter>
|
|
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>
|
|
&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>
|
|
<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>
|
|
<example>
|
|
<title><function>dl</function> example</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
if (!extension_loaded('gd')) {
|
|
if (!dl('gd.so')) {
|
|
exit;
|
|
}
|
|
}
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
<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><php-install-directory>/lib/php/extension/<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>
|
|
<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>
|
|
<function>dl</function> is case sensitive on unix platforms.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
See also
|
|
<link linkend="ini.extension">Extension Loading Directives</link>
|
|
and <function>extension_loaded</function>.
|
|
</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
|
|
-->
|