PHP目錄與文件操作技巧總結(jié)(創(chuàng)建,刪除,遍歷,讀寫,修改等)
本文實(shí)例總結(jié)了PHP目錄與文件操作技巧。分享給大家供大家參考,具體如下:
Demo1.php
<?php //將一個路徑賦給一個變量 //它目前來說,只是一個字符串,字符串表示的是一個目錄的路徑 //文件名包含,文件的名稱 + 文件的擴(kuò)展名(就是.后面的文件類型) //文件的擴(kuò)展名說白了就是文件后綴 $path = 'C:\AppServ\www\Basic6\Demo1.php'; // echo basename($path); // echo '<br/>'; // //dirname -- 返回路徑中的目錄部分 // //dirname 返回路徑的目錄部分 // echo dirname($path); // echo '<br/>'; // //獲取路徑文件的信息 // print_r(pathinfo($path)); $array_path = pathinfo($path); echo $array_path['dirname']; //這個打印出的目錄 C:\AppServ\www\Basic6 echo $array_path['basename']; //這個打印出的是文件名 Demo1.php ?>
Demo2.php
<?php //這個叫做絕對路徑 //$path = 'C:\AppServ\www\Basic6\Demo2.php'; //這個叫做相對路徑 // $path = 'Demo2.php'; // echo $path; $path = '../index.php'; //這也是相對路徑 echo realpath($path); ?>
Demo3.php
<?php $path = 'C:\AppServ\www\Basic6\Demo3.php'; echo round(filesize($path)/1024,2).'KB'; ?>
Demo4.php
<?php
//可用空間的查看 disk_free_space
echo round(disk_free_space('C:')/1024/1024/1024,2).'GB';
echo '<br/>';
//總空間
echo round(disk_total_space('C:')/1024/1024/1024,2).'GB';
?>
Demo5.php
<?php
$path = 'C:\AppServ\www\Basic1\Demo1.php';
//我們要做的是將這個時間戳翻譯成正常的日期
//echo fileatime($path);
//調(diào)整一下時區(qū)
date_default_timezone_set('Asia/Shanghai');
//格式化一個本地日期
//echo date('Y-m-d H:i:s');
//fileatime -- 取得文件的上次訪問時間
echo '最后訪問:'.date('Y-m-d H:i:s',fileatime($path)).'<br/>';
//filectime -- 取得文件的 inode 修改時間,文件所有者,權(quán)限
echo '權(quán)限所有者等:'.date('Y-m-d H:i:s',filectime($path)).'<br/>';
//filemtime -- 取得文件修改時間,文件里面的內(nèi)容修改后的時間
echo '內(nèi)容修改時間:'.date('Y-m-d H:i:s',filemtime($path));
?>
Demo6.php
<?php
//打開一個文件
//第一參數(shù)表明哪個文件 ,第二參數(shù)表明模式, w 只寫
//w 如果,file.txt 已經(jīng)有了,并且有數(shù)據(jù)了。那么這個文件,重新創(chuàng)建
//如果沒有 file.txt 這個文件,那么我就自行創(chuàng)建
// //fopen -- 打開文件或者 URL
// //fopen 返回的是資源類型 resource,我們一般稱它為句柄,或者叫資源句柄
// $fp = fopen('file.txt','w');
//
// //想文件里寫入一些數(shù)據(jù)
// //fwrite($fp,"閱誰問君誦,水落清香浮。");
//
// $outString = "閱誰問君誦,水落清香浮。";
// echo strlen($outString);//獲取長度
// fwrite($fp,$outString,strlen($outString));
//
// //fclose -- 關(guān)閉一個已打開的文件指針
// //當(dāng)打開一個文件的時候,習(xí)慣性的將它關(guān)閉掉
// fclose($fp);
//就只有一句話,不需要任何其他靈活的事情的使用
//這個比較在行,只有在 PHP5 的版本才可以使用
file_put_contents('file2.txt','閱誰問君誦,水落清香浮。');
?>
Demo7.php
<?php
//第一種寫法
//\r\n 可以讓文本文件換行
$fp = fopen('file.txt','a');
$outString = "閱誰問君誦,\r\n水落清香浮。\r\n";
fwrite($fp,$outString,strlen($outString));
fclose($fp);
//第二種寫法
// file_put_contents('file2.txt','閱誰問君誦,\r\n水落清香浮。');
?>
Demo8.php
<?php
//現(xiàn)在要讀出文件
$fp = fopen('file.txt','r');
//fgetc -- 從文件指針中讀取字符
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp); //閱誰
//fgets -- 從文件指針中讀取一行
//fread() 從 handle 指向的文件中讀取一行并返回長度最多為 length - 1 字節(jié)的字符串。
//echo fgets($fp,20);
//可以過濾HTML
//echo fgetss($fp,20);
//echo fread($fp,2);
//fread() 從 handle 指向的文件中讀取最多 length 個字節(jié)數(shù)
//echo fread($fp,30);
//fpassthru -- 輸出文件指針處的所有剩余數(shù)據(jù)
//fpassthru 本身還包含了向?yàn)g覽器輸出的功能,所以不需要 echo
echo fpassthru($fp);
fclose($fp);
?>
Demo9.php
<?php
//file -- 把整個文件讀入一個數(shù)組中
//file 是按照每行來分組存放在一個數(shù)組中
//print_r(file('file.txt'));
//而這個打印出的是文件中的第二行。
// $array_file = file('file.txt');
// echo $array_file[4];
//readfile -- 輸出一個文件
//readfile 是將整個文件讀出來,readfile 本身能夠直接輸入瀏覽器,所以不需要 echo
//返回值是文件字節(jié)的總長度
//echo readfile('file.txt');
//file_get_contents -- 將整個文件讀入一個字符串
//file_get_contents 可以讀入數(shù)據(jù)到緩沖區(qū),然后通過 echo 來打印
echo file_get_contents('file.txt');
?>
Demo10.php
<?php
//現(xiàn)在要讀出文件
$fp = fopen('file.txt','r');
//feof -- 測試文件指針是否到了文件結(jié)束的位置
while (!feof($fp)){
echo fgetc($fp);
}
fclose($fp);
?>
Demo11.php
<?php
//比如讀取一個文件的時候,你必須保證這個文件一定要存在,才可以操作
//否則就報錯,不讓執(zhí)行
//這個時候就有必須做一個檢測
//file_exists -- 檢查文件或目錄是否存在
if(file_exists('file.txt')){
echo '執(zhí)行各種各樣的文本讀寫操作!';
}else{
echo '此本文不存在,請管理員在后臺重新生成一下。';
}
?>
Demo12.php
<?php
//文本大小,字節(jié)
//echo filesize('file.txt');
//刪除一個文件
//unlink('a.txt');
//rewind -- 倒回文件指針的位置
//ftell -- 返回文件指針讀/寫的位置
//rewind -- 倒回文件指針的位置
//a 表示可以追加,b 表示二進(jìn)制,這樣可移植性好
//w
$fp = fopen('file.txt','ab');
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// rewind($fp);
// echo ftell($fp);
// fseek($fp,20);
// echo ftell($fp);
// echo fgetc($fp);
// echo fgetc($fp);
flock($fp,LOCK_EX);//鎖定
fwrite($fp,'This is lock!');
flock($fp,LOCK_UN);//解鎖
fclose($fp);
?>
Demo13.php
<?php
// //打開一個目錄
// @$dir = opendir('C:\AppServ\www\Basic6');
// //讀出目錄,使用一個循環(huán)來讀出
// //readdir -- 從目錄句柄中讀取條目
// //字符串如果是布爾值,就是說,字符串不為空,那么就是真,為空就是假
// while (!!$file = readdir($dir)){
// echo $file.'<br/>';
// }
// //關(guān)閉
// @closedir($dir);
//print_r(scandir('C:\AppServ\www\Basic6'));
//刪除一個目錄
// //絕對路徑的刪除目錄
// rmdir('C:\AppServ\www\Basic6\delMe');
// //相對路徑的刪除目錄
// rmdir('delMe');
//刪除一個文件
//ssunlink('file2.txt');
//重命名,這里,目錄和文件都能改
//rename('file.txt','file2.txt');
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP目錄操作技巧匯總》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- php遍歷目錄下文件并按修改時間排序操作示例
- PHP超低內(nèi)存遍歷目錄文件和讀取超大文件的方法
- php實(shí)現(xiàn)遍歷文件夾的方法匯總
- PHP遍歷目錄文件的常用方法小結(jié)
- php 遍歷目錄,生成目錄下每個文件的md5值并寫入到結(jié)果文件中
- PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法
- 遍歷指定目錄,并存儲目錄內(nèi)所有文件屬性信息的php代碼
- PHP遞歸遍歷指定目錄的文件并統(tǒng)計(jì)文件數(shù)量的方法
- PHP動態(tài)地創(chuàng)建屬性和方法, 對象的復(fù)制, 對象的比較,加載指定的文件,自動加載類文件,命名空間
- PHP實(shí)現(xiàn)的文件瀏覽器功能簡單示例
相關(guān)文章
php實(shí)現(xiàn)Session存儲到Redis
這篇文章主要介紹了php實(shí)現(xiàn)Session存儲到Redis的方法,php Session可以保存到文本或者內(nèi)存、還有數(shù)據(jù)庫,本文講的是存到Redis的方法,2015-11-11
php實(shí)現(xiàn)XML和數(shù)組的相互轉(zhuǎn)化功能示例
這篇文章主要介紹了php實(shí)現(xiàn)XML和數(shù)組的相互轉(zhuǎn)化功能,結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)xml轉(zhuǎn)數(shù)組及數(shù)組轉(zhuǎn)xml相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
php實(shí)現(xiàn)的讀取CSV文件函數(shù)示例
這篇文章主要介紹了php實(shí)現(xiàn)的讀取CSV文件函數(shù),結(jié)合實(shí)例形式分析了php讀取CSV文件及字符串、數(shù)組遍歷與轉(zhuǎn)換等操作技巧,需要的朋友可以參考下2017-02-02
php getimagesize 上傳圖片的長度和寬度檢測代碼
getimagesize — 取得圖像大小2010-05-05
Ubuntu中搭建Nginx、PHP環(huán)境最簡單的方法
這篇文章主要介紹了Ubuntu中搭建Nginx、PHP環(huán)境最簡單的方法,本文講解的是使用apt-get工具安裝Nginx、PHP環(huán)境,并講解了基本配置,需要的朋友可以參考下2015-03-03
PHP中error_reporting()函數(shù)的用法(修改PHP屏蔽錯誤)
一般在默認(rèn)的普通PHP文件中輸出一個未定義聲明的變量是不會報錯誤的,但在codeigniter框架下卻要報錯誤,這對于想集成 添加 和 修改 頁面于一體的”懶人”很不方便,由于是初學(xué)者開始還想怎么在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低性能.2011-07-07

