PHP中的文件操作常用方法

php中的文件操作常用方法:

<?php

/**
 * 以追加方式写入文件
 * 写之前先判断能否打开,锁定后再写入,写完后释放锁,关闭文件。
 * @param unknown_type $file
 * @param unknown_type $data
 */
function write_file($file, $data) {
	if (! $fp = fopen ( $file, 'a' )) {
		echo ('无法打开缓存文件.');
		return false;
	}
	//LOCK_NB,排它型锁定
	if (! flock ( $fp, LOCK_EX )) {
		echo ('无法锁定缓存文件.');
		return false;
	}
	//写入字节流,serialize写入其他格式
	if (! fwrite ( $fp, $data )) {
		echo ('无法写入缓存文件.');
		return false;
	}
	//释放锁定,关闭文件
	flock ( $fp, LOCK_UN );
	fclose ( $fp );
	return true;
}

/**
 * 创建目录
 * 类似"xx/xx/xxx.txt",但是不创建文件。
 * @param "/xxx/xxx.txt" $path
 * @param 0777 $mode
 */
function create_dirs($file_path, $mode = 0777) //mode 077
{
	$flag = true;
	$dirs = explode ( '/', $file_path );
	$count = count ( $dirs );
	$path = "";
	for($i = 0; $i < $count; $i ++) {
		$path .= $dirs [$i];
		//如果$dirs [$i]不为空并且目录不存在。防止情况"/a/b",则第一层为"".		
		if (($dirs [$i]) && (! file_exists ( $path ))) {
			//判断路径最后一层是否是文件(如果包含.就是文件,则不创建最后一层文件)
			if (($i == $count - 1) && (strrpos ( $dirs [$i], "." ) != false)) {
				continue;
			} else {
				//mkdir函数创建目录
				$flag = mkdir ( $path, $mode );
			}
		}
		$path .= "/";
	}
	return $flag;
}

?>

 

 


文件使用方式   意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”     读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:

  1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

  r(read): 读
  w(write): 写
  a(append): 追加
  t(text): 文本文件,可省略不写
  b(banary): 二进制文件
  +: 读和写

  2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

  3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

  4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

  5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。

如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针
(NULL)。由此可判断文件打开是否成功。

 

来自:http://www.xxlinux.com/linux/article/development/soft/20070601/8652.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值