manual-php
Version:
1,123 lines (750 loc) • 21.1 kB
Markdown
# 文件系统
* [basename - 返回路径中的文件名部分](#basename)
* [chgrp - 改变文件所属的组](#chgrp)
* [chmod - 改变文件模式](#chmod)
* [chown - 改变文件的所有者](#chown)
* [clearstatcache - 清除文件状态缓存](#clearstatcache)
* [copy - 拷贝文件](#copy)
* [dirname - 返回路径中的目录部分](#dirname)
* [disk_free_space - 返回目录中的可用空间](#diskfreespace)
* [disk_total_space - 返回一个目录的磁盘总大小](#disktotalspace)
* [diskfreespace - 返回目录中的可用空间](#diskfreespace)
* [fclose - 关闭一个已打开的文件指针](#fclose)
* [feof - 测试文件指针是否到了文件结束的位置](#feof)
* [fflush - 将缓冲内容输出到文件](#fflush)
* [fgetc - 从文件指针中读取字符](#fgetc)
* [fgetcsv - 从文件指针中读入一行并解析 CSV 字段](#fgetcsv)
* [fgets - 从文件指针中读取一行](#fgets)
* [file_exists - 检查文件或目录是否存在](#fileexists)
* [file_get_contents - 将整个文件读入一个字符串](#filegetcontents)
* [file_put_contents - 将一个字符串写入文件](#fileputcontents)
* [file - 把整个文件读入一个数组中](#file)
* [fileatime - 取得文件的上次访问时间](#fileatime)
* [filectime - 取得文件的 inode 修改时间](#filectime)
* [filegroup - 取得文件的组](#filegroup)
* [fileinode - 取得文件的 inode](#fileinode)
* [filemtime - 取得文件修改时间](#filemtime)
* [fileowner - 取得文件的所有者](#fileowner)
* [fileperms - 取得文件的权限](#fileperms)
* [filesize - 取得文件大小](#filesize)
* [filetype - 取得文件类型](#filetype)
* [flock - 轻便的咨询文件锁定](#flock)
* [fnmatch - 用模式匹配文件名](#fnmatch)
* [fopen - 打开文件或者 URL](#fopen)
* [fpassthru - 输出文件指针处的所有剩余数据](#fpassthru)
* [fputcsv - 将行格式化为 CSV 并写入文件指针](#fputcsv)
* [fputs - 写入文件(可安全用于二进制文件)](#fputs)
* [fread - 读取文件(可安全用于二进制文件)](#fread)
* [fscanf - 从文件中格式化输入](#fscanf)
* [fseek - 在文件指针中定位](#fseek)
* [fstat - 通过已打开的文件指针取得文件信息](#fstat)
* [ftell - 返回文件指针读 / 写的位置](#ftell)
* [ftruncate - 将文件截断到给定的长度](#ftruncate)
* [fwrite - 写入文件(可安全用于二进制文件)](#fwrite)
* [glob - 寻找与模式匹配的文件路径](#glob)
* [is_dir - 判断给定文件名是否是一个目录](#isdir)
* [is_executable - 判断给定文件名是否可执行](#isexecutable)
* [is_file - 判断给定文件名是否为一个正常的文件](#isfile)
* [is_link - 判断给定文件名是否为一个符号连接](#islink)
* [is_readable - 判断给定文件名是否可读](#isreadable)
* [is_uploaded_file - 判断文件是否是通过 HTTP POST 上传的](#isuploadedfile)
* [is_writable - 判断给定的文件名是否可写](#iswritable)
* [is_writeable - 判断给定的文件名是否可写](#iswriteable)
* [lchgrp - 修改符号链接的所有组](#lchgrp)
* [lchown - 修改符号链接的所有者](#lchown)
* [link - 建立一个硬连接](#link)
* [linkinfo - 获取一个连接的信息](#linkinfo)
* [lstat - 给出一个文件或符号连接的信息](#lstat)
* [mkdir - 新建目录](#mkdir)
* [move_uploaded_file - 将上传的文件移动到新位置](#moveuploadedfile)
* [parse_ini_file - 解析一个配置文件](#parseinifile)
* [parse_ini_string - 解析配置字符串](#parseinistring)
* [pathinfo - 返回文件路径的信息](#pathinfo)
* [pclose - 关闭进程文件指针](#pclose)
* [popen - 打开进程文件指针](#popen)
* [readfile - 输出文件](#readfile)
* [readlink - 返回符号连接指向的目标](#readlink)
* [realpath_cache_get - 获取真实目录缓存的详情](#realpathcacheget)
* [realpath_cache_size - 获取真实路径缓冲区的大小](#realpathcachesize)
* [realpath - 返回规范化的绝对路径名](#realpath)
* [rename - 重命名一个文件或目录](#rename)
* [rewind - 倒回文件指针的位置](#rewind)
* [rmdir - 删除目录](#rmdir)
* [set_file_buffer - 设置给定流上的写文件缓冲](#setfilebuffer)
* [stat - 给出文件的信息](#stat)
* [symlink - 建立符号连接](#symlink)
* [tempnam - 建立一个具有唯一文件名的文件](#tempnam)
* [tmpfile - 建立一个临时文件](#tmpfile)
* [touch - 设定文件的访问和修改时间](#touch)
* [umask - 改变当前的 umask](#umask)
* [unlink - 删除文件](#unlink)
## basename
```php
var_dump(basename('foo/bar')); // string(3) "bar"
var_dump(basename('/foo/bar/')); // string(3) "bar"
var_dump(basename('/foo/bar.txt')); // string(7) "bar.txt"
var_dump(basename('/foo/bar/baz.txt', '.txt')); // string(3) "baz"
var_dump(basename('/foo/')); // string(3) "foo"
var_dump(basename('/')); // string(0) ""
var_dump(basename('.')); // string(1) "."
```
## chgrp
```php
var_dump(chgrp(__FILE__, 0));
```
## chmod
```php
var_dump(chmod(__FILE__, 0000));
var_dump(chmod(__FILE__, 0421));
var_dump(chmod(__FILE__, 0655));
var_dump(chmod(__FILE__, 0777));
```
## chown
```php
var_dump(chown(__FILE__, 0));
```
## clearstatcache
```php
clearstatcache();
clearstatcache(true);
clearstatcache(true, __FILE__);
```
## copy
```php
var_dump(copy(__DIR__ . '/foo.txt', __DIR__ . '/bar.txt'));
```
## dirname
```php
var_dump(dirname('foo/bar')); // string(3) "foo"
var_dump(dirname('/foo/bar/')); // string(4) "/foo"
var_dump(dirname('/foo/bar.txt')); // string(4) "/foo"
var_dump(dirname('/foo/bar/baz.txt', 2)); // string(4) "/foo"
var_dump(dirname('/foo/')); // string(1) "\"
var_dump(dirname('/')); // string(1) "\"
var_dump(dirname('.')); // string(1) "."
```
## disk_free_space
```php
var_dump(disk_free_space('/'));
var_dump(disk_free_space('C:'));
```
## disk_total_space
```php
var_dump(disk_total_space('/'));
var_dump(disk_total_space('C:'));
```
## diskfreespace
```php
var_dump(diskfreespace('/'));
var_dump(diskfreespace('C:'));
```
## fclose
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(fclose($handle)); // bool(true)
```
## feof
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(feof($handle)); // bool(false)
while (fgets($handle) !== false) {
}
var_dump(feof($handle)); // bool(true)
```
## fflush
```php
$handle = fopen(__DIR__ . '/example.txt', 'w');
fwrite($handle, 'foo');
var_dump(fflush($handle)); // bool(true)
```
## fgetc
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
while (($character = fgetc($handle)) !== false) {
var_dump($character);
}
// string(1) "0"
// string(1) "0"
// string(1) "0"
```
上例中的 `example.txt` 文件内容:
```
000
```
## fgetcsv
```php
$handle = fopen(__DIR__ . '/example.csv', 'r');
while (($data = fgetcsv($handle)) !== false) {
var_dump($data);
}
// array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" }
// array(2) { [0]=> string(3) "baz" [1]=> string(3) "qux" }
rewind($handle);
while (($data = fgetcsv($handle, 1024, ',')) !== false) {
var_dump($data);
}
// array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" }
// array(2) { [0]=> string(3) "baz" [1]=> string(3) "qux" }
```
上例中的 `example.csv` 文件内容:
```
foo,bar
baz,qux
```
## fgets
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
while (($data = fgets($handle)) !== false) {
var_dump(trim($data));
}
// string(3) "foo"
// string(3) "bar"
rewind($handle);
while (($data = fgets($handle, 1024)) !== false) {
var_dump(trim($data));
}
// string(3) "foo"
// string(3) "bar"
```
上例中的 `example.txt` 文件内容:
```
foo
bar
```
## file_exists
```php
var_dump(file_exists(__DIR__));
var_dump(file_exists(__DIR__ . '/example.txt'));
```
## file_get_contents
```php
var_dump(file_get_contents('https://github.com/'));
var_dump(file_get_contents(__DIR__ . '/example.txt'));
var_dump(file_get_contents(__DIR__ . '/example.txt', true));
var_dump(file_get_contents(__DIR__ . '/example.txt', true, null, 1, 2));
```
## file_put_contents
```php
var_dump(file_put_contents(__DIR__ . '/example.txt', 'Hello World!'));
var_dump(file_put_contents(__DIR__ . '/example.txt', 'Hello World!', FILE_USE_INCLUDE_PATH));
var_dump(file_put_contents(__DIR__ . '/example.txt', 'Hello World!', FILE_APPEND));
var_dump(file_put_contents(__DIR__ . '/example.txt', 'Hello World!', LOCK_EX));
```
## file
```php
var_dump(file(__DIR__ . '/example.txt')); // array(4) { [0]=> string(5) "foo " [1]=> string(5) "bar " [2]=> string(5) "baz " [3]=> string(3) "qux" }
var_dump(file(__DIR__ . '/example.txt', FILE_USE_INCLUDE_PATH)); // array(4) { [0]=> string(5) "foo " [1]=> string(5) "bar " [2]=> string(5) "baz " [3]=> string(3) "qux" }
var_dump(file(__DIR__ . '/example.txt', FILE_IGNORE_NEW_LINES)); // array(4) { [0]=> string(3) "foo" [1]=> string(3) "bar" [2]=> string(3) "baz" [3]=> string(3) "qux" }
var_dump(file(__DIR__ . '/example.txt', FILE_SKIP_EMPTY_LINES)); // array(4) { [0]=> string(5) "foo " [1]=> string(5) "bar " [2]=> string(5) "baz " [3]=> string(3) "qux" }
```
上例中的 `example.txt` 文件内容:
```
foo
bar
baz
qux
```
## fileatime
```php
var_dump(fileatime(__DIR__ . '/example.txt'));
```
## filectime
```php
var_dump(filectime(__DIR__ . '/example.txt'));
```
## filegroup
```php
var_dump(filegroup(__DIR__ . '/example.txt'));
```
## fileinode
```php
var_dump(fileinode(__DIR__ . '/example.txt'));
```
## filemtime
```php
var_dump(filemtime(__DIR__ . '/example.txt'));
```
## fileowner
```php
var_dump(fileowner(__DIR__ . '/example.txt'));
```
## fileperms
```php
var_dump(fileperms(__DIR__ . '/example.txt'));
```
## filesize
```php
var_dump(filesize(__DIR__ . '/example.txt'));
```
## filetype
```php
var_dump(filetype(__DIR__)); // string(3) "dir"
var_dump(filetype(__DIR__ . '/example.txt')); // string(4) "file"
```
## flock
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(flock($handle, LOCK_SH)); // bool(true)
var_dump(flock($handle, LOCK_EX)); // bool(true)
var_dump(flock($handle, LOCK_UN)); // bool(true)
```
## fnmatch
```php
var_dump(fnmatch('*f[a-z]o', 'foo')); // bool(true)
```
## fopen
```php
var_dump(fopen(__DIR__ . '/example.txt', 'r'));
var_dump(fopen(__DIR__ . '/example.txt', 'r', true));
var_dump(fopen(__DIR__ . '/example.txt', 'r+'));
var_dump(fopen(__DIR__ . '/example.txt', 'w'));
var_dump(fopen(__DIR__ . '/example.txt', 'w+'));
var_dump(fopen(__DIR__ . '/example.txt', 'a'));
var_dump(fopen(__DIR__ . '/example.txt', 'a+'));
var_dump(fopen(__DIR__ . '/example.txt', 'x'));
var_dump(fopen(__DIR__ . '/example.txt', 'x+'));
var_dump(fopen(__DIR__ . '/example.txt', 'c'));
var_dump(fopen(__DIR__ . '/example.txt', 'c+'));
```
## fpassthru
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
fpassthru($handle);
// foo
// bar
// baz
// qux
```
上例中的 `example.txt` 文件内容:
```
foo
bar
baz
qux
```
## fputcsv
```php
$data = [['foo', 'bar'], ['baz', 'qux']];
$handle = fopen(__DIR__ . '/example.csv', 'w');
foreach ($data as $value) {
fputcsv($handle, $value);
}
```
上例中的 `example.csv` 文件内容:
```
foo,bar
baz,qux
```
---
```php
$data = [['foo', 'bar'], ['baz', 'qux']];
$handle = fopen(__DIR__ . '/example.csv', 'w');
foreach ($data as $value) {
fputcsv($handle, $value, ';');
}
```
上例中的 `example.csv` 文件内容:
```
foo;bar
baz;qux
```
## fputs
```php
$handle = fopen(__DIR__ . '/example.txt', 'w');
var_dump(fputs($handle, 'foo')); // int(3)
```
上例中的 `example.txt` 文件内容:
```
foo
```
---
```php
$handle = fopen(__DIR__ . '/example.txt', 'w');
var_dump(fputs($handle, 'foo', 1)); // int(1)
```
上例中的 `example.txt` 文件内容:
```
f
```
## fread
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(fread($handle, filesize(__DIR__ . '/example.txt'))); // string(3) "foo"
rewind($handle);
while (!feof($handle)) {
var_dump(fread($handle, 1));
}
// string(1) "f"
// string(1) "o"
// string(1) "o"
// string(0) ""
```
## fscanf
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(fscanf($handle, 'foo=%s bar=%s')); // array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" }
```
上例中的 `example.txt` 文件内容:
```
foo=foo bar=bar
```
## fseek
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(fseek($handle, 1)); // int(0)
var_dump(fgets($handle)); // string(2) "oo"
var_dump(fseek($handle, 0, SEEK_SET)); // int(0)
var_dump(fgets($handle)); // string(3) "foo"
rewind($handle);
var_dump(fseek($handle, 2, SEEK_CUR)); // int(0)
var_dump(fgets($handle)); // string(1) "o"
rewind($handle);
var_dump(fseek($handle, -1, SEEK_END)); // int(0)
var_dump(fgets($handle)); // string(1) "o"
```
上例中的 `example.txt` 文件内容:
```
foo
```
## fstat
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(fstat($handle));
```
## ftell
```php
$handle = fopen(__DIR__ . '/example.txt', 'r');
var_dump(ftell($handle)); // int(0)
var_dump(fgets($handle)); // string(3) "foo"
var_dump(ftell($handle)); // int(3)
```
上例中的 `example.txt` 文件内容:
```
foo
```
## ftruncate
```php
$handle = fopen(__DIR__ . '/example.txt', 'r+');
var_dump(ftruncate($handle, 1)); // bool(true)
```
上例中的 `example.txt` 文件内容:
```
foo
```
## fwrite
```php
$handle = fopen(__DIR__ . '/example.txt', 'w');
var_dump(fwrite($handle, 'foo')); // int(3)
```
上例中的 `example.txt` 文件内容:
```
foo
```
---
```php
$handle = fopen(__DIR__ . '/example.txt', 'w');
var_dump(fwrite($handle, 'foo', 1)); // int(1)
```
上例中的 `example.txt` 文件内容:
```
f
```
## glob
```php
var_dump(glob('*.php'));
var_dump(glob('*.php', GLOB_MARK));
var_dump(glob('*.php', GLOB_NOSORT));
var_dump(glob('*.php', GLOB_NOCHECK));
var_dump(glob('*.php', GLOB_NOESCAPE));
var_dump(glob('*.php', GLOB_BRACE));
var_dump(glob('*.php', GLOB_ONLYDIR));
var_dump(glob('*.php', GLOB_ERR));
```
## is_dir
```php
var_dump(is_dir(__FILE__)); // bool(false)
var_dump(is_dir(__DIR__)); // bool(true)
var_dump(is_dir('.')); // bool(true)
var_dump(is_dir('..')); // bool(true)
```
## is_executable
```php
var_dump(is_executable(__FILE__));
var_dump(is_executable(__DIR__ . '/example.txt'));
```
## is_file
```php
var_dump(is_file(__FILE__)); // bool(true)
var_dump(is_file(__DIR__)); // bool(false)
var_dump(is_file(__DIR__ . '/example.txt')); // bool(true)
var_dump(is_file('.')); // bool(false)
var_dump(is_file('..')); // bool(false)
```
## is_link
```php
var_dump(is_link(__DIR__ . '/link'));
var_dump(is_link(__FILE__));
```
## is_readable
```php
var_dump(is_readable(__DIR__));
var_dump(is_readable(__DIR__ . '/example.txt'));
var_dump(is_readable(__FILE__));
```
## is_uploaded_file
```php
var_dump(is_uploaded_file($_FILES['file']['tmp_name']));
```
## is_writable
```php
var_dump(is_writable(__DIR__ . '/example.txt'));
var_dump(is_writable(__FILE__));
```
## is_writeable
```php
var_dump(is_writeable(__DIR__ . '/example.txt'));
var_dump(is_writeable(__FILE__));
```
## lchgrp
```php
var_dump(lchgrp(__DIR__ . '/link', 0));
```
## lchown
```php
var_dump(lchown(__DIR__ . '/link', 0));
```
## link
```php
var_dump(link(__DIR__ . '/example.txt', __DIR__ . '/link'));
```
## linkinfo
```php
var_dump(linkinfo(__DIR__ . '/link'));
```
## lstat
```php
var_dump(lstat(__FILE__));
var_dump(lstat(__DIR__ . '/link'));
```
## mkdir
```php
var_dump(mkdir(__DIR__ . '/example/'));
var_dump(mkdir(__DIR__ . '/example/', 0777));
var_dump(mkdir(__DIR__ . '/example/foo/bar/', 0777, true));
```
## move_uploaded_file
```php
var_dump(move_uploaded_file($_FILES['file']['tmp_name'], __DIR__ . '/' . $_FILES['file']['name']));
```
## parse_ini_file
```php
var_dump(parse_ini_file(php_ini_loaded_file()));
var_dump(parse_ini_file(php_ini_loaded_file(), true));
```
## parse_ini_string
```php
$string = <<<EOT
[foo]
a = 1
b = 5
[bar]
c = BIRD
d = "http://www.example.com/~username"
[baz]
e[] = "7.0"
e[] = "7.4"
EOT;
var_dump(parse_ini_string($string)); // array(5) { ["a"]=> string(1) "1" ["b"]=> string(1) "5" ["c"]=> string(4) "BIRD" ["d"]=> string(32) "http://www.example.com/~username" ["e"]=> array(2) { [0]=> string(3) "7.0" [1]=> string(3) "7.4" } }
var_dump(parse_ini_string($string, true)); // array(3) { ["foo"]=> array(2) { ["a"]=> string(1) "1" ["b"]=> string(1) "5" } ["bar"]=> array(2) { ["c"]=> string(4) "BIRD" ["d"]=> string(32) "http://www.example.com/~username" } ["baz"]=> array(1) { ["e"]=> array(2) { [0]=> string(3) "7.0" [1]=> string(3) "7.4" } } }
```
## pathinfo
```php
var_dump(pathinfo(__FILE__));
var_dump(pathinfo(__FILE__, PATHINFO_DIRNAME));
var_dump(pathinfo(__FILE__, PATHINFO_BASENAME));
var_dump(pathinfo(__FILE__, PATHINFO_EXTENSION));
var_dump(pathinfo(__FILE__, PATHINFO_FILENAME));
```
## pclose
```php
$handle = popen('dir', 'r');
var_dump(pclose($handle));
```
## popen
```php
var_dump(popen('dir', 'r'));
```
## readfile
```php
readfile(__DIR__ . '/example.txt');
// foo
// bar
// baz
// qux
readfile(__DIR__ . '/example.txt', true);
// foo
// bar
// baz
// qux
```
上例中的 `example.txt` 文件内容:
```
foo
bar
baz
qux
```
## readlink
```php
var_dump(readlink(__DIR__ . '/link'));
```
## realpath_cache_get
```php
var_dump(realpath_cache_get());
```
## realpath_cache_size
```php
var_dump(realpath_cache_size());
```
## realpath
```php
var_dump(realpath('example.txt'));
var_dump(realpath(__DIR__));
var_dump(realpath(__DIR__ . '/example.txt'));
var_dump(realpath(__FILE__));
```
## rename
```php
var_dump(rename(__DIR__ . '/example.txt', __DIR__ . '/test.txt')); // bool(true)
var_dump(rename(__DIR__ . '/example/', __DIR__ . '/test/')); // bool(true)
```
## rewind
```php
$handle = fopen(__DIR__ . '/example.txt', 'r+');
fwrite($handle, 'bar baz qux');
var_dump(rewind($handle)); // bool(true)
fwrite($handle, 'foo');
var_dump(rewind($handle)); // bool(true)
var_dump(fread($handle, filesize(__DIR__ . '/example.txt'))); // string(11) "foo baz qux"
```
## rmdir
```php
var_dump(rmdir(__DIR__ . '/example/'));
```
## set_file_buffer
```php
var_dump(set_file_buffer(fopen(__DIR__ . '/example.txt', 'w'), 0));
```
## stat
```php
var_dump(stat(__FILE__));
```
## symlink
```php
var_dump(symlink(__DIR__ . '/example.txt', __DIR__ . '/link'));
```
## tempnam
```php
var_dump(tempnam(__DIR__, 'tmp'));
```
## tmpfile
```php
var_dump(tmpfile());
```
## touch
```php
var_dump(touch(__DIR__ . '/example.txt'));
var_dump(touch(__DIR__ . '/example.txt', time()));
var_dump(touch(__DIR__ . '/example.txt', time(), time()));
```
## umask
```php
var_dump(umask());
var_dump(umask(0777));
```
## unlink
```php
var_dump(unlink(__DIR__ . '/example.txt'));
```