php-doc-en/reference/filesystem/functions/parse-ini-file.xml
2004-07-27 09:44:05 +00:00

162 lines
4.3 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.17 $ -->
<!-- splitted from ./en/functions/filesystem.xml, last change in rev 1.87 -->
<refentry id="function.parse-ini-file">
<refnamediv>
<refname>parse_ini_file</refname>
<refpurpose>Parse a configuration file</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>array</type><methodname>parse_ini_file</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>process_sections</parameter></methodparam>
</methodsynopsis>
<para>
<function>parse_ini_file</function> loads in the
ini file specified in <parameter>filename</parameter>,
and returns the settings in it in an associative array.
By setting the last <parameter>process_sections</parameter>
parameter to &true;, you get a multidimensional array, with
the section names and settings included. The default
for <parameter>process_sections</parameter> is &false;
</para>
<note>
<para>
This function has nothing to do with the
&php.ini; file. It is already processed,
the time you run your script. This function can be used to
read in your own application's configuration files.
</para>
</note>
<note>
<para>
If a value in the ini file contains any non-alphanumeric
characters it needs to be enclosed in double-quotes (").
</para>
</note>
<note>
<simpara>
Since PHP 4.2.1 this function is also affected by &safemode;
and <link linkend="ini.open-basedir">open_basedir</link>.
</simpara>
</note>
<note>
<simpara>
There are reserved words which must not be used as keys for
ini files. These include: null, yes, no, true, and false.
</simpara>
</note>
<para>
The structure of the ini file is similar to that of
the &php.ini;'s.
</para>
<para>
<link linkend="language.constants">Constants</link> may also be parsed
in the ini file so if you define a constant as an ini value before
running <function>parse_ini_file</function>, it will be integrated into
the results. Only ini values are evaluated. For example:
</para>
<para>
<example>
<title>Contents of <filename>sample.ini</filename></title>
<programlisting>
<![CDATA[
; This is a sample configuration file
; Comments start with ';', as in php.ini
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title><function>parse_ini_file</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
define('BIRD', 'Dodo bird');
// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);
// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);
?>
]]>
</programlisting>
<para>
Would produce:
</para>
<screen>
<![CDATA[
Array
(
[one] => 1
[five] => 5
[animal] => Dodo bird
[path] => /usr/local/bin
[URL] => http://www.example.com/~username
)
Array
(
[first_section] => Array
(
[one] => 1
[five] => 5
[animal] = Dodo bird
)
[second_section] => Array
(
[path] => /usr/local/bin
[URL] => http://www.example.com/~username
)
)
]]>
</screen>
</example>
</para>
<para>
Keys and section names consisting from numbers are evaluated as PHP
<link linkend="language.types.integer">integers</link> thus numbers
starting by 0 are evaluated as octals and numbers starting by 0x are
evaluated as hexadecimals.
</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
-->