PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Как исключить папки с некоторыми именами?
Поиск в теме | Версия для печати
Ley4ik_Russia
Отправлено: 18 Мая, 2011 - 07:35:07
Гость
Покинул форум
Сообщений всего: 94
Дата рег-ции: Март 2011
Помог: 1 раз(а)
есть функция
PHP:
скопировать код в буфер обмена
function dir_search( $dir , & $buffer , $exts = false , $recursive = true , $with_dir = true ) {
if ( $exts ) {
}
$buffer = findFiles( $dir , $exts , $recursive , $with_dir ) ;
foreach ( $buffer as $i => $file )
}
она ищет файлы в указанной папке по расширению, как дописать чтобы в некоторых папках эта функция не искала, т.е. добавить в исключения?
-----Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
Ley4ik_Russia
Отправлено: 18 Мая, 2011 - 09:21:01
Гость
Покинул форум
Сообщений всего: 94
Дата рег-ции: Март 2011
Помог: 1 раз(а)
EuGen пишет: Ley4ik_Russia пишет: findFiles($dir, $exts, $recursive, $with_dir);
Задачу, подозреваю, нужно адресовать этой функции.
PHP:
скопировать код в буфер обмена
function findFiles( $dir , $exts = null , $recursive = false , $with_dir = false ) {
$dir = replaceSl( $dir ) ;
$check_ext = $exts ;
while ( ( $file = readdir ( $handle ) ) !== false ) {
if ( $file == '.' || $file == '..' ) continue ;
if ( $check_ext ) {
if ( checkExt( $file , $exts ) )
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
} else {
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
}
} elseif ( $recursive && is_dir ( $dir . '/' . $file ) ) {
$result = array_merge ( $result , findFiles
( $dir . '/' . $file , $exts , true , $with_dir ) ) ; }
}
return $result ;
}
потому что в windows есть папки типа System Volume information, к которым доступ закрыт
-----Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
EuGen
Отправлено: 18 Мая, 2011 - 10:01:41
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007
Откуда: Berlin
Помог: 707 раз(а)
Сделайте дополнительный параметр. Например, так:
PHP:
скопировать код в буфер обмена
function findFiles
( $dir , $exts = null , $recursive = false , $with_dir = false , $rgFilter = array ( ) ) { $dir = replaceSl( $dir ) ;
$check_ext = $exts ;
while ( ( $file = readdir ( $handle ) ) !== false ) {
if ( $file == '.' || $file == '..' || in_array ( $file , $rgFilter ) ) continue ;
if ( $check_ext ) {
if ( checkExt( $file , $exts ) )
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
} else {
$result [ ] = $with_dir ? $dir . '/' . $file : $file ;
}
} elseif ( $recursive && is_dir ( $dir . '/' . $file ) ) {
$result = array_merge ( $result , findFiles
( $dir . '/' . $file , $exts , true , $with_dir , $rgFilter ) ) ; }
}
return $result ;
}
В $rgFilter передавайте массив имён, которые надо исключить.
-----Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB