Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Из_дир (пхп)
цитата
15/09/08 в 17:44
 freeek
если примеру сканировать директорию, к примеру:

Код:
$d = dir('..');


то на вопрос Код:
if (is_dir($entry))

ответ Код:
FALSE
применяется, почти ко всем папкам,

однако если переместить сканер на позицию выше и просканировать

Код:
$d = dir('.');
то оезультат на тот же вопрос такой, какой ожидается

вопрос: мне надо как первый вариант, но с результатом второго icon_rolleyes.gif
цитата
15/09/08 в 18:00
 Corex
Надо if (is_dir('../' . $entry)), т.к. не указан полный путь, потому и false. В случае с '.' - подразумевается текущий каталог и полный путь без './' и так верный, поэтому true.
цитата
15/09/08 в 18:01
 -=Faraon=-
Непонял чтото я вопроса. '..' - это предыдущая директория! '.' - Это текущая директория так что ты пытаешься сделать?
цитата
15/09/08 в 18:10
 freeek
Код:
   
    $d = dir('../');
    while (false !== ($entry = $d->read()))
    {
      if ($entry != "." && $entry != "..")
      {
         if (is_dir($entry))
        {
         
        }
      }
    }
    $d->close();



смысл просканить все окружащие директории, кроме родительской и лежащие на одном с ней уровне

но, из 5 дир не считая родительской, виднотолько одну

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

вот мне и не понять в чем причина
цитата
15/09/08 в 18:33
 -=Faraon=-
<?
$dir=glob("*",GLOB_ONLYDIR);
print_r($dir);
?>
все диры!
цитата
15/09/08 в 18:46
 freeek
и? smail114.gif

хорошая функция, че то я упустил ее из виду, но она работае только с текузщем каталогом, поэтому нет смысла ее использовать

еще раз, более подробно

исполняемый файл находится здесь

Код:
../folder/go.php
//так же существуют каталоги
../cat1/
../tempfolder/
../etc/

// и т.д.

так вот мне надо из папки folder проверить, являются ли cat1,tempfolder,etc папками,
если я делаю методом описанным выше, то видно только одну папку, когда как, если переместить и сканировать из
Код:
../go.php  /* испоняемый файл */
../cat1/
../tempfolder/   /* каталоги */
../etc/


все папки видно, мне и интересно, почему не видно при первом варианте, или возможно тут дейстую некие правила, и возможно ли их обойти
цитата
15/09/08 в 18:54
 -=Faraon=-
<?
$dir=glob("../*",GLOB_ONLYDIR);
print_r($dir);
?>
ну так смотри. я невижу проблемы у тебя никакой что обходить. Отходняк у меня такой тяжёлый чтоли! icon_smile.gif
цитата
15/09/08 в 18:57
 freeek
теперь работает icon_smile.gif smail54.gif
цитата
15/09/08 в 18:59
 Corex
Как в пустоту написал...

Код:
$d = dir("..");
while (false !== ($entry = $d->read()))
{
    echo $entry . " " . var_dump(is_dir($entry)) . "<br>\n";
    echo "<u>" . $entry . " " . var_dump(is_dir("../" . $entry)) . "</u><br>\n";
}
$d->close();


Проверяя просто is_dir($entry) - будет false, т.к. неверно указан путь, проверяя is_dir("../" . $entry) - будет true, т.к. указан правильный полный путь, включающий первичную директорию.
цитата
15/09/08 в 19:00
 xreload
не туда.
цитата
15/09/08 в 19:18
 freeek
Corex писал:
Как в пустоту написал...

Код:
$d = dir("..");
while (false !== ($entry = $d->read()))
{
    echo $entry . " " . var_dump(is_dir($entry)) . "<br>\n";
    echo "<u>" . $entry . " " . var_dump(is_dir("../" . $entry)) . "</u><br>\n";
}
$d->close();


Проверяя просто is_dir($entry) - будет false, т.к. неверно указан путь, проверяя is_dir("../" . $entry) - будет true, т.к. указан правильный полный путь, включающий первичную директорию.



все верно, уже разобрался, едиственно что меня смутило, это то что один каталог все таки было видно, и мне почему не пришло в голову проверить именно пути до каталогов, показалось, что проблема в чем то другом х.з.

smail101.gif оказывается, внутри родительской диры, лежала с один из имен, что были среди искомых, и конечно же ее было видно

вот так вот пробуксовал icon_mad.gif icon_redface.gif icon_smile.gif

вариант с глоб мне понравился больше

всех благодарю, всех оценил
цитата
17/09/08 в 23:26
 Heavy
glob конечно удобнее по использовния, но вот зараза работает не так как dir, как следствие (по моей статистике) glob не справляется на 10-15% хостов - т.е. выдает пустой результат, хотя dir все отдает как нужно.
цитата
18/09/08 в 00:43
 -=Faraon=-
Быть такого неможет. ща спецально проверю. icon_smile.gif
цитата
18/09/08 в 01:07
 -=Faraon=-
100к запросов 0 потерь/ может гдето не в глоб у тебя дело было! хотя если бсд стоит в некоторых версиях анамальные явление имееют место! icon_smile.gif
цитата
18/09/08 в 09:13
 Heavy
-=Faraon=- писал:
100к запросов 0 потерь/ может гдето не в глоб у тебя дело было!

я же написал что
> не справляется на 10-15% хостов
а не в одних и тех же условиях на одной машине при множественных запросах подряд icon_biggrin.gif на этих хостах в определенных папках - сколько раз не дергай - будет либо пустой результат, либо частичный.
с чем связано хрен поймешь, но место имеет. поэтому для массовых скриптов я glob забыл.


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