<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.30 $ --> <refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.parse-ini-file"> <refnamediv> <refname>parse_ini_file</refname> <refpurpose>Parse a configuration file</refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <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. </para> <para> The structure of the ini file is the same as the &php.ini;'s. </para> </refsect1> <refsect1 role="parameters"> &reftitle.parameters; <para> <variablelist> <varlistentry> <term><parameter>filename</parameter></term> <listitem> <para> The filename of the ini file being parsed. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>process_sections</parameter></term> <listitem> <para> 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> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> The settings are returned as an associative <type>array</type> on success, and &false; on failure. </para> </refsect1> <refsect1 role="changelog"> &reftitle.changelog; <para> <informaltable> <tgroup cols="2"> <thead> <row> <entry>&Version;</entry> <entry>&Description;</entry> </row> </thead> <tbody> <row> <entry>5.2.7</entry> <entry> On syntax error this function will return &false; rather then an empty array </entry> </row> <row> <entry>5.2.4</entry> <entry> Keys and section names consisting of numbers are now 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. </entry> </row> <row> <entry>5.0.0</entry> <entry> Values enclosed in double quotes can contain new lines. </entry> </row> <row> <entry>4.2.1</entry> <entry> This function is now affected by &safemode; and <link linkend="ini.open-basedir">open_basedir</link>. </entry> </row> </tbody> </tgroup> </informaltable> </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <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> <example> <title><function>parse_ini_file</function> example</title> <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> <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> &example.outputs.similar; <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> </refsect1> <refsect1 role="notes"> &reftitle.notes; <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> There are reserved words which must not be used as keys for ini files. These include: null, yes, no, true, and false. Values null, no and false results in "", yes and true results in "1". Characters <literal>{}|&~![()"</literal> must not be used anywhere in the key and have a special meaning in the value. </simpara> </note> </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 -->