Вопрос: glob() или opendir() ?

Тема в разделе "PHP", создана пользователем jID, 2 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Вообщем, научите, други во пэхапэ, чем отличается сабж?

    Заменил у себя код:
    PHP:
    clearstatcache();
    chdir("modules");
    $f="NOTNULL";
    $dir=opendir(".");
    while (
    $f) {
      
    $f=readdir($dir);
      if ((
    $f!=".") && ($f!="..") && ($f!="") && (strstr($f"tag_"))) {
        include(
    "modules/$f");
        eval(
    '$tag_module = new '.$module_class_name.';');
        
    $main_template->replace($module_code$tag_module->pattern());
      }
    }
    closedir($dir);
    chdir("..");
    на такой:
    PHP:
    chdir("modules");
    foreach (
    glob("tag_*.php") as $f) {
      include(
    "modules/$f");
      eval(
    '$tag_module = new '.$module_class_name.';');
      
    $main_template->replace($module_code$tag_module->pattern());
    }
    chdir("..");
    Только одно нашёл различие (кроме того что красивее стало) - glob() сортирует по имени ещё. А как насчёт оптимизации выполнения, и прочая матчасть?
     
  2. wal

    wal Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    89
    Симпатии:
    30
    opendir в последних версиях ПХП может работаь с фтп и хттп...

    еще вроде glob имеет ограничение на количество возвращаемых результатов...
     
  3. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    glob() возвращает пути соответствуеющие указанной маске.
    opendir() возвращает дескриптор указанной директории.

    Достаточно заглянуть в ман и ты сам ответишь на свой вопрос.
     
  4. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Вопрос состоит не в отличие самих функций друг от друга, а в отличии работы двух кусков кода. Первый - с применением opendir(), readdir(), в второй - с glob().

    Интересует эффективность, корректность применения. Возможные ограничения, и т.д.
     
  5. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Изъясняйся понятнее тогда ;)
    Вот я увидел вопрос
    А по коду - в данном случае glob будет быстрее.
    Что касается сортировки - её можно отключить (почитай про флаги функции).
    Ограничения - только локальная файловая система и простые маски.
     
  6. max-oligarh

    max-oligarh Постоялец

    Регистр.:
    4 май 2009
    Сообщения:
    68
    Симпатии:
    2
    glob - т.к. opendir может не везде выполнятсо
     
Статус темы:
Закрыта.