Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: PHP, проверить по расширению наличие файла и получить имя
цитата
02/08/08 в 05:52
 just_beginner
в дирректории может быть (а может и не быть) 1 файл .flv
нужно проверить есть ли такой и есть есть - получить его имя..
посоветуйте самый негеморный способ (дирректорий таких тысячи. делается при каждом обращении)
большое спасибо icon_smile.gif
цитата
02/08/08 в 06:09
 Sterx
первое что пришло:
Код:

if ($handle = opendir($cat)){
    while (false !== ($file = readdir($handle))) {
               if (strstr($file, ".flv")) {
                  $array_names[]=$file;
                  }             
    }
if($array_names){print_r($array_names);}else{echo "FLV files not found";}

это для одной директории $cat
цитата
02/08/08 в 06:45
 Teacher-X
Код:
foreach (glob("path_to_dir/*.flv") as $filename) {
echo $filename;
}
цитата
02/08/08 в 06:47
 just_beginner
Sterx: немного не то..
Teacher-X: респектище smail54.gif
цитата
02/08/08 в 07:07
 wMaster
just_beginner писал:

Sterx: немного не то..
Teacher-X: респектище smail54.gif

Гм, вообще-то оба примера по сути одно и тоже. icon_confused.gif
цитата
02/08/08 в 07:17
 just_beginner
wMaster писал:
Гм, вообще-то оба примера по сути одно и тоже. icon_confused.gif

я не силен в пхп. может по сути одно и то же.. но первый не заработал, второй заработал и кода меньше icon_smile.gif
цитата
02/08/08 в 07:18
 just_beginner
а еще подскажите что добавить ко второму примеру чтобы писать чего на случай если нет видео файла?
цитата
02/08/08 в 07:34
 wMaster
Эти примеры покажут только файлы которые существуют.
цитата
02/08/08 в 07:38
 Teacher-X
вроде говорил, что файл всего один, тогда наверно можно вот так:
Код:

if( list(, $value) = each(glob("path_to_dir/*.flv")) ) {
echo $value;
}else{
echo "хуй там кого";
}
цитата
02/08/08 в 14:22
 just_beginner
Teacher-X писал:
вроде говорил, что файл всего один, тогда наверно можно вот так:
Код:

if( list(, $value) = each(glob("path_to_dir/*.flv")) ) {
echo $value;
}else{
echo "хуй там кого";
}


.flv файл будет один, кроме него будут html, jpg и т.д. вот нужно проверить есть ли он, и если есть получить имя..
цитата
02/08/08 в 15:20
 Teacher-X
just_beginner писал:
.flv файл будет один, кроме него будут html, jpg и т.д. вот нужно проверить есть ли он, и если есть получить имя..

последний код должен это делать по идее, или нет? smail101.gif
цитата
02/08/08 в 15:26
 SomeVar
ну если файл flv гарантированно один то для ускорения работы скрипта и экономии памяти под него наверное так лучше сделать:
Код:

<?
   $dir = './';

   $file = '';
   if ($dh = opendir($dir)) {
           while (($file = readdir($dh)) !== false)
               if (strstr($file, '.flv'))
         break;
      closedir($dh);
      if (!($file))
         echo 'no flv files';
      else
         echo $file;
   }
?>
цитата
02/08/08 в 15:39
 just_beginner
Teacher-X писал:
последний код должен это делать по идее, или нет? smail101.gif

что то он у меня ничего вообще не делает... первый вот делал если файл был...
цитата
02/08/08 в 15:41
 just_beginner
SomeVar: во, заработало как надо icon_smile.gif smail54.gif
цитата
02/08/08 в 16:09
 Sha
just_beginner писал:
SomeVar: во, заработало как надо icon_smile.gif smail54.gif

До тех пор пока в каталоге не появится что-то вроде "xxxxx.flv.bak"
цитата
02/08/08 в 16:19
 Sterx
Sha писал:
До тех пор пока в каталоге не появится что-то вроде "xxxxx.flv.bak"

но вероятность этого стремится к нулю icon_smile.gif
цитата
02/08/08 в 16:45
 xreload
топикстатер у тебя подпись под ником очень в тему smail101.gif
цитата
03/08/08 в 08:05
 just_beginner
xreload: icon_wink.gif
Sha: да не должно вроде ничего такого там появиться... и двух flv файлов недолжно тоже
цитата
07/08/08 в 20:08
 ad?alt!
код просто жжет icon_lol.gif icon_lol.gif icon_lol.gif
цитата
08/08/08 в 17:24
 Sha

Кстати да.
Поместите любой файл в каталог. А .flv файл удалите. А если каталог пуст, то вообще по идее будет выдаваться '..'
цитата
09/08/08 в 00:28
 leroy_17
а зачем читать каталоги каждый раз ? что кеш в наше время уже не модно ?

частое чтение большого каталога убивает диск за полгода примерно


Эта страница в полной версии