Version: 1.0
Type: Function
Category: Other
License: GNU General Public License
Description: I’m sure there’s others. Includes a small function to strip whitespace.
<? /******************************************************************************** Here's example ini settings: Lines beginning with ; are obviously ignored. ; returns $array['foo'] = "bar" foo=bar ; returns $array['foo'] = "bar.com/?foo=bar" foo=bar.com/?foo=bar ; returns $array['foo'][0] = "foo" and $array['foo'][1] = "bar" foo=foo,bar ********************************************************************************/ // strip a string of whitespace function ws_replace( $string ) { $match = array("/ /","/t/","/r/","/n/"); $replacement = ""; $new_string = preg_replace( $match , $replacement , $string ); return $new_string; } // gather settings from specified ini file function settings( $ini ) { $fp = 0; // the ini's file pointer $string = ""; // where to put the line $option = ""; // the name of the option $value = ""; // the value of the option $multi = ""; // if commas are used in value, it has multiple values $settings = array(); // this is where we'll dump all the ini's settings // attempt to open ini file if( $fp = @fopen( $ini , "r" ) ) { // while we haven't reached the end of the file... while( !feof( $fp ) ) { // get next line and strip it of whitespace $string = ws_replace( fgets( $fp , 1024 ) ); // if the line begins with ; skip on to the next line if ( $string{0} == ";" ) { continue; } // if the line is not a proper settings, ignore it elseif ( !eregi( "=" , $string ) ) { continue; } // if we're here, than we make a setting else { // assign the option and value list( $option , $value ) = split( "=" , $string , 2 ); // if $value contains commas, assign the value to an array if ( eregi( "," , $value ) ) { $multi = explode( "," , $value ); // $i<254 sets the array to a limit of 255 values for ($i=0;$i<254;$i++) { // if $i exists and isn't empty assign the key a value if ( array_key_exists( $i , $multi ) && !empty( $multi[$i] ) ) { $settings[$option][$i] = $multi[$i]; } // otherwise, break the for loop else { break; } } } // else assign normally else { $settings[$option] = $value; } } } fclose( $fp ); return $settings; } // if we can't open the ini file, return false else { return false; } } ?>