Skip to content

Files

Latest commit

Mar 10, 2020
411dbdb · Mar 10, 2020

History

History
1122 lines (750 loc) · 19.5 KB

File metadata and controls

1122 lines (750 loc) · 19.5 KB

文件系统

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'));