@@ -171,65 +171,64 @@ function set($section, $key, $value = NULL) {
171171
172172 /**
173173 * Saves the entire array to the INI file.
174+ *
175+ * @param string|null $filename
176+ * @return bool
174177 */
175178 function save ($ filename = null ) {
176- if ($ filename == null ) {
179+ if ($ filename === null || $ filename === '' ) {
177180 $ filename = $ this ->_iniFilename ;
178181 }
179- if (true ) {
180- $ tmpFile = $ filename . '.tmp. ' . getmypid () . '. ' . uniqid ('' , true );
181- $ dir = dirname ($ filename );
182- if (!@is_dir ($ dir ) || !@is_writable ($ dir )) {
183- return false ;
184- }
185- $ lock = @fopen ($ filename . '.lock ' , 'c ' );
182+ $ tmpFile = $ filename . '.tmp. ' . getmypid () . '. ' . uniqid ('' , true );
183+ $ dir = dirname ($ filename );
184+ if (!@is_dir ($ dir ) || !@is_writable ($ dir )) {
185+ return false ;
186+ }
187+ $ lock = @fopen ($ filename . '.lock ' , 'c ' );
188+ if ($ lock ) {
189+ @flock ($ lock , LOCK_EX );
190+ }
191+ $ SFfdescriptor = @fopen ($ tmpFile , "wb " );
192+ if (!$ SFfdescriptor ) {
186193 if ($ lock ) {
187- @flock ($ lock , LOCK_EX );
188- }
189- $ SFfdescriptor = @fopen ($ tmpFile , "wb " );
190- if (!$ SFfdescriptor ) {
191- if ($ lock ) {
192- @flock ($ lock , LOCK_UN );
193- fclose ($ lock );
194- }
195- return false ;
196- }
197- // blocking exclusive lock
198- if (!@flock ($ SFfdescriptor , LOCK_EX )) {
199- fclose ($ SFfdescriptor );
200- @unlink ($ tmpFile );
201- return false ;
202- }
203- foreach ($ this ->_iniParsedArray as $ section => $ array ) {
204- fwrite ($ SFfdescriptor , "[ " . $ section . "] \n" );
205- foreach ($ array as $ key => $ value ) {
206- fwrite ($ SFfdescriptor , $ key . ' = ' . $ value . "\n" );
207- }
208- fwrite ($ SFfdescriptor , "\n" );
194+ @flock ($ lock , LOCK_UN );
195+ fclose ($ lock );
209196 }
210- fflush ($ SFfdescriptor );
211- @flock ($ SFfdescriptor , LOCK_UN );
197+ return false ;
198+ }
199+ // blocking exclusive lock
200+ if (!@flock ($ SFfdescriptor , LOCK_EX )) {
212201 fclose ($ SFfdescriptor );
202+ @unlink ($ tmpFile );
203+ return false ;
204+ }
205+ foreach ($ this ->_iniParsedArray as $ section => $ array ) {
206+ fwrite ($ SFfdescriptor , "[ " . $ section . "] \n" );
207+ foreach ($ array as $ key => $ value ) {
208+ fwrite ($ SFfdescriptor , $ key . ' = ' . $ value . "\n" );
209+ }
210+ fwrite ($ SFfdescriptor , "\n" );
211+ }
212+ fflush ($ SFfdescriptor );
213+ @flock ($ SFfdescriptor , LOCK_UN );
214+ fclose ($ SFfdescriptor );
213215
216+ $ ok = @rename ($ tmpFile , $ filename );
217+ if (!$ ok ) {
218+ @unlink ($ filename );
214219 $ ok = @rename ($ tmpFile , $ filename );
215- if (!$ ok ) {
216- @unlink ($ filename );
217- $ ok = @rename ($ tmpFile , $ filename );
218- }
219- if (!$ ok ) {
220- @unlink ($ tmpFile );
221- return false ;
222- }
223- @chmod ($ filename , FILE_PERMISSIONS );
224- if ($ lock ) {
225- @flock ($ lock , LOCK_UN );
226- fclose ($ lock );
227- }
228- clearstatcache (true , $ filename );
229- return true ;
230- } else {
220+ }
221+ if (!$ ok ) {
222+ @unlink ($ tmpFile );
231223 return false ;
232224 }
225+ @chmod ($ filename , FILE_PERMISSIONS );
226+ if ($ lock ) {
227+ @flock ($ lock , LOCK_UN );
228+ fclose ($ lock );
229+ }
230+ clearstatcache (true , $ filename );
231+ return true ;
233232 }
234233
235234}
0 commit comments