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

Статус
В этой теме нельзя размещать новые ответы.

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() сортирует по имени ещё. А как насчёт оптимизации выполнения, и прочая матчасть?
 
opendir в последних версиях ПХП может работаь с фтп и хттп...

еще вроде glob имеет ограничение на количество возвращаемых результатов...
 
glob() возвращает пути соответствуеющие указанной маске.
opendir() возвращает дескриптор указанной директории.

Достаточно заглянуть в ман и ты сам ответишь на свой вопрос.
 
glob() возвращает пути соответствуеющие указанной маске.
opendir() возвращает дескриптор указанной директории.

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

Вопрос состоит не в отличие самих функций друг от друга, а в отличии работы двух кусков кода. Первый - с применением opendir(), readdir(), в второй - с glob().

Интересует эффективность, корректность применения. Возможные ограничения, и т.д.
 
Вопрос состоит не в отличие самих функций друг от друга, а в отличии работы двух кусков кода. Первый - с применением opendir(), readdir(), в второй - с glob().
Изъясняйся понятнее тогда ;)
Вот я увидел вопрос
Вообщем, научите, други во пэхапэ, чем отличается сабж?
А по коду - в данном случае glob будет быстрее.
Что касается сортировки - её можно отключить (почитай про флаги функции).
Ограничения - только локальная файловая система и простые маски.
 
glob - т.к. opendir может не везде выполнятсо
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху