Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Исключение из списка файлов по расширению
Форумы портала PHP.SU » PHP » Программирование на PHP » Исключение из списка файлов по расширению

Страниц (1): [1]
 

1. Viper - 22 Марта, 2010 - 13:41:50 - перейти к сообщению
есть такое
PHP:
скопировать код в буфер обмена
  1. $dir = @opendir($ScanDir);
  2.  
  3. if ($dir !== false) {
  4.         while (($file = @readdir($dir)) !== false) {
  5.                 $FullFileName = realpath($ScanDir.'/'.$file);
  6.                 if (is_file($FullFileName)) {
  7.                         set_time_limit(30);
  8.                         $ThisFileInfo = $getID3->analyze($FullFileName);
  9.                         getid3_lib::CopyTagsToComments($ThisFileInfo);
  10.  
  11.                         $file_ext = substr($ThisFileInfo['filenamepath'], strrpos($ThisFileInfo['filenamepath'], '.') +1);
  12.                         if ($file_ext == 'mp3' || $file_ext == 'jpg') {
  13.                                 echo 'mp3';
  14.                         } else {
  15.                                 echo 'over ext';
  16.                         }
  17.                 }
  18.         }
  19. }

затык в том, что если в папке присутствуют файлы с другими расширениями, то скрипт выводит в список и mp3 и jpg и другие... никак не могу понять где наступаю на грабли(ю)... нужно как-то либо отбрасывать другие расширения, либо делать фильтр...
2. Champion - 22 Марта, 2010 - 13:52:18 - перейти к сообщению
Viper пишет:
Сообщений всего: 713
Дата рег-ции: Февр. 2007
Ты же знаешь, что тебя отправят к отладке) Выведи имена файлов, результат функции. Может быть дело в нижнем/верхнем регистре.
3. T-sh - 22 Марта, 2010 - 13:54:49 - перейти к сообщению
имхо, целесообразнее непосредственно до

PHP:
скопировать код в буфер обмена
  1.     $FullFileName = realpath($ScanDir.'/'.$file);


делать проверку на наличие/отсутствие в $file нужных расширений. обычным поиском в строке.
4. Viper - 22 Марта, 2010 - 14:13:26 - перейти к сообщению
Champion ну эт понятное дело ) просто проблема в том, что выводится все нормально. имена в виде 01.mp3 и 1204766254_soho_m8.jpg к примеру.

T-sh это конечно вариант, но ограничение скрипта.

тем более что в другом месте точно такая же проверка прекрасно работает.

вот к примеру список файлов из папки

CODE (htmlphp):
скопировать код в буфер обмена
  1. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/01.mp3
  2. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/02.mp3
  3. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/03.mp3
  4. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/04.mp3
  5. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/05.mp3
  6. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/06.mp3
  7. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/07.mp3
  8. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/08.mp3
  9. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/09.mp3
  10. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/10.mp3
  11. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/1204766254_soho_m8.jpg
  12. D:/WWW/htdocs/local/downloads/kamelia/(08.03.08) - M8 - mixed by dj Fashion/multikey.inf


т.е. нужно то всего... отбросить либо все, либо вывести в отдельный список.
5. DeepVarvar - 22 Марта, 2010 - 16:26:24 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (eregi("[a-zA-Z0-p_-]*.jpg",$FullFileName)) { ... }
И все... Это для *.jpg.....
6. Viper - 23 Марта, 2010 - 07:42:01 - перейти к сообщению
всем спасибо. после долгих обмозговываний решил все же 1 раз просканировать папку и создать файл плейлиста.

DeepVarvar как вариант да, но функция не поддерживается уже в 5.3.0 и не будет её в 6. к тому же регулярка при проверке будет медленно работать имхо

 

Powered by ExBB FM 1.0 RC1