Web студия "GrandView"
  Главная   Написать Контакты
   
   
О проекте
Руководство php
 

glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Находит файловые пути, совпадающие с шаблоном

Описание

array glob ( string pattern [, int flags] )

Функция glob() ищет все пути, совпадающие с шаблоном pattern согласно правилам, используемым в функции glob() библиотеки libc, которые похожи на правила, используемые большинством распространённых оболочек. Раскрытие тильды или подстановки параметров не совершаются.

Возвращает массив, который содержит совпадающие файлы/директории или FALSE в случае ошибки.

Допустимые флаги:

  • GLOB_MARK - Добавляет слеш к каждому возвращаемому предмету

  • GLOB_NOSORT - Возвращает файлы в таком виде, в котором они содержатся в директории (без сортировки)

  • GLOB_NOCHECK - Возвращает шаблон поиска, если с его помощью не был найден ни один файл.

  • GLOB_NOESCAPE - Обратные слеши не экранируют метасимволы

  • GLOB_BRACE - Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'

  • GLOB_ONLYDIR - Возвращает только директории, совпадающие с шаблоном

Замечание: В версиях ниже PHP ниже 4.3.3 GLOB_ONLYDIR был не доступен в Windows и других системах, не использующих библиотеку GNU C.

Пример 1. Удобный способ, как при помощи glob() можно заменить opendir() и её друзей.

<?php
foreach (glob("*.txt") as $filename) {
    echo
"$filename size " . filesize($filename) . "\n";
}
?>

Результат будет примерно таким:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

См. также описание функций opendir(), readdir(), closedir() и fnmatch().



is_dir> <fwrite
Last updated: Sat, 27 Jan 2007
 
add a note add a note User Contributed Notes
glob
josh at servebyte dot com
23-Jul-2007 05:55
To:  martinlarsen at bigfoot dot com (14-Jun-2007 01:13)

[quote]
glob() does not work if the path contains brackets "[" and "]".

For example, this will make it fail:

$files = glob("[myfolder]/*.txt");

No error is returned, just an empty array!
[/quote]

Hi there,
if you backslash the brackets, it should work. Try:
$files = glob("\[myfolder\]/*.txt");
Hope this helps.
Sam Yong - hellclanner at live [dot] com
18-Jul-2007 05:31
An alternative to this glob function. Like what edogs [at] dogsempire.com said, opendir should be faster than glob. I have not tested timing for this function but it works perfectly for me on my PHP v5.2.2 server.

<?php

$_foo
='/server/public_html/path/';

function
s_glob($dir){
$files = array();
if(
is_dir($dir)){
    if(
$dh=opendir($dir)){
    while((
$file = readdir($dh)) !== false){
       
$files[]=$dir.$file;
    }}
}
return
$files;
}

print_r(s_glob($_foo));

?>

This function returns an empty array if no files are found in the directory or the path specified is not a directory.
hofmann dot niklas at web dot de
03-Jul-2007 02:11
if your script runs in a directory which contains brackets "[" and "]" glob does not work. example:

script path: c:/dir1/[baddir]/dir2/script.php

Новости
11 июля 2007
Сайт запущен
© 2007 info@grandviewstudio.com

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 324

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 330
Z058440144362 Z348613067571