Home > Backend Development > PHP Tutorial > php glob implements directory file traversal and finding file paths matching patterns_PHP tutorial

php glob implements directory file traversal and finding file paths matching patterns_PHP tutorial

WBOY
Release: 2016-07-20 11:03:14
Original
857 people have browsed it

The PHP function glob is used to find the file path that matches the pattern. It mainly discusses the function and usage of the glob() function. Using the glob function to read directories is N times faster than others, because the glob function is a built-in function and is naturally faster to process. ​

1. Function prototype
array glob ( string pattern [, int flags] )
Note: The glob() function obtains an array and returns an array containing matching files/directories. If an error occurs, return FALSE

Two, version compatible
PHP 4 >= 4.3.0, PHP 5

3. Basic usage and examples of functions

1, match files with .txt suffix in the directory


The code is as follows Copy code
$pattern = sql_case("*.pdf");
var_dump(glob($pattern));
?>


The code is as follows Copy code
$pattern = sql_case("*.pdf"); var_dump(glob($pattern));

?>


Similar to the following
 代码如下 复制代码
foreach (array_merge(glob("*.pdf"),glob("*.PDF")) as $filename) {
     echo "$filename n";
}
?>


The code is as follows Copy code
foreach (array_merge(glob("*.pdf"),glob("*.PDF")) as $filename) {

echo "$filename n";
}

?>
 代码如下 复制代码
function listdirs($dir) {
   static $alldirs = array();
   $dirs = glob($dir . '/*', GLOB_ONLYDIR);
   if (count($dirs) > 0) {
       foreach ($dirs as $d) $alldirs[] = $d;
   }
   foreach ($dirs as $dir) listdirs($dir);
   return $alldirs;
}
?>

3. Get all subdirectories under the directory

The code is as follows Copy code
function listdirs($dir) {
 代码如下 复制代码
$files = glob('{,.}*', GLOB_BRACE);
?>
static $alldirs = array(); $dirs = glob($dir . '/*', GLOB_ONLYDIR); if (count($dirs) > 0) { foreach ($dirs as $d) $alldirs[] = $d; } foreach ($dirs as $dir) listdirs($dir); Return $alldirs; } ?>
4. Match all files
The code is as follows Copy code
$files = glob('{,.}*', GLOB_BRACE); ?>


4. Things to note
1. It cannot be used on remote files. The files being checked must be accessed through the server's file system.
2. Using glob("[myfolder]/*.txt") will not match. The solution is glob("[myfolder]/*.txt"). Pay attention to the application of [] characters.
3, followed by the second parameter flags valid mark description
(1) GLOB_MARK - Add a slash
to each returned item (2) GLOB_NOSORT - Return files in the original order they appear in the directory (not sorted)
(3) GLOB_NOCHECK - Returns the pattern used for searching if no file matches
(4) GLOB_NOESCAPE - backslash does not escape metacharacter
(5) GLOB_BRACE - expand {a,b,c} to match 'a', 'b' or 'c'
(6) GLOB_ONLYDIR - Only directory entries matching the pattern are returned. Note: Before PHP 4.3.3, GLOB_ONLYDIR is not available on Windows or other systems that do not use the GNU C library.
(7) GLOB_ERR - Stop and read error information (such as unreadable directories), ignore all errors by default. Note: GLOB_ERR was added in PHP 5.1.

A typical application of the glob() function is to read data table files, such as obtaining the .sql suffix file in a certain directory. This is very practical in unit testing and can read sql files to rebuild the database. For details, please To participate in the PHP manual, please pay attention to the next issue of the PHP built-in function research series

Other references

The code is as follows Copy code
 代码如下 复制代码

例子 1
print_r(glob("*.txt"));
?>输出类似:

Array
(
[0] => target.txt
[1] => source.txt
[2] => test.txt
[3] => test2.txt
)例子 2
print_r(glob("*.*"));
?>输出类似:

Array
(
[0] => contacts.csv
[1] => default.php
[2] => target.txt
[3] => source.txt
[4] => tem1.tmp
[5] => test.htm
[6] => test.ini
[7] => test.php
[8] => test.txt
[9] => test2.txt
)

Example 1
print_r(glob("*.txt")); ?>The output is similar to:

Array [0] => target.txt [1] => source.txt [2] => test.txt [3] => test2.txt )Example 2 print_r(glob("*.*")); ?>The output is similar to: Array ( [0] => contacts.csv
[1] => default.php [2] => target.txt [3] => source.txt
[4] => tem1.tmp
[5] => test.htm [6] => test.ini [7] => test.php [8] => test.txt [9] => test2.txt )
http://www.bkjia.com/PHPjc/445313.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/445313.htmlTechArticleUses the PHP function glob to find the file path that matches the pattern. It mainly discusses the role and usage of the glob() function. Reading directories using the glob function is N times faster than others, because the glob function is built-in...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template