国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php文件目錄操作實(shí)現(xiàn)程序(1/2)

php中文網(wǎng)
發(fā)布: 2016-06-13 10:14:37
原創(chuàng)
1331人瀏覽過(guò)

在php中對(duì)文件或目錄操作都有特定的函數(shù),如fopen,rdir,filesize,opendir,readdir,fcolse,fread等都是文件和目錄操作函數(shù)。

二、目錄操作

首先介紹的是一個(gè)從目錄讀取的函數(shù),opendir(),readdir(),closedir(),使用的時(shí)候是先打開(kāi)文件句柄,而后迭代列出:

?代碼如下 復(fù)制代碼

$base_dir = "filelist/";
$fso = opendir($base_dir);
echo $base_dir."


" ;
while($flist=readdir($fso)){
echo $flist."
" ;
}
closedir($fso)
?>

這是講返回文件目錄下面的文件已經(jīng)目錄的程序(0文件將返回false).

有時(shí)候需要知道目錄的信息,可以使用dirname($path)和basename($path),分別返回路徑的目錄部分和文件名名稱部分,可用disk_free_space($path)返回看空間空余空間.

創(chuàng)建命令:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?代碼如下 復(fù)制代碼

mkdir($path,0777)

,0777是權(quán)限碼,在非window下可用umask()函數(shù)設(shè)置.

?代碼如下 復(fù)制代碼

rmdir($path)

將刪除路徑在$path的文件.

dir -- directory 類也是操作文件目錄的重要類,有3個(gè)方法,read,rewind,close,這是一個(gè)仿面向?qū)ο蟮念?它先使用的是打開(kāi)文件句柄,然后用指針的方式讀取的.,這里看php手冊(cè):

?代碼如下 復(fù)制代碼

$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "n";
echo "Path: " . $d->path . "n";
while (false !== ($entry = $d->read())) {
echo $entry."n";
}
$d->close();
?>

輸出:

Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli

文件的屬性也非常重要,文件屬性包括創(chuàng)建時(shí)間,最后修改時(shí)間,所有者,文件組,類型,大小等.

下面我們重點(diǎn)談文件操作.


三、文件操作

● 讀文件

首先是一個(gè)文件看能不能讀取(權(quán)限問(wèn)題),或者存在不,我們可以用is_readable函數(shù)獲取信息.:

?代碼如下 復(fù)制代碼

$file = 'dirlist.php';
if (is_readable($file) == false) {
die('文件不存在或者無(wú)法讀取');
} else {
echo '存在';
}
?>

判斷文件存在的函數(shù)還有file_exists(下面演示),但是這個(gè)顯然無(wú)is_readable全面.,當(dāng)一個(gè)文件存在的話可以用

?代碼如下 復(fù)制代碼

$file = "filelist.php";
if (file_exists($file) == false) {
die('文件不存在');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>

但是file_get_contents函數(shù)在較低版本上不支持,可以先創(chuàng)建文件的一個(gè)句柄,然后用指針讀取全部:

?代碼如下 復(fù)制代碼

$fso = fopen($cacheFile, 'r');
$data = fread($fso, filesize($cacheFile));
fclose($fso);

還有一種方式,可以讀取二進(jìn)制的文件:

?代碼如下 復(fù)制代碼

$data = implode('', file($file));

● 寫文件

和讀取文件的方式一樣,先看看是不是能寫:

?代碼如下 復(fù)制代碼

$file = 'dirlist.php';
if (is_writable($file) == false) {
die("我是雞毛,我不能");
}
?>

能寫了的話可以使用file_put_contents函數(shù)寫入:

?代碼如下 復(fù)制代碼

$file = 'dirlist.php';
if (is_writable($file) == false) {
die('我是雞毛,我不能');
}
$data = '我是可鄙,我想要';
file_put_contents ($file, $data);
?>

file_put_contents函數(shù)在php5中新引進(jìn)的函數(shù)(不知道存在的話用function_exists函數(shù)先判斷一下)低版本的php無(wú)法使用,可以使用如下方式:

?代碼如下 復(fù)制代碼

$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f);

替換之.

寫文件的時(shí)候有時(shí)候需要鎖定,然后寫:

?代碼如下 復(fù)制代碼

function cache_page($pageurl,$pagedata){
if(!$fso=fopen($pageurl,'w')){
$this->warns('無(wú)法打開(kāi)緩存文件.');//trigger_error
return false;
}
if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型鎖定
$this->warns('無(wú)法鎖定緩存文件.');//trigger_error
return false;
}
if(!fwrite($fso,$pagedata)){//寫入字節(jié)流,serialize寫入其他格式
$this->warns('無(wú)法寫入緩存文件.');//trigger_error
return false;
}
flock($fso,LOCK_UN);//釋放鎖定
fclose($fso);
return true;
}

1 2

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來(lái)源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開(kāi)源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)