但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部:
$fso = fopen($cacheFile, ''r'');
$data = fread($fso, filesize($cacheFile));
fclose($fso); |
还有一种方式,可以读取二进制的文件:
$data = implode('''', file($file)); |
B、写文件
和读取文件的方式一样,先看看是不是能写:
<?php
$file = ''dirlist.php'';
if (is_writable($file) == false) {
die("我是鸡毛,我不能");
}
?>
|
能写了的话可以使用file_put_contents函数写入:
<?php
$file = ''dirlist.php'';
if (is_writable($file) == false) {
die(''我是鸡毛,我不能'');
}
$data = ''我是可鄙,我想要'';
file_put_contents ($file, $data);
?> |
file_put_contents函数在php5中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用,可以使用如下方式:
$f = fopen($file, ''w'');
fwrite($f, $data);
fclose($f); |
替换之.
写文件的时候有时候需要锁定,然后写:
function cache_page($pageurl,$pagedata){
if(!$fso=fopen($pageurl,''w'')){
$this->warns(''无法打开缓存文件.'');//trigger_error
return false;
}
if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定
$this->warns(''无法锁定缓存文件.'');//trigger_error
return false;
}
if(!fwrite($fso,$pagedata)){//写入字节流,serialize写入其他格式
$this->warns(''无法写入缓存文件.'');//trigger_error
return false;
}
flock($fso,LOCK_UN);//释放锁定
fclose($fso);
return true;
} |
C、复制,删除文件
php删除文件非常easy,用unlink函数简单操作:
<?php
$file = ''dirlist.php'';
$result = @unlink ($file);
if ($result == false) {
echo ''蚊子赶走了'';
} else {
echo ''无法赶走'';
}
?> |
即可.
复制文件也很容易:
<?php
$file = ''yang.txt'';
$newfile = ''ji.txt''; # 这个文件父文件夹必须能写
if (file_exists($file) == false) {
die (''小样没上线,无法复制'');
}
$result = copy($file, $newfile);
if ($result == false) {
echo ''复制记忆ok'';
}
?> |
可以使用rename()函数 |