File: /var/www/delta/wp-content/plugins/wpml-string-translation/classes/utilities/wpml-st-scan-dir.php
<?php
class WPML_ST_Scan_Dir {
const PLACEHOLDERS_ROOT = '<root>';
/**
* @param string $folder
* @param array $extensions
* @param bool $single_file
* @param array $ignore_folders
*
* @return array
*/
public function scan( $folder, array $extensions = array(), $single_file = false, $ignore_folders = array() ) {
$files = array();
$scanned_files = array();
if ( is_dir( $folder ) ) {
$scanned_files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $folder ) );
} elseif ( $single_file ) {
$scanned_files = array( new SplFileInfo( $folder ) );
}
foreach ( $scanned_files as $file ) {
$ignore_file = false;
if ( in_array( $file->getExtension(), $extensions, true ) ) {
foreach ( $ignore_folders as $ignore_folder ) {
if ( false !== strpos( $file->getPathname(), str_replace( self::PLACEHOLDERS_ROOT, $folder, $ignore_folder ) ) ) {
$ignore_file = true;
}
}
if ( $ignore_file ) {
continue;
}
$files[] = $file->getPathname();
}
}
return $files;
}
}