打开 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 ] )

class="php" name="code">$path = "/home/cate/index/index2.php";

$file = basename($path);

echo $file.'
'; //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。默认是返回全部的单元。如果不是要求取得所有单元,则本函数返回字符串。

$path_parts = pathinfo("/home/cate/index.action.html");

// /home/cate 文件目录

echo $path_parts["dirname"] . "
";

// index.action.html 文件名

echo $path_parts["basename"] . "
";

// html 扩展名

echo $path_parts["extension"] . "
";

//直接获取扩展名

echo pathinfo("/home/cate/index.action.html", PATHINFO_EXTENSION);

?

4 fopen — 打开文件或者 URL

$handle = fopen("doc.txt", "r");

var_dump($handle);

D:\wamp\www\test\jsontest.php:3:resource(3, stream)

$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() 页面里。

// 打开文件

$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 级的错误。

$filename = 'doc.txt';

echo $filename.':'.filesize($filename).'bytes';

doc.txt:46bytes

?>

?

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

float disk_free_space ( string $directory )

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

echo disk_free_space("C:").'
';

echo disk_free_space("D:").'
';

echo disk_free_space("/");

?>

71001600000

186459181056

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

?

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

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

filemtime — 取得文件修改时间

?

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

$myfile = 'doc.txt';

$lines = file($myfile);

for($i=0,$len = count($lines);$i

echo mb_convert_encoding($lines[$i], "UTF-8", "GBK").'
';

}

我是一个新手程序员,需要慢慢努力才能有所收获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 ] )

$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。

$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() - 将整个文件读入一个字符串

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

}

?

?

?

?

?

?

?

?

?

?

?

.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值