<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >parse_ini_file</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Filesystem 文件系统函数" HREF="ref.filesystem.html"><LINK REL="PREVIOUS" TITLE="move_uploaded_file" HREF="function.move-uploaded-file.html"><LINK REL="NEXT" TITLE="pathinfo" HREF="function.pathinfo.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.move-uploaded-file.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.pathinfo.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.parse-ini-file" ></A >parse_ini_file</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN54414" ></A ><P > (PHP 4, PHP 5)</P >parse_ini_file -- 解析一个配置文件</DIV ><DIV CLASS="refsect1" ><A NAME="AEN54417" ></A ><H2 >说明</H2 >array <B CLASS="methodname" >parse_ini_file</B > ( string filename [, bool process_sections] )<BR ></BR ><P > <B CLASS="function" >parse_ini_file()</B > 载入一个由 <CODE CLASS="parameter" >filename</CODE > 指定的 ini 文件,并将其中的设置作为一个联合数组返回。如果将最后的 <CODE CLASS="parameter" >process_sections</CODE > 参数设为 <TT CLASS="constant" ><B >TRUE</B ></TT >,将得到一个多维数组,包括了配置文件中每一节的名称和设置。<CODE CLASS="parameter" >process_sections</CODE > 的默认值是 <TT CLASS="constant" ><B >FALSE</B ></TT >。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 本函数和 <TT CLASS="filename" >php.ini</TT > 文件没有关系,该文件在运行脚本时就已经处理过了。本函数可以用来读取你自己的应用程序的配置文件。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 如果 ini 文件中的值包含任何非字母数字的字符,需要将其括在双引号中(")。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 自 PHP 4.2.1 其本函数也受到<A HREF="features.safe-mode.html#ini.safe-mode" >安全模式</A >和 <A HREF="features.safe-mode.html#ini.open-basedir" >open_basedir</A > 的影响。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 自 PHP 5.0 版本开始,该函数也处理选项值内的新行。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 有些保留字不能作为 ini 文件中的键名,包括:null,yes,no,true 和 false。值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。字符 <TT CLASS="literal" >{}|&~![()"</TT > 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。 </P ></BLOCKQUOTE ></DIV ><P > ini 文件的结构和 <TT CLASS="filename" >php.ini</TT > 的相似。 </P ><P > <A HREF="language.constants.html" >常量</A >也可以在 ini 文件中被解析,因此如果在运行 <B CLASS="function" >parse_ini_file()</B > 之前定义了常量作为 ini 的值,将会被集成到结果中去。只有 ini 的值会被求值。例如: </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN54455" ></A ><P ><B >例 1. <TT CLASS="filename" >sample.ini</TT > 的内容</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >; 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"</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN54460" ></A ><P ><B >例 2. <B CLASS="function" >parse_ini_file()</B > 例子</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /><br />define</font><font color="#007700">(</font><font color="#DD0000">'BIRD'</font><font color="#007700">, </font><font color="#DD0000">'Dodo bird'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Parse without sections<br /></font><font color="#0000BB">$ini_array </font><font color="#007700">= </font><font color="#0000BB">parse_ini_file</font><font color="#007700">(</font><font color="#DD0000">"sample.ini"</font><font color="#007700">);<br /></font><font color="#0000BB">print_r</font><font color="#007700">(</font><font color="#0000BB">$ini_array</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Parse with sections<br /></font><font color="#0000BB">$ini_array </font><font color="#007700">= </font><font color="#0000BB">parse_ini_file</font><font color="#007700">(</font><font color="#DD0000">"sample.ini"</font><font color="#007700">, </font><font color="#0000BB">true</font><font color="#007700">);<br /></font><font color="#0000BB">print_r</font><font color="#007700">(</font><font color="#0000BB">$ini_array</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P >上例将输出:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >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 ) )</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > 由数字组成的键名和小节名会被 PHP 当作<A HREF="language.types.integer.html" >整数</A >来处理,因此以 0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。 </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.move-uploaded-file.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.pathinfo.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >move_uploaded_file</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.filesystem.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >pathinfo</TD ></TR ></TABLE ></DIV ></BODY ></HTML >