Home >Backend Development >PHP Tutorial >How to Write Data to INI Files with PHP?
INI files are commonly used for storing configuration settings. While PHP has limited native support for manipulating INI files, this task can be accomplished using custom code.
To create a new INI file and write values to it, you can leverage user-defined functions like the following:
<code class="php">function write_ini_file($assoc_arr, $path, $has_sections=FALSE) { $content = ""; if ($has_sections) { foreach ($assoc_arr as $key => $elem) { $content .= "[$key]\n"; foreach ($elem as $key2 => $elem2) { if(is_array($elem2)) { for($i=0;$i<count($elem2);$i++) { $content .= $key2."[] = \"".$elem2[$i]."\"\n"; } } else if($elem2=="") $content .= $key2." = \n"; else $content .= $key2." = \"".$elem2."\"\n"; } } } else { foreach ($assoc_arr as $key => $elem) { if(is_array($elem)) { for($i=0;$i<count($elem);$i++) { $content .= $key."[] = \"".$elem[$i]."\"\n"; } } else if($elem=="") $content .= $key." = \n"; else $content .= $key." = \"".$elem."\"\n"; } } if (!$handle = fopen($path, 'w')) { return false; } $success = fwrite($handle, $content); fclose($handle); return $success; }
To utilize this function, pass an associative array containing your desired INI values as the first argument, specify the desired path for the INI file as the second argument, and set $has_sections to TRUE if you want to organize the data into sections.
<code class="php">$sampleData = array( 'first' => array( 'first-1' => 1, 'first-2' => 2, 'first-3' => 3, 'first-4' => 4, 'first-5' => 5, ), 'second' => array( 'second-1' => 1, 'second-2' => 2, 'second-3' => 3, 'second-4' => 4, 'second-5' => 5, )); write_ini_file($sampleData, './data.ini', true);</code>
This code will create a new INI file named data.ini in the current directory and populate it with the provided values organized into two sections, first and second.
The above is the detailed content of How to Write Data to INI Files with PHP?. For more information, please follow other related articles on the PHP Chinese website!