UNPKG

manual-php

Version:
1,123 lines (750 loc) 21.1 kB
# 文件系统 * [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 <?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 <?php var_dump(chgrp(__FILE__, 0)); ``` ## chmod ```php <?php var_dump(chmod(__FILE__, 0000)); var_dump(chmod(__FILE__, 0421)); var_dump(chmod(__FILE__, 0655)); var_dump(chmod(__FILE__, 0777)); ``` ## chown ```php <?php var_dump(chown(__FILE__, 0)); ``` ## clearstatcache ```php <?php clearstatcache(); clearstatcache(true); clearstatcache(true, __FILE__); ``` ## copy ```php <?php var_dump(copy(__DIR__ . '/foo.txt', __DIR__ . '/bar.txt')); ``` ## dirname ```php <?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 <?php var_dump(disk_free_space('/')); var_dump(disk_free_space('C:')); ``` ## disk_total_space ```php <?php var_dump(disk_total_space('/')); var_dump(disk_total_space('C:')); ``` ## diskfreespace ```php <?php var_dump(diskfreespace('/')); var_dump(diskfreespace('C:')); ``` ## fclose ```php <?php $handle = fopen(__DIR__ . '/example.txt', 'r'); var_dump(fclose($handle)); // bool(true) ``` ## feof ```php <?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 <?php $handle = fopen(__DIR__ . '/example.txt', 'w'); fwrite($handle, 'foo'); var_dump(fflush($handle)); // bool(true) ``` ## fgetc ```php <?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 <?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 <?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 <?php var_dump(file_exists(__DIR__)); var_dump(file_exists(__DIR__ . '/example.txt')); ``` ## file_get_contents ```php <?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 <?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 <?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 <?php var_dump(fileatime(__DIR__ . '/example.txt')); ``` ## filectime ```php <?php var_dump(filectime(__DIR__ . '/example.txt')); ``` ## filegroup ```php <?php var_dump(filegroup(__DIR__ . '/example.txt')); ``` ## fileinode ```php <?php var_dump(fileinode(__DIR__ . '/example.txt')); ``` ## filemtime ```php <?php var_dump(filemtime(__DIR__ . '/example.txt')); ``` ## fileowner ```php <?php var_dump(fileowner(__DIR__ . '/example.txt')); ``` ## fileperms ```php <?php var_dump(fileperms(__DIR__ . '/example.txt')); ``` ## filesize ```php <?php var_dump(filesize(__DIR__ . '/example.txt')); ``` ## filetype ```php <?php var_dump(filetype(__DIR__)); // string(3) "dir" var_dump(filetype(__DIR__ . '/example.txt')); // string(4) "file" ``` ## flock ```php <?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 <?php var_dump(fnmatch('*f[a-z]o', 'foo')); // bool(true) ``` ## fopen ```php <?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 <?php $handle = fopen(__DIR__ . '/example.txt', 'r'); fpassthru($handle); // foo // bar // baz // qux ``` 上例中的 `example.txt` 文件内容: ``` foo bar baz qux ``` ## fputcsv ```php <?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 <?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 <?php $handle = fopen(__DIR__ . '/example.txt', 'w'); var_dump(fputs($handle, 'foo')); // int(3) ``` 上例中的 `example.txt` 文件内容: ``` foo ``` --- ```php <?php $handle = fopen(__DIR__ . '/example.txt', 'w'); var_dump(fputs($handle, 'foo', 1)); // int(1) ``` 上例中的 `example.txt` 文件内容: ``` f ``` ## fread ```php <?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 <?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 <?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 <?php $handle = fopen(__DIR__ . '/example.txt', 'r'); var_dump(fstat($handle)); ``` ## ftell ```php <?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 <?php $handle = fopen(__DIR__ . '/example.txt', 'r+'); var_dump(ftruncate($handle, 1)); // bool(true) ``` 上例中的 `example.txt` 文件内容: ``` foo ``` ## fwrite ```php <?php $handle = fopen(__DIR__ . '/example.txt', 'w'); var_dump(fwrite($handle, 'foo')); // int(3) ``` 上例中的 `example.txt` 文件内容: ``` foo ``` --- ```php <?php $handle = fopen(__DIR__ . '/example.txt', 'w'); var_dump(fwrite($handle, 'foo', 1)); // int(1) ``` 上例中的 `example.txt` 文件内容: ``` f ``` ## glob ```php <?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 <?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 <?php var_dump(is_executable(__FILE__)); var_dump(is_executable(__DIR__ . '/example.txt')); ``` ## is_file ```php <?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 <?php var_dump(is_link(__DIR__ . '/link')); var_dump(is_link(__FILE__)); ``` ## is_readable ```php <?php var_dump(is_readable(__DIR__)); var_dump(is_readable(__DIR__ . '/example.txt')); var_dump(is_readable(__FILE__)); ``` ## is_uploaded_file ```php <?php var_dump(is_uploaded_file($_FILES['file']['tmp_name'])); ``` ## is_writable ```php <?php var_dump(is_writable(__DIR__ . '/example.txt')); var_dump(is_writable(__FILE__)); ``` ## is_writeable ```php <?php var_dump(is_writeable(__DIR__ . '/example.txt')); var_dump(is_writeable(__FILE__)); ``` ## lchgrp ```php <?php var_dump(lchgrp(__DIR__ . '/link', 0)); ``` ## lchown ```php <?php var_dump(lchown(__DIR__ . '/link', 0)); ``` ## link ```php <?php var_dump(link(__DIR__ . '/example.txt', __DIR__ . '/link')); ``` ## linkinfo ```php <?php var_dump(linkinfo(__DIR__ . '/link')); ``` ## lstat ```php <?php var_dump(lstat(__FILE__)); var_dump(lstat(__DIR__ . '/link')); ``` ## mkdir ```php <?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 <?php var_dump(move_uploaded_file($_FILES['file']['tmp_name'], __DIR__ . '/' . $_FILES['file']['name'])); ``` ## parse_ini_file ```php <?php var_dump(parse_ini_file(php_ini_loaded_file())); var_dump(parse_ini_file(php_ini_loaded_file(), true)); ``` ## parse_ini_string ```php <?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 <?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 <?php $handle = popen('dir', 'r'); var_dump(pclose($handle)); ``` ## popen ```php <?php var_dump(popen('dir', 'r')); ``` ## readfile ```php <?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 <?php var_dump(readlink(__DIR__ . '/link')); ``` ## realpath_cache_get ```php <?php var_dump(realpath_cache_get()); ``` ## realpath_cache_size ```php <?php var_dump(realpath_cache_size()); ``` ## realpath ```php <?php var_dump(realpath('example.txt')); var_dump(realpath(__DIR__)); var_dump(realpath(__DIR__ . '/example.txt')); var_dump(realpath(__FILE__)); ``` ## rename ```php <?php var_dump(rename(__DIR__ . '/example.txt', __DIR__ . '/test.txt')); // bool(true) var_dump(rename(__DIR__ . '/example/', __DIR__ . '/test/')); // bool(true) ``` ## rewind ```php <?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 <?php var_dump(rmdir(__DIR__ . '/example/')); ``` ## set_file_buffer ```php <?php var_dump(set_file_buffer(fopen(__DIR__ . '/example.txt', 'w'), 0)); ``` ## stat ```php <?php var_dump(stat(__FILE__)); ``` ## symlink ```php <?php var_dump(symlink(__DIR__ . '/example.txt', __DIR__ . '/link')); ``` ## tempnam ```php <?php var_dump(tempnam(__DIR__, 'tmp')); ``` ## tmpfile ```php <?php var_dump(tmpfile()); ``` ## touch ```php <?php var_dump(touch(__DIR__ . '/example.txt')); var_dump(touch(__DIR__ . '/example.txt', time())); var_dump(touch(__DIR__ . '/example.txt', time(), time())); ``` ## umask ```php <?php var_dump(umask()); var_dump(umask(0777)); ``` ## unlink ```php <?php var_dump(unlink(__DIR__ . '/example.txt')); ```