您的位置:首页 > 编程语言 > PHP开发

PHP文件操作[总结]

2013-10-25 01:37 363 查看
1、前言  

工作中涉及到数据处理,后台需要用到PHP处理数据,之前没有接触过PHP,借此机会了解了一下PHP,PHP很方便,很灵活,编码很舒服,很喜欢用PHP处理后台数据。今天总结一下php文件操作,主要涉及到文件打开、读、写和关闭。

2、PHP文件操作API

文件创建/打开

fopen:(创建并)打开一个文件或 URL 地址。

文件写入

fwrite:向文件写入内容,可安全用于二进制文件 。

file_put_contents:向文件写入内容,等同依次调用 fopen,fwrite 以及 fclose 函数。

文件读取

fread:读取文件,可安全用于二进制文件。

fgets:从文件中读取 一行 数据,并将文件指针指向下一行。

fgetc:从文件中 逐字 读取文件数据,直到文件结束。

file_get_contents:把 整个文件 读入一个字符串。

file:把 整个文件 读入一个数组中,数组中的每个单元都是文件中相应的一行。

检查文件是否存在

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

检查文件是否可读写执行

is_readable:检查文件是否可读。

is_writable:检查文件是否是否可写入。

is_executable:检查文件是否可执行。

文件拷贝

copy:拷贝文件。

文件删除

unlink:删除文件。

取得文件大小、类型、修改时间信息

filesize:取得文件大小。

filetype:取得文件类型。

filemtime:取得文件修改时间。

文件指针函数

fclose:关闭文件指针。

feof:测试文件指针是否到了文件结束的位置。

fseek:在文件指针中定位。

rewind:倒回文件指针的位置。

ftell:返回文件指针读/写的位置

3、测试程序

<?php

const FILE_NAME = "file_info.dat";

class file_info
{
public $file_name;
public $self_count;
public $total_count;
}

//判断文件是否存在
if (file_exists(FILE_NAME))
{
echo "file existed.\n";
unlink(FILE_NAME);
}

$fd = NULL;

$fd = fopen(FILE_NAME, "wb");

if ($fd == NULL || $fd == false)
{
echo "Failed to open file.\n";
return;
}

$obj = new file_info();

if ($obj == NULL)
{
echo "Failed to create object.\n";
return;
}

for($i=0; $i<3; $i++)
{
$temp_1 = $i * 10;
$temp_2 = $i * 100;
/*
$obj->file_name = "file_".$i."\n";
$obj->self_count = $temp_1."\n";
$obj->total_count = $temp_2."\n";
*/
//构造字符串。filename-0-0\n
$row = "file_".$i."-".$temp_1."-".$temp_2."\n";
echo "row: ".$row;
fwrite($fd, $row);
}

if ($fd)
fclose($fd);

$fd = fopen(FILE_NAME, "rb");
if ($fd == false)
{
echo "Failed to open read file.\n";
return;
}

$obj_params =  array();

$i = 0;

while (!feof($fd))
{
$tmp_obj = new file_info();
$tmp_row = fgets($fd);
if ($tmp_row == NULL)
break;
$pos_1 = strpos($tmp_row, '-',0);
$pos_2 = strpos($tmp_row,'-',$pos_1 + 1);
$tmp_obj->file_name = substr($tmp_row, 0, $pos_1);
$tmp_obj->self_count = substr($tmp_row, $pos_1 + 1, $pos_2- $pos_1 - 1);
$tmp_obj->total_count = substr($tmp_row, $pos_2 + 1, strlen($tmp_row) - $pos_2 - 2);
$obj_params[$i] = $tmp_obj;
$i++;
}

for ($k = 0; $k < count($obj_params); $k++)
{
echo $obj_params[$k]->file_name."\n";
echo $obj_params[$k]->self_count."\n";
echo $obj_params[$k]->total_count."\n";
}

if ($fd)
fclose($fd);


程序执行结果如下所示:



参考网址:

http://www.w3school.com.cn/php/php_file.asp

/article/5067231.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: