Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Как посчитать кол-во файлов в папке? (http://www.flasher.ru/forum/showthread.php?t=110573)

Sam Russ 05.04.2008 01:28

Как посчитать кол-во файлов в папке?
 
У меня есть мувик который подгружает JPEGи из папки в которой лежит он сам, но я жёстко прописал количество контейнеров создаваемых под загружаемые картинки. Существует ли возможность определить скриптом количество файлов заданного типа в папке а потом передать это значение обратно во флеш и создавать столько контейнеров сколько требуется не редактируя каждый раз флешку?

screamge 05.04.2008 01:34

Код:

<?php
$path = 'jpgcontfolder';
$dir = opendir ("$path");
$i = 0;
while (false !== ($file = readdir($dir))) {
      if (strpos($file, '.jpg',1) ) {
          $i++;
  }
}
echo "numb=$i";
               
?>

Так можно подсчитать, получить это значение во флеш можно через LoadVars.

Sam Russ 05.04.2008 01:44

2screamge - спасибо брат! Я думал что Флешер умер как класс, но ты меня переубедил. Ещё раз спс.
С уважением.

Странно, не работает, пишу jpgcontfolder в виде $path = 'http://artbrathers.ru/tatoo/'; но возвращает тупо ноль.

а файлы в папке есть, все в lowercase, но почему то не считает :(

screamge 05.04.2008 01:48

Путь должен быть относительным.
P.S. объединяйте друг за другом идущие сообщения.

Sam Russ 05.04.2008 01:52

Относительный в виде $path = '../';?
Объединять как? Править предыдущие или цитировать все предыдущие в новых? Сорри если туплю, просто тыщу лет как тут не был :)

Бинго! Всё пашет!

Сорри, последний тупой вопрос на сегодня, работает всё кроме корневой директории в которой лежит сам файл, как выглядит путь к корню?

screamge 05.04.2008 02:19

Sam Russ получает плюс за мультипостинг и игнорирование просьб модератора.

Код:

$path = '.';

UnVisible 09.04.2008 14:43

А не лучше (в пхп) воспользоватся glob'ом?

$path = '/images/'; // Путь к папочке
$mask = '*_mypicture*.jpg'; // Маска файлов, как в тотал командере например =)
$massiv = glob($path.$mask); // Возвращает масив файлов с такой маской
$col = count($massiv); // Щитаем количество файлов, можно и с именами сразу дергать! =)

Alex Lexcuk 07.05.2008 01:19

Код:

<?php
//GaleryScoresText.php
echo "GaleryScoresText=Hi ev";
$dd=opendir(getcwd());//current path

while (true)
{
 $cur=readdir($dd);
if ($cur=="") break;
echo $cur."<br>";
}
closedir($dd);

echo $dd;
?>

[ctl+s]
In IE7 (Internet Explorer 7.0) http://dnadillo.dn.ua/mur_gallery/php/GaleryScoresText.php
It's worth seeing!


GaleryScoresText=Hi ev.
..
AC3_PHP.fla
AC3_PHP.swf
GaleryScoresText.php
GaleryScoresText.txt
my_load_php.as
Resource id #2

Normally...

I am has many good images in the path
http://dnadillo.dn.ua/images/imag/

Copy file GaleryScoresText.php in path http://dnadillo.dn.ua/images/imag/
in IE7 http://dnadillo.dn.ua/images/imag/GaleryScoresText.php

GaleryScoresText=Hi ev.
..
GaleryScoresText.php
magna_17_1024.jpg
magna_33_1024.jpg
magna_carta_078.JPG
magna_carta_115.JPG
magna_carta_126.JPG
magna_carta_127.JPG
magna_carta_131.JPG
magna_carta_133.JPG
magna_carta_140.JPG
magna_carta_141.JPG
magna_carta_144.JPG
Resource id #2


A lot of remarks (odd symbols - GaleryScoresText.php and Resource id #2) Need filter.
<?php
//GaleryScoresText.php
//echo "GaleryScoresText=Hi ev";
$dd=opendir(getcwd());

while (true)
{
 $cur=readdir($dd);
if ($cur=="") break;
if (strpos($cur,"jpg")==true)
echo $cur."<br>";
}
closedir($dd);

?>

in IE 7

magna_17_1024.jpg
magna_33_1024.jpg

<?php
//GaleryScoresText.php
//echo "GaleryScoresText=Hi ev";
$dd=opendir(getcwd());

while (true)
{
 $cur=readdir($dd);
if ($cur=="") break;
if ( (strpos($cur,"jpg")==true) or (strpos($cur,"JPG")==true) )
echo $cur."<br>";
}
closedir($dd);

?>

In IE7
magna_17_1024.jpg
magna_33_1024.jpg
magna_carta_078.JPG
magna_carta_115.JPG
magna_carta_126.JPG
magna_carta_127.JPG
magna_carta_131.JPG
magna_carta_133.JPG
magna_carta_140.JPG
magna_carta_141.JPG
magna_carta_144.JPG


<?php
//GaleryScoresText.php
$dd=opendir(getcwd());
$my_string="";
while (true)
{
 $cur=readdir($dd);
if ($cur=="") break;
if ( (strpos($cur,"jpg")==true) or (strpos($cur,"JPG")==true) )
$my_string=$my_string."|".$cur;
}
closedir($dd);
$my_string=$my_string."|";
echo "GaleryScoresText=".$my_string;
?>

In IE7

GaleryScoresText=|magna_17_1024.jpg|magna_33_1024.jpg|magna_carta_078.JPG|magna_carta_115.JPG|magna_carta_126.JPG|magna_carta_127.JPG|magna_carta_131.JPG|magna_carta_133.JPG|magna_carta_140.JPG|magna_carta_141.JPG|magna_carta_144.JPG|

http://dnadillo.dn.ua/mur_gallery/ph...ScoresText.txt

ZergMaster 10.05.2012 18:33

решал похожую проблему. Вышел сюда. Решил написать свое решение)
В данном случае можно обойтись без серверных скриптов:

Код AS3:

package  {
 
        import flash.display.MovieClip;
        import flash.net.URLRequest;
        import flash.display.Loader;
        import flash.system.LoaderContext;
        import flash.events.Event;
        import flash.events.ErrorEvent;
        import flash.events.IOErrorEvent;
        import flash.errors.IOError;
        import flash.events.MouseEvent;
 
        public class main extends MovieClip {
 
                private var n:Number = 0;
                private var k:Number = 0;
                private var _this:*;
                private var imgArr:Array = [];
 
                public function main() {
                        _this = this;
                        pushIMG();
                        but.addEventListener(MouseEvent.CLICK, clbut);
                }
 
                private function clbut(e:MouseEvent):void {
                        _this.addChild(imgArr[k]);
                        k++;
                        }
 
                private function pushIMG():void {
                        var imgAdress:String = 'img'+String(n)+'.jpg';
                        var urlR:URLRequest = new URLRequest(imgAdress);
                        var img:Loader = new Loader();
                        var loaderContext:LoaderContext = new LoaderContext();
                        loaderContext.checkPolicyFile = true;
                        img.contentLoaderInfo.addEventListener(Event.COMPLETE, onAvaLoaded);
                        img.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onResponse);
                        img.load(urlR, loaderContext);
                        function onResponse(e:IOErrorEvent):void {
                                trace('нет картинки с именем img'+n+'.jpg');
                                trace('imgArr === '+imgArr.toString());
                                }
                        function onAvaLoaded(e:Event): void {
                                trace('e == '+e);
                                n++;
                                imgArr.push(img.content);
                                pushIMG();
                                }
 
                        }
        }
 
}

данный скрипт загружает картинки из папки в массив imgArr с именем вида 'img'+(номер картинки с нуля)+'.jpg' до тех пор, пока не нарвется на ошибку, говорящую нам о том, что картинок больше нет. Далее эти картинки из массива можно использовать как душе угодно (в данном случае я их просто отображаю по порядку на клик кнопки)


Часовой пояс GMT +4, время: 09:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.