Re: [PATCH] use file_get_contents instead fread($fp, filesize($filename))
Monte Ohrt <[email protected]>
| Newsgroups | gmane.comp.php.smarty.devel |
|---|---|
| Message-ID | <[email protected]> |
This has come up before... the problem is that file_get_contents() was introduced in PHP 4.3.0. We can either wait until we consider 4.3.0 to be Smarty's lowest PHP version supported (when that will be?), or build an internal file_get_contents() function in the case it does not exist. I haven't benchmarked the latter, but I'm partial to waiting. Antony Dovgal wrote: >Hi! > >Small patch, which removes all fopen() - fread($fp, filesize($filename)) >- fclose() cases, replacing them with one file_get_contents() call. > >Moreover, this fixes problem with bug http://bugs.php.net/29023, which >prevents Smarty from working properly. > >Regardless of the fact that this bug will be fixed (I hope), this >fopen-fread-filesize-fclose mess can be safely replaced by one >file_get_contents() calls. > >Please, review it. > >--- >WBR, >Antony Dovgal aka tony2001 >[email protected] || [email protected] > > >!DSPAM:40ead217207291919119506! > > >------------------------------------------------------------------------ > >Index: Config_File.class.php >=================================================================== >RCS file: /repository/smarty/libs/Config_File.class.php,v >retrieving revision 1.71 >diff -u -r1.71 Config_File.class.php >--- Config_File.class.php 17 Jun 2004 08:55:09 -0000 1.71 >+++ Config_File.class.php 6 Jul 2004 13:50:57 -0000 >@@ -234,14 +234,12 @@ > $config_file = $file_name; > > ini_set('track_errors', true); >- $fp = @fopen($config_file, "r"); >- if (!is_resource($fp)) { >+ if (!is_readable($config_file)) { > $this->_trigger_error_msg("Could not open config file '$config_file'"); > return false; > } > >- $contents = ($size = filesize($config_file)) ? fread($fp, $size) : ''; >- fclose($fp); >+ $contents = ($size = filesize($config_file)) ? file_get_contents($config_file) : ''; > > $this->_config_data[$config_file] = $this->parse_contents($contents); > return true; >Index: Smarty.class.php >=================================================================== >RCS file: /repository/smarty/libs/Smarty.class.php,v >retrieving revision 1.492 >diff -u -r1.492 Smarty.class.php >--- Smarty.class.php 1 Jul 2004 15:48:40 -0000 1.492 >+++ Smarty.class.php 6 Jul 2004 13:50:57 -0000 >@@ -1705,9 +1705,8 @@ > */ > function _read_file($filename) > { >- if ( file_exists($filename) && ($fd = @fopen($filename, 'rb')) ) { >- $contents = ($size = filesize($filename)) ? fread($fd, $size) : ''; >- fclose($fd); >+ if ( is_readable($filename) ) { >+ $contents = ($size = filesize($filename)) ? file_get_contents($filename) : ''; > return $contents; > } else { > return false; > > > -- Smarty Development Mailing List (http://smarty.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php