for($i=0; $i<count($files_arr); $i++){
if(is_dir($files_arr[$i]){ unset($files_arr[$i]); }
sort($files_arr);
var_dump($files_arr);
}
Результат:
for($i=0; $i<count($files_arr); $i++){
if(is_dir($files_arr[$i]){ unset($files_arr[$i]); }
sort($files_arr);
var_dump($files_arr);
}
Цитата |
array 0 => string 'Thumbs.db' (length=9) 1 => string 'font.JPG' (length=8) 2 => string 'kmaks' (length=5) |
is_dir($files_arr[$i])а если использовать абсолютные пути?
define('IMG_DIR', './images/');
$files_array = scandir(IMG_DIR);
for($i=0; $i<count($files_array); $i++){
if(is_dir(IMG_DIR.$files_array[$i])){ unset($files_array[$i]);}
}
sort($files_array);
var_dump($files_array);
var_dump(is_dir(IMG_DIR.'/kmaks'));
Цитата |
I encoutered an error returning false on a directory, my problem was not a bug, but a bad relative path error inside the script function is_dir(), maybe it can help someone having the same problem. I am using Linux with the folowing structure: /var/www/vhosts/example.com/httpdocs/images/items_images/file1.jpg /var/www/vhosts/example.com/httpdocs/images/items_images/temp <?php /* The folder "temp" will show as directory with the following script: */ $full_path = "/var/www/vhosts/example.com/httpdocs/images/items_images"; if ($handle = opendir("$full_path")) { while (false !== ($file = readdir($handle))) { if(is_dir($full_path."/".$file)) continue; else echo $file; } } ?> <?php /* The folder "temp" will show as a file with the following script: */ $full_path = "/var/www/vhosts/example.com/httpdocs/images/items_images"; if ($handle = opendir("$full_path")) { while (false !== ($file = readdir($handle))) { if(is_dir($file)) continue; else echo $file; } } ?> |
define('IMG_DIR', './images/');
$files_array = scandir(IMG_DIR);
for($i=0; $i<count($files_array); $i++){
if(is_dir(IMG_DIR.$files_array[$i])){ unset($files_array[$i]);}
}
sort($files_array);
var_dump($files_array);
Цитата |
var_dump(is_dir(IMG_DIR.'/kmaks')); |
Цитата |
images/font.jpg images/kmaks images/arm-2009q3 |
var_dump(is_dir('/full/path/to/folder/kmaks')); ??
Цитата |
define('IMG_DIR', 'C:/wamp/www/images/'); |
Цитата (kmaks @ 3.08.2011 - 21:20) |
Тож самое. |
Цитата (kmaks @ 3.08.2011 - 21:11) |
boolean true |
Цитата (killer8080 @ 3.08.2011 - 21:23) |
ну так и должно быть |
define('IMG_DIR', './images/');
$files_array = scandir(IMG_DIR);
for($i=0; $i<count($files_array); $i++){
if(is_dir(IMG_DIR.$files_array[$i])){ unset($files_array[$i]);}
}
sort($files_array);
var_dump($files_array);
define('IMG_DIR', './images/');
foreach(scandir(IMG_DIR) as $file) {
if(is_dir(IMG_DIR . '/' . $file))
rmdir(IMG_DIR . '/' . $file);
}
Цитата |
array 0 => string '.' (length=1) 1 => string '..' (length=2) 2 => string 'Thumbs.db' (length=9) 3 => string 'folder' (length=6) 4 => string 'font.JPG' (length=8) |
define('IMG_DIR', './images/');
$arr = array('kmarks','secrets');
foreach(scandir(IMG_DIR) as $file) {
if(is_dir(IMG_DIR . '/' . $file) && in_array($file,$arr))
rmdir(IMG_DIR . '/' . $file);
}
$files_array = scandir(IMG_DIR);
for($i=0; $i<count($files_array); $i++){
if(is_dir(IMG_DIR.$files_array[$i])){
unset($files_array[$i]);
}
}
sort($files_array);
var_dump($files_array);
define('IMG_DIR', './images/');
foreach( ($arr = scandir(IMG_DIR) ) as $key => $name) {
if(is_dir(IMG_DIR . '/' . $name))
unset($arr[$key]);
}
print_r($arr);
Цитата (kmaks @ 4.08.2011 - 00:06) |
от корня диска, т.е. C:/...? если так, то не юзабельно ведь =) |
Цитата |
Вот смотрю я на вас и в толк взять не могу, над каким вопросом трудитесь? Может я туплю, но я так и не въехал, какая проблема у ТС. |
define('IMG_DIR', $_SERVER['DOCUMENT_ROOT'].'images/');
$files_array = scandir(IMG_DIR);
for($i=0; $i<count($files_array); $i++){
if(is_dir(IMG_DIR.$files_array[$i]) and $files_array[$i] != '.' and $files_array[$i] != '..'){
rmdir(IMG_DIR.$files_array[$i]);
}
}
sort($files_array);
var_dump($files_array);
define('IMG_DIR', $_SERVER['DOCUMENT_ROOT'].'images/');
$files = array();
foreach(scandir(IMG_DIR) as $file)
{
if(is_file(IMG_DIR . $file) || $file == '.' || $file == '..')
$files[] = IMG_DIR . $file;
}
sort($files);
var_dump($files);
define('IMG_DIR', dirname(__FILE__) . '/images/');
foreach( ($arr = scandir(IMG_DIR) ) as $key => $name) {
if( is_dir(IMG_DIR . '/' . $name))
unset($arr[$key]);
}
print_r($arr);
var_dump(is_dir('.')); // bool(true)
Цитата |
$_SERVER['DOCUMENT_ROOT"] |
$files = glob($_SERVER['DOCUMENT_ROOT'] . '/images/*.*');
Цитата (linker @ 4.08.2011 - 15:35) |
Папки тоже могут иметь расширение, да и вообще любой файл или папка, могут иметь в своём имени не одну точку |
Цитата (linker @ 4.08.2011 - 15:35) |
не надо везде пихать функцию glob(), не для таких задач она предназначена. |
Цитата (killer8080 @ 4.08.2011 - 17:04) |
Сомневаюсь что там будут папки с точками в названии, а насчёт файлов, файл с именем вроде some.cool.picture.jpg то же входит в маску *.* |
Цитата (killer8080 @ 4.08.2011 - 17:04) |
Сюда не попадут только файлы без расширений и начинающиеся с точки (например .htaccess). Если это не критично, то такой вариант то же имеет право на жизнь |
Цитата (killer8080 @ 4.08.2011 - 17:04) |
и почему в этой задаче она противопоказана? |
Цитата (neadekvat @ 4.08.2011 - 16:08) |
Сегодня нет, а завтра появилось. |
Цитата (neadekvat @ 4.08.2011 - 16:08) |
А по-моему, * означает "любое количество любых символов или ни одного символа". |
Цитата (neadekvat @ 4.08.2011 - 16:08) |
glob() надо использовать как фильтр, чтобы потом по циклам не отсеивать файлы - т.е. ты получишь сразу готовый массив файлов. |
Цитата (killer8080 @ 4.08.2011 - 17:34) |
там маска *.* |
Цитата (killer8080 @ 4.08.2011 - 17:34) |
ну так это оно и есть. В задаче нужно получить массив всех файлов в папке, отсеяв директории. |
Цитата (neadekvat @ 4.08.2011 - 17:11) |
Так разве .htaccess не подходит? |
Цитата (neadekvat @ 4.08.2011 - 17:11) |
Так уж тогда и ограничивать изображения по известным расширением, которые должны быть в каталоге. |