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

This is sent seperatly as apparently via the online doc editor it tells me the file is out of d git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@347578 c90b9560-bf6c-de11-be94-00142212c4b1
355 lines
9.3 KiB
XML
355 lines
9.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<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><initializer>&false;</initializer></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>scanner_mode</parameter><initializer>INI_SCANNER_NORMAL</initializer></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 <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>
|
|
<varlistentry>
|
|
<term><parameter>scanner_mode</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Can either be <constant>INI_SCANNER_NORMAL</constant> (default) or
|
|
<constant>INI_SCANNER_RAW</constant>. If <constant>INI_SCANNER_RAW</constant>
|
|
is supplied, then option values will not be parsed.
|
|
</para>
|
|
&ini.scanner.typed;
|
|
</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>7.0.0</entry>
|
|
<entry>
|
|
Hash marks (<literal>#</literal>) are no longer recognized as comments.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5.6.1</entry>
|
|
<entry>
|
|
Added new <constant>INI_SCANNER_TYPED</constant> mode.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5.3.0</entry>
|
|
<entry>
|
|
Added optional <parameter>scanner_mode</parameter> parameter.
|
|
Single quotes may now be used around variable assignments.
|
|
Hash marks (<literal>#</literal>) should no longer be used as comments
|
|
and will throw a deprecation warning if used.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5.2.7</entry>
|
|
<entry>
|
|
On syntax error this function will return &false; rather than 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>
|
|
</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"
|
|
|
|
[third_section]
|
|
phpversion[] = "5.0"
|
|
phpversion[] = "5.1"
|
|
phpversion[] = "5.2"
|
|
phpversion[] = "5.3"
|
|
|
|
urls[svn] = "http://svn.php.net"
|
|
urls[git] = "http://git.php.net"
|
|
]]>
|
|
</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
|
|
[phpversion] => Array
|
|
(
|
|
[0] => 5.0
|
|
[1] => 5.1
|
|
[2] => 5.2
|
|
[3] => 5.3
|
|
)
|
|
|
|
[urls] => Array
|
|
(
|
|
[svn] => http://svn.php.net
|
|
[git] => http://git.php.net
|
|
)
|
|
|
|
)
|
|
Array
|
|
(
|
|
[first_section] => Array
|
|
(
|
|
[one] => 1
|
|
[five] => 5
|
|
[animal] => Dodo bird
|
|
)
|
|
|
|
[second_section] => Array
|
|
(
|
|
[path] => /usr/local/bin
|
|
[URL] => http://www.example.com/~username
|
|
)
|
|
|
|
[third_section] => Array
|
|
(
|
|
[phpversion] => Array
|
|
(
|
|
[0] => 5.0
|
|
[1] => 5.1
|
|
[2] => 5.2
|
|
[3] => 5.3
|
|
)
|
|
|
|
[urls] => Array
|
|
(
|
|
[svn] => http://svn.php.net
|
|
[git] => http://git.php.net
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title><function>parse_ini_file</function> parsing a php.ini file</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// A simple function used for comparing the results below
|
|
function yesno($expression)
|
|
{
|
|
return($expression ? 'Yes' : 'No');
|
|
}
|
|
|
|
// Get the path to php.ini using the php_ini_loaded_file()
|
|
// function available as of PHP 5.2.4
|
|
$ini_path = php_ini_loaded_file();
|
|
|
|
// Parse php.ini
|
|
$ini = parse_ini_file($ini_path);
|
|
|
|
// Print and compare the values, note that using get_cfg_var()
|
|
// will give the same results for parsed and loaded here
|
|
echo '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;
|
|
echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs.similar;
|
|
<screen>
|
|
<![CDATA[
|
|
(parsed) magic_quotes_gpc = Yes
|
|
(loaded) magic_quotes_gpc = Yes
|
|
]]>
|
|
</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 by
|
|
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: <literal>null</literal>, <literal>yes</literal>,
|
|
<literal>no</literal>, <literal>true</literal>, <literal>false</literal>,
|
|
<literal>on</literal>, <literal>off</literal>, <literal>none</literal>.
|
|
Values <literal>null</literal>, <literal>off</literal>, <literal>no</literal> and
|
|
<literal>false</literal> result in <literal>""</literal>, and values
|
|
<literal>on</literal>, <literal>yes</literal> and <literal>true</literal> result
|
|
in <literal>"1"</literal>, unless <constant>INI_SCANNER_TYPED</constant> mode is used (as of PHP 5.6.1).
|
|
Characters <literal>?{}|&~!()^"</literal> must not be used anywhere in
|
|
the key and have a special meaning in the value.
|
|
</simpara>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Entries without an equal sign are ignored. For example, "foo"
|
|
is ignored whereas "bar =" is parsed and added with an empty
|
|
value. For example, MySQL has a "no-auto-rehash" setting
|
|
in <filename>my.cnf</filename> that does not take a value, so
|
|
it is ignored.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>parse_ini_string</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
|
|
-->
|