aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2011-11-20 22:37:24 -0500
committerOleg Pudeyev <oleg@bsdpower.com>2011-11-20 22:37:24 -0500
commit4378c0f85b80dbee3936dc0595f6d87b08cd89aa (patch)
tree3b381a95912460e34b4460c10755e0ba5cfb18d7
parentc67ca0ac9903ee2ab018da49141d8d085073f41a (diff)
parent813b5344e6fa245f174692de71a4fb44f239786d (diff)
downloadforums-4378c0f85b80dbee3936dc0595f6d87b08cd89aa.tar
forums-4378c0f85b80dbee3936dc0595f6d87b08cd89aa.tar.gz
forums-4378c0f85b80dbee3936dc0595f6d87b08cd89aa.tar.bz2
forums-4378c0f85b80dbee3936dc0595f6d87b08cd89aa.tar.xz
forums-4378c0f85b80dbee3936dc0595f6d87b08cd89aa.zip
Merge remote-tracking branch 'igorw/ticket/10323' into develop
* igorw/ticket/10323: [ticket/10323] slight potential performance improvement [ticket/10323] make finder work with PHP 5.2
-rw-r--r--phpBB/includes/extension/finder.php13
1 files changed, 9 insertions, 4 deletions
diff --git a/phpBB/includes/extension/finder.php b/phpBB/includes/extension/finder.php
index a1e6b2b347..f4a0b7a371 100644
--- a/phpBB/includes/extension/finder.php
+++ b/phpBB/includes/extension/finder.php
@@ -377,14 +377,20 @@ class phpbb_extension_finder
}
$directory_pattern = '#' . $directory_pattern . '#';
- $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST);
+ $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file_info)
{
+ $filename = $file_info->getFilename();
+ if ($filename == '.' || $filename == '..')
+ {
+ continue;
+ }
+
if ($file_info->isDir() == $is_dir)
{
if ($is_dir)
{
- $relative_path = $iterator->getInnerIterator()->getSubPath() . DIRECTORY_SEPARATOR . basename($file_info->getFilename()) . DIRECTORY_SEPARATOR;
+ $relative_path = $iterator->getInnerIterator()->getSubPath() . DIRECTORY_SEPARATOR . basename($filename) . DIRECTORY_SEPARATOR;
if ($relative_path[0] !== DIRECTORY_SEPARATOR)
{
$relative_path = DIRECTORY_SEPARATOR . $relative_path;
@@ -394,10 +400,9 @@ class phpbb_extension_finder
{
$relative_path = DIRECTORY_SEPARATOR . $iterator->getInnerIterator()->getSubPathname();
}
- $item_name = $file_info->getFilename();
if ((!$suffix || substr($relative_path, -strlen($suffix)) === $suffix) &&
- (!$prefix || substr($item_name, 0, strlen($prefix)) === $prefix) &&
+ (!$prefix || substr($filename, 0, strlen($prefix)) === $prefix) &&
(!$directory || preg_match($directory_pattern, $relative_path)))
{
$files[str_replace(DIRECTORY_SEPARATOR, '/', $location . $name . substr($relative_path, 1))] = $ext_name;