PHP文件操作的函数有哪些

发布时间:2022-02-11 15:11:40 作者:iii
来源:亿速云 阅读:186
# PHP文件操作的函数有哪些

PHP作为广泛应用于Web开发的脚本语言,提供了丰富的文件操作函数。这些函数允许开发者对文件系统进行各种操作,包括文件的创建、读取、写入、删除、移动等。本文将详细介绍PHP中常用的文件操作函数及其使用方法。

## 目录操作函数

### 1. `mkdir()` - 创建目录
`mkdir()`函数用于创建一个新目录。

```php
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

示例:

if (!file_exists('new_directory')) {
    mkdir('new_directory');
}

2. rmdir() - 删除目录

rmdir()函数用于删除一个空目录。

bool rmdir ( string $dirname )

示例:

if (file_exists('empty_directory')) {
    rmdir('empty_directory');
}

3. opendir() - 打开目录句柄

opendir()函数用于打开一个目录句柄,可用于后续的目录遍历操作。

resource opendir ( string $path )

示例:

$dir = opendir('some_directory');
while (($file = readdir($dir)) !== false) {
    echo "filename: $file\n";
}
closedir($dir);

4. readdir() - 读取目录条目

readdir()函数从目录句柄中读取条目。

string readdir ([ resource $dir_handle ] )

5. closedir() - 关闭目录句柄

closedir()函数关闭由opendir()打开的目录句柄。

void closedir ( resource $dir_handle )

6. scandir() - 列出目录中的文件和目录

scandir()函数返回一个数组,包含指定路径中的文件和目录。

array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )

示例:

$files = scandir('.');
print_r($files);

文件信息函数

1. file_exists() - 检查文件或目录是否存在

file_exists()函数检查文件或目录是否存在。

bool file_exists ( string $filename )

示例:

if (file_exists('test.txt')) {
    echo "文件存在";
}

2. is_file() - 判断是否是文件

is_file()函数判断给定路径是否是一个常规文件。

bool is_file ( string $filename )

3. is_dir() - 判断是否是目录

is_dir()函数判断给定路径是否是一个目录。

bool is_dir ( string $filename )

4. filesize() - 获取文件大小

filesize()函数返回文件的大小,以字节为单位。

int filesize ( string $filename )

示例:

$size = filesize('large_file.zip');
echo "文件大小: $size 字节";

5. filemtime() - 获取文件修改时间

filemtime()函数返回文件内容上次被修改的时间戳。

int filemtime ( string $filename )

6. fileperms() - 获取文件权限

fileperms()函数返回文件的权限。

int fileperms ( string $filename )

7. pathinfo() - 返回文件路径信息

pathinfo()函数返回一个关联数组,包含文件路径的各个部分。

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

示例:

$path_parts = pathinfo('/www/htdocs/index.html');
echo $path_parts['dirname'];   // /www/htdocs
echo $path_parts['basename'];  // index.html
echo $path_parts['extension']; // html
echo $path_parts['filename'];  // index

文件内容操作函数

1. fopen() - 打开文件或URL

fopen()函数打开文件或URL。

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

模式说明: - ‘r’ - 只读 - ‘w’ - 只写(会清空文件) - ‘a’ - 追加 - ‘x’ - 创建并只写 - ‘r+’ - 读写 - ‘w+’ - 读写(会清空文件) - ‘a+’ - 读写(从文件末尾开始) - ‘x+’ - 创建并读写

示例:

$handle = fopen('data.txt', 'r');

2. fclose() - 关闭文件指针

fclose()函数关闭一个已打开的文件指针。

bool fclose ( resource $handle )

3. fread() - 读取文件

fread()函数读取打开的文件。

string fread ( resource $handle , int $length )

示例:

$handle = fopen('data.txt', 'r');
$contents = fread($handle, filesize('data.txt'));
fclose($handle);

4. fwrite() - 写入文件

fwrite()函数写入文件。

int fwrite ( resource $handle , string $string [, int $length ] )

示例:

$handle = fopen('data.txt', 'w');
fwrite($handle, 'Hello World');
fclose($handle);

5. file_get_contents() - 将整个文件读入字符串

file_get_contents()函数将整个文件读入一个字符串。

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )

示例:

$content = file_get_contents('data.txt');

6. file_put_contents() - 将字符串写入文件

file_put_contents()函数将一个字符串写入文件。

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

示例:

file_put_contents('data.txt', 'New content');

7. file() - 将文件读入数组

file()函数将整个文件读入一个数组。

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

示例:

$lines = file('data.txt');
foreach ($lines as $line) {
    echo $line;
}

8. fgets() - 从文件指针中读取一行

fgets()函数从文件指针中读取一行。

string fgets ( resource $handle [, int $length ] )

示例:

$handle = fopen('data.txt', 'r');
while (($line = fgets($handle)) !== false) {
    echo $line;
}
fclose($handle);

9. feof() - 测试文件指针是否到达文件末尾

feof()函数测试文件指针是否到达文件末尾。

bool feof ( resource $handle )

10. ftruncate() - 将文件截断到给定的长度

ftruncate()函数将文件截断到给定的长度。

bool ftruncate ( resource $handle , int $size )

文件系统操作函数

1. copy() - 复制文件

copy()函数复制文件。

bool copy ( string $source , string $dest )

示例:

copy('source.txt', 'destination.txt');

2. rename() - 重命名或移动文件

rename()函数重命名或移动文件。

bool rename ( string $oldname , string $newname )

示例:

rename('oldname.txt', 'newname.txt');

3. unlink() - 删除文件

unlink()函数删除文件。

bool unlink ( string $filename )

示例:

unlink('file_to_delete.txt');

4. realpath() - 返回规范化的绝对路径名

realpath()函数返回规范化的绝对路径名。

string realpath ( string $path )

示例:

echo realpath('../../file.txt');

5. basename() - 返回路径中的文件名部分

basename()函数返回路径中的文件名部分。

string basename ( string $path [, string $suffix ] )

示例:

echo basename('/www/htdocs/index.html'); // 输出 'index.html'

6. dirname() - 返回路径中的目录部分

dirname()函数返回路径中的目录部分。

string dirname ( string $path )

示例:

echo dirname('/www/htdocs/index.html'); // 输出 '/www/htdocs'

文件锁定函数

1. flock() - 便携式文件锁定

flock()函数执行简单的文件锁定。

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

锁定操作: - LOCK_SH - 共享锁(读取) - LOCK_EX - 独占锁(写入) - LOCK_UN - 释放锁 - LOCK_NB - 非阻塞锁

示例:

$fp = fopen('data.txt', 'r+');
if (flock($fp, LOCK_EX)) {  // 获取独占锁
    fwrite($fp, "写入数据");
    flock($fp, LOCK_UN);    // 释放锁
} else {
    echo "无法获取锁!";
}
fclose($fp);

临时文件函数

1. tmpfile() - 创建临时文件

tmpfile()函数创建一个临时文件,文件会在关闭后或脚本结束时自动删除。

resource tmpfile ( void )

示例:

$temp = tmpfile();
fwrite($temp, "写入临时数据");
fclose($temp); // 文件自动删除

2. tempnam() - 创建唯一文件名

tempnam()函数创建一个具有唯一文件名的临时文件。

string tempnam ( string $dir , string $prefix )

示例:

$temp_file = tempnam('/tmp', 'TMP_');
echo $temp_file;

文件上传处理

1. move_uploaded_file() - 移动上传的文件

move_uploaded_file()函数将上传的文件移动到新位置。

bool move_uploaded_file ( string $filename , string $destination )

示例:

if (move_uploaded_file($_FILES['userfile']['tmp_name'], '/uploads/' . $_FILES['userfile']['name'])) {
    echo "文件上传成功";
}

文件压缩函数

1. gzopen() - 打开gzip文件

gzopen()函数打开一个gzip文件。

resource gzopen ( string $filename , string $mode )

2. gzread() - 读取gzip文件

gzread()函数从gzip文件指针中读取数据。

string gzread ( resource $zp , int $length )

3. gzwrite() - 写入gzip文件

gzwrite()函数写入gzip文件。

int gzwrite ( resource $zp , string $string [, int $length ] )

总结

PHP提供了丰富的文件操作函数,涵盖了从基本的文件读写到目录操作、文件系统管理等多个方面。掌握这些函数对于PHP开发者来说至关重要,能够帮助开发者高效地处理各种文件操作需求。在实际开发中,应根据具体需求选择合适的函数,并注意文件操作的权限和安全问题。

通过合理使用这些函数,开发者可以轻松实现文件上传、日志记录、配置文件读取、数据存储等常见功能,为Web应用开发提供强大的文件处理能力。 “`

推荐阅读:
  1. nodejs与php文件操作函数对比
  2. php中常见的文件操作函数

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:tenda路由器如何设置网速最大化

下一篇:Linux中ifup命令有什么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》