diff options
author | David M <davidmj@users.sourceforge.net> | 2006-01-04 06:37:17 +0000 |
---|---|---|
committer | David M <davidmj@users.sourceforge.net> | 2006-01-04 06:37:17 +0000 |
commit | 17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd (patch) | |
tree | a336e7f3bff32c0afe1e78c67efdfc8f2ee71f53 /phpBB/includes | |
parent | 6583da5bf03f563b97047871d60ed3ae70af69d0 (diff) | |
download | forums-17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd.tar forums-17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd.tar.gz forums-17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd.tar.bz2 forums-17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd.tar.xz forums-17dc26e19b1738ccb3a2c8bb4b3757168cf9eabd.zip |
- file_get_contents instead of imploding file()s or fread()ing till the maximum filesize
- language and style properly use compression
- language now prompts user for methods
- functions_compress does not need to eval() to get a hex date, instead calls pack()
- A writing method is defined at the end of tar operations only if data has been sent to the archive
- BBCode parser does not have to eval(), it instead uses the regex to loop around the matches
Hopefully nothing broke :-)
git-svn-id: file:///svn/phpbb/trunk@5422 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/acp/acp_language.php | 16 | ||||
-rw-r--r-- | phpBB/includes/acp/acp_styles.php | 16 | ||||
-rw-r--r-- | phpBB/includes/bbcode.php | 16 | ||||
-rw-r--r-- | phpBB/includes/functions_compress.php | 23 | ||||
-rw-r--r-- | phpBB/includes/functions_display.php | 4 | ||||
-rw-r--r-- | phpBB/includes/functions_template.php | 5 |
6 files changed, 35 insertions, 45 deletions
diff --git a/phpBB/includes/acp/acp_language.php b/phpBB/includes/acp/acp_language.php index 0949311ae7..7bf8563440 100644 --- a/phpBB/includes/acp/acp_language.php +++ b/phpBB/includes/acp/acp_language.php @@ -479,7 +479,7 @@ class acp_language { if ($is_email_file) { - $lang = implode('', file($phpbb_root_path . $this->get_filename($lang_iso, $this->language_directory, $this->language_file, $file_from_store))); + $lang = file_get_contents($phpbb_root_path . $this->get_filename($lang_iso, $this->language_directory, $this->language_file, $file_from_store)); } else { @@ -627,9 +627,9 @@ class acp_language $db->sql_freeresult($result); $use_method = request_var('use_method', ''); - $methods = array('tar'); + $methods = array('.tar'); - $available_methods = array('tar.gz' => 'zlib', 'tar.bz2' => 'bz2', 'zip' => 'zlib'); + $available_methods = array('.tar.gz' => 'zlib', '.tar.bz2' => 'bz2', '.zip' => 'zlib'); foreach ($available_methods as $type => $module) { if (!@extension_loaded($module)) @@ -640,11 +640,6 @@ class acp_language $methods[] = $type; } - if (!in_array($use_method, $methods)) - { - $use_method = 'tar'; - } - // Let the user decide in which format he wants to have the pack if (!$use_method) { @@ -666,6 +661,11 @@ class acp_language return; } + if (!in_array($use_method, $methods)) + { + $use_method = '.tar'; + } + include_once($phpbb_root_path . 'includes/functions_compress.' . $phpEx); if ($use_method == 'zip') diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php index a4dae97559..72cc82ee4b 100644 --- a/phpBB/includes/acp/acp_styles.php +++ b/phpBB/includes/acp/acp_styles.php @@ -768,23 +768,23 @@ pagination_sep = \'{PAGINATION_SEP}\' switch ($format) { case 'tar': - $ext = 'tar'; + $ext = '.tar'; $mimetype = 'x-tar'; $compress = 'compress_tar'; break; case 'zip': - $ext = 'zip'; + $ext = '.zip'; $mimetype = 'zip'; break; case 'tar.gz': - $ext = 'tar.gz'; + $ext = '.tar.gz'; $mimetype = 'x-gzip'; break; case 'tar.bz2': - $ext = 'tar.bz2'; + $ext = '.tar.bz2'; $mimetype = 'x-bzip2'; break; @@ -800,11 +800,11 @@ pagination_sep = \'{PAGINATION_SEP}\' if ($format == 'zip') { - $compress = new compress_zip('w', $phpbb_root_path . "store/$path.$ext"); + $compress = new compress_zip('w', $phpbb_root_path . "store/$path$ext"); } else { - $compress = new compress_tar('w', $phpbb_root_path . "store/$path.$ext", $ext); + $compress = new compress_tar('w', $phpbb_root_path . "store/$path$ext", $ext); } if (sizeof($files)) @@ -830,11 +830,11 @@ pagination_sep = \'{PAGINATION_SEP}\' if (!$store) { $compress->download($path); - @unlink("{$phpbb_root_path}store/$path.$ext"); + @unlink("{$phpbb_root_path}store/$path$ext"); exit; } - trigger_error(sprintf($user->lang[$l_prefix . '_EXPORTED'], "store/$path.$ext") . adm_back_link($this->u_action)); + trigger_error(sprintf($user->lang[$l_prefix . '_EXPORTED'], "store/$path$ext") . adm_back_link($this->u_action)); } } diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php index ab0d742ede..a030151ac3 100644 --- a/phpBB/includes/bbcode.php +++ b/phpBB/includes/bbcode.php @@ -342,12 +342,10 @@ class bbcode if (empty($this->bbcode_template)) { - if (!($fp = @fopen($this->template_filename, 'rb'))) + if (($tpl = file_get_contents($this->template_filename)) === false) { trigger_error('Could not load bbcode template'); } - $tpl = fread($fp, filesize($this->template_filename)); - @fclose($fp); // replace \ with \\ and then ' with \'. $tpl = str_replace('\\', '\\\\', $tpl); @@ -355,12 +353,16 @@ class bbcode // strip newlines and indent $tpl = preg_replace("/\n[\n\r\s\t]*/", '', $tpl); - + // Turn template blocks into PHP assignment statements for the values of $bbcode_tpl.. - $tpl = preg_replace('#<!-- BEGIN (.*?) -->(.*?)<!-- END (.*?) -->#', "\n" . "\$this->bbcode_template['\$1'] = \$this->bbcode_tpl_replace('\$1','\$2');", $tpl); - $this->bbcode_template = array(); - eval($tpl); + + $matches = preg_match_all('#<!-- BEGIN (.*?) -->(.*?)<!-- END (?:.*?) -->#', $tpl, $match); + + for ($i = 0; $i < $matches - 1; $i++) + { + $this->bbcode_template[$match[1][$i]] = $this->bbcode_tpl_replace($match[1][$i], $match[2][$i]); + } } return (isset($this->bbcode_template[$tpl_name])) ? $this->bbcode_template[$tpl_name] : ((isset($bbcode_hardtpl[$tpl_name])) ? $bbcode_hardtpl[$tpl_name] : false); diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php index 55457bc226..4443292182 100644 --- a/phpBB/includes/functions_compress.php +++ b/phpBB/includes/functions_compress.php @@ -31,15 +31,7 @@ class compress if (is_file($phpbb_root_path . $src)) { - if (!($fp = @fopen("$phpbb_root_path$src", 'rb'))) - { - return false; - } - - $data = fread($fp, filesize("$phpbb_root_path$src")); - fclose($fp); - - $this->data($src_path, $data, false, stat("$phpbb_root_path$src")); + $this->data($src_path, file_get_contents("$phpbb_root_path$src"), false, stat("$phpbb_root_path$src")); } else if (is_dir($phpbb_root_path . $src)) { @@ -73,7 +65,7 @@ class compress continue; } - $this->data("$src_path$path$file", implode('', file("$phpbb_root_path$src$path$file")), false, stat("$phpbb_root_path$src$path$file")); + $this->data("$src_path$path$file", file_get_contents("$phpbb_root_path$src$path$file"), false, stat("$phpbb_root_path$src$path$file")); } } @@ -99,8 +91,8 @@ class compress function methods() { - $methods = array('tar'); - $available_methods = array('tar.gz' => 'zlib', 'tar.bz2' => 'bz2', 'zip' => 'zlib'); + $methods = array('.tar'); + $available_methods = array('.tar.gz' => 'zlib', '.tar.bz2' => 'bz2', '.zip' => 'zlib'); foreach ($available_methods as $type => $module) { @@ -314,8 +306,7 @@ class compress_zip extends compress $name = str_replace('\\', '/', $name); $dtime = dechex($this->unix_to_dos_time($stat[9])); - $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1]; - eval('$hexdtime = "' . $hexdtime . '";'); + $hexdtime = pack('H*', $dtime[6] . $dtime[7] . $dtime[4] . $dtime[5] . $dtime[2] . $dtime[3] . $dtime[0] . $dtime[1]); if ($is_dir) { @@ -563,11 +554,11 @@ class compress_tar extends compress function close() { - $fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && extension_loaded('zlib')) ? 'gzwrite' : 'fwrite'); $fzclose = ($this->isbz && function_exists('bzclose')) ? 'bzclose' : (($this->isgz && extension_loaded('zlib')) ? 'gzclose' : 'fclose'); - if ($this->wrote) + if ($this->wrote) { + $fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && extension_loaded('zlib')) ? 'gzwrite' : 'fwrite'); $fzwrite($this->fp, pack("a1024", "")); } diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 15f48e10b4..647fb0f972 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -675,12 +675,10 @@ function display_attachments($forum_id, $blockname, &$attachment_data, &$update_ $attachment_tpl = array(); $template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/attachment.html'; - if (!($fp = @fopen($template_filename, 'rb'))) + if (($attachment_template = file_get_contents($template_filename)) === false) { trigger_error('Could not load template file "' . $template_filename . '"'); } - $attachment_template = fread($fp, filesize($template_filename)); - @fclose($fp); // replace \ with \\ and then ' with \'. $attachment_template = str_replace('\\', '\\\\', $attachment_template); diff --git a/phpBB/includes/functions_template.php b/phpBB/includes/functions_template.php index 429346b7a4..88ea84d41d 100644 --- a/phpBB/includes/functions_template.php +++ b/phpBB/includes/functions_template.php @@ -44,13 +44,12 @@ class template_compile function _tpl_load_file($handle) { // Try and open template for read - if (!($fp = @fopen($this->template->files[$handle], 'r'))) + if (!file_exists($this->template->files[$handle])) { trigger_error("template->_tpl_load_file(): File {$this->template->files[$handle]} does not exist or is empty", E_USER_ERROR); } - $this->template->compiled_code[$handle] = $this->compile(trim(@fread($fp, filesize($this->template->files[$handle])))); - @fclose($fp); + $this->template->compiled_code[$handle] = $this->compile(trim(@file_get_contents($this->template->files[$handle]))); // Actually compile the code now. $this->compile_write($handle, $this->template->compiled_code[$handle]); |