`

PHP的文件操作常用函数

    博客分类:
  • PHP
PHP 
阅读更多

【前言】

    本文总结下PHP常见文件操作及函数

 

【列表】

1 获得文件名

2 获得目录名

3 得到路径关联数组

4 fopen — 打开文件或者 URL

5  fstat — 通过已打开的文件指针取得文件信息

6 filesize — 取得文件大小

7.disk_free_space — 返回目录中的可用空间

8 fileatime — 取得文件的上次访问时间

9 file — 把整个文件读入一个数组中

10 fgets — 从文件指针中读取一行

11 fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记

12 file_put_contents — 将一个字符串写入文件

 

 

【主体】

1 获得文件名:

basename — 返回路径中的文件名部分

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。

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

$path = "/home/cate/index/index2.php";
$file = basename($path);
echo $file.'<br>'; //index2.php
$file2 = basename($path,'.php');
echo $file2;    //index2
$file3 = basename($path,'2.php');
echo $file2;    //index

 2 获得目录名

dirname — 返回路径中的目录部分

string dirname ( string $path )

 

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

echo dirname(__FILE__);

__FILE__指向当前文件所在的路径 等同于 getcwd();

 

3 得到路径关联数组

pathinfo — 返回文件路径的信息

pathinfo() 返回一个关联数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。

可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。如果不是要求取得所有单元,则本函数返回字符串。

<?php
$path_parts = pathinfo("/home/cate/index.action.html");
// /home/cate   文件目录
echo $path_parts["dirname"] . "<br/>";          
//  index.action.html  文件名
echo $path_parts["basename"] . "<br/>";         
//  html        扩展名
echo $path_parts["extension"] . "<br/>";
//直接获取扩展名       
echo pathinfo("/home/cate/index.action.html", PATHINFO_EXTENSION);  

 

4 fopen — 打开文件或者 URL

<?php
    $handle = fopen("doc.txt", "r");
    var_dump($handle);
D:\wamp\www\test\jsontest.php:3:resource(3, stream)
<?php
    $file = fopen('newtxt.txt','w')or die('无法打开文件');//不存在则自动创建
    $data = 'you are a coder!';
    fwrite($file,$data);
    $data = 'you are a MAN!';
    fwrite($file,$data);
    fclose($file);

 

 

5  fstat — 通过已打开的文件指针取得文件信息

array fstat ( resource $handle )

获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

返回一个数组具有该文件的统计信息,该数组的格式详细说明于手册中 stat() 页面里。

<?php

// 打开文件
$fp = fopen("doc.txt", "r");

// 取得统计信息
$fstat = fstat($fp);

// 关闭文件
fclose($fp);
// 只显示关联数组部分
//print_r(array_slice($fstat, 13)); 

print_r($fstat); //获取一个文件信息数组包括索引和关联数组

array_slice — 从数组中取出一段 返回数组

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )

array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。

如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。

如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。

 

6 filesize — 取得文件大小

int filesize ( string $filename )

返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

<?php
$filename = 'doc.txt';
echo $filename.':'.filesize($filename).'bytes';
doc.txt:46bytes
?>

 

7.disk_free_space — 返回目录中的可用空间

float disk_free_space ( string $directory )

给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。

<?php
echo disk_free_space("C:").'<br/>';
echo disk_free_space("D:").'<br/>';
echo disk_free_space("/");
?>

71001600000

186459181056

disk_total_space — 返回一个目录的磁盘总大小

 

8 fileatime — 取得文件的上次访问时间

filectime — 取得文件的 inode 修改时间

filemtime — 取得文件修改时间

 

9 file — 把整个文件读入一个数组中

<?php
$myfile = 'doc.txt';
$lines = file($myfile);
for($i=0,$len = count($lines);$i<$len;$i++){
    echo mb_convert_encoding($lines[$i], "UTF-8", "GBK").'<br/>';
}
我是一个新手程序员,需要慢慢努力才能有所收获1! 
我是一个新手程序员,需要慢慢努力才能有所收获2! 
我是一个新手程序员,需要慢慢努力才能有所收获3! 
我是一个新手程序员,需要慢慢努力才能有所收获4! 
我是一个新手程序员,需要慢慢努力才能有所收获5! 
我是一个新手程序员,需要慢慢努力才能有所收获6!
mb_convert_encoding($lines[$i], "UTF-8", "GBK")
?>

将每一行原来的WINDOWS下GBK格式的数据$lines[$i]转换为UTF-8格式

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )

<?php
$myfile = 'doc.txt';
$encoding = mb_detect_encoding($myfile, array('GBK','UTF-16','UCS-2','
UTF-8','BIG5','ASCII'));
echo $encoding;
?>

CP936 即GBK

mb_detect_encoding — 侦测字符集  第一个为文件或者路径 第二个为可能的字符集

 

10 fgets — 从文件指针中读取一行

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

从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

出错时返回 FALSE。

<?php
$handle = fopen('doc.txt','r');
if ($handle){
    while (!feof($handle)){
        $data[] = fgets($handle,1024);
    }
    print_r($data);
    fclose($handle);
}

 

11 fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记

和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

   可以用可选的第三个参数指定哪些标记不被去掉

file_exists — 检查文件或目录是否存在

bool file_exists ( string $filename )

如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。

 

 12 file_put_contents — 将一个字符串写入文件

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

和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

filename 要写入数据的文件名

data  要写入的数据。类型可以是 string,array(但不能为多维数组),或者是 stream 资源

flags  可选,规定如何打开/写入文件。可能的值:

FILE_USE_INCLUDE_PATH:检查 filename 副本的内置路径

FILE_APPEND:在文件末尾以追加的方式写入数据

LOCK_EX:对文件上锁

context  可选,Context是一组选项,可以通过它修改文本属性

fopen() - 打开文件或者 URL

fwrite() - 写入文件(可安全用于二进制文件)

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

<?php
echo file_put_contents('doc.txt','你是一个程序员7',FILE_APPEND);
?>

返回字节数22

 

如果文件不存在,则创建文件,相当于fopen()函数行为。

如果文件存在,默认将清空文件内的内容,可设置 flags 参数值为 FILE_APPEND 以避免。

file_put_contents 函数可安全用于二进制对象。

 

如果对于确定已经存在的文件,最好进行一个判断

if (file_exists('test.txt')) {

    file_put_contents('test.txt','contents' );

}

 

 

 

 

 

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    PHP 文件操作函数

    通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...

    PHP常用函数PDF文件

    这份“PHP常用函数PDF文件”涵盖了大量PHP中的关键函数,是学习和记忆PHP函数的重要资源。以下是一些核心知识点的概述: 1. **字符串处理函数**: - `strlen()`:计算字符串长度。 - `str_replace()`:在字符串中...

    PHP常用函数汇总

    下面将分别介绍标题和描述中提及的七大类PHP常用函数: A/数组函数: PHP提供了丰富的数组处理函数,如`array()`用于创建数组,`count()`计算数组元素个数,`array_push()`在数组末尾添加元素,`array_pop()`移除并...

    php、js常用函数总结

    php、js、jquery、mysql、正则、文件处理函数、图像处理函数、时间函数,常用函数总结

    PHP常用函数大全

    ### PHP常用函数详解 #### usleep() `usleep()` 函数用于让程序暂停执行指定的微秒数。这对于控制脚本的执行速度非常有用,尤其是在处理需要精确定时的任务时。 **语法:** `usleep ( int $microseconds ) : bool` ...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    PHP文件下载类 PHP无限分类[左右值]算法 PHP显示日期、周几、农历初几、什么节日函数 PHP格式化数据,防止注入函数 PHP模拟登陆 PHP生成唯一标识符函数 PHP生成曲线图函数 PHP生成条形码 PHP统计字符串里...

    php中文手册以及常用函数.zip_php手册_常用函数

    《PHP中文手册与常用函数详解》 PHP,全称“Hypertext Preprocessor”,是一种广泛应用于Web开发的开源脚本语言。它以其易学易用、功能强大的特点,深受开发者喜爱。本资料集包含了PHP中文手册及一系列常用函数的...

    PHP常用函数

    PHP提供了丰富的内置函数库,涵盖了数组处理、数学计算、字符串操作、目录管理、时间日期处理、文件系统交互以及PHP自身的信息与控制等功能。以下是这些类别中的关键函数的详细说明: **数组函数:** 1. `array_...

    PHP常用函数操作实例

    本篇文章将深入探讨PHP中的一些常用函数,包括时间函数、数组处理函数以及文件操作函数,并通过实际操作示例帮助初学者更好地理解和应用这些功能。 一、时间函数 PHP提供了丰富的日期和时间处理函数,比如`date()`...

    php常用函数合集,有七个pdf文档

    这个"php常用函数合集"包含七个PDF文档,旨在为开发者提供PHP的基础及常用的函数参考。以下将对这些常见函数进行详尽的介绍。 1. **字符串处理函数** - `strlen()`: 计算字符串的长度。 - `str_replace()`: 在...

    基于php常用函数总结(数组,字符串,时间,文件操作)

    本文将详细介绍PHP中数组操作、字符串处理、时间日期管理以及文件操作的常用函数。 数组操作是PHP编程中不可或缺的一部分,涉及到数据的集合和处理。其中,implode()函数能够将数组中的元素通过指定的分隔符连接成...

    PHP上百个常用功能函数.zip

    4. **文件操作函数**:`file_get_contents()`读取整个文件到字符串,`file_put_contents()`则将数据写入文件,`fopen()`和`fclose()`用于文件的打开和关闭,`feof()`检查是否到达文件末尾。 5. **文件上传处理**:`...

    php开发常用函数库

    总结一下,PHP开发中的常用函数库涵盖了邮件发送(如PHPMailer)、Excel操作(如PHPExcel)以及文件打包压缩下载(如ZipArchive)。这些库不仅提供了丰富的功能,还简化了开发流程,提高了代码的可维护性。在实际...

    PHP文件处理及文件上传函数

    以下是一些常用的关键函数: 1. `fopen()`: 打开一个文件或URL,返回一个文件指针,例如:`$file = fopen('filename.txt', 'r');` 2. `fclose()`: 关闭由`fopen()`打开的文件,例如:`fclose($file);` 3. `fread()`...

    php 常用函数 pdf版

    12. `include` 和 `require`:这两个函数用于引入其他PHP文件,`require`在找不到文件时会抛出致命错误,而`include`只会发出警告。 13. `error_reporting()` 和 `ini_set()`:`error_reporting()`用于设置错误报告...

    邓炜PHP基本语法(七)文件操作函数

    PHP基本语法(七)文件操作函数 掌握基本文件操作函数; 学会使用常用的文件函数; 掌握如何上传文件; PHP操纵文件一般分为五步进行 1、打开一个文件以供读写 2、从文件中读取数据 3、关闭这个文件 4、执行操作 5...

    自己函数整理 php常用

    以下是一些PHP常用函数的详细说明: 1. **验证函数系列**: - `is_object()`: 检查变量是否为对象类型。 - `is_array()`: 检查变量是否为数组。 - `defined()`: 检查一个常量是否已定义。 - `isset()`: 检查...

    php常用函数总结表

    php常用函数总结表,涵盖数组、字符串处理、数学函数、文件系统函数、正则表达式等一系列的归纳总结,内容形式为excel,可以自行打印出来,作为闲时记忆的一种方式方法。

    php常用函数php

    本篇文章将深入探讨PHP中的常用函数,这些函数在日常开发中非常常见且实用。 1. **字符串处理函数**: - `strlen()`: 计算字符串长度。 - `strpos()`: 查找子字符串在字符串中的位置。 - `str_replace()`: 在...

Global site tag (gtag.js) - Google Analytics