日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

詳談PHP文件目錄基礎(chǔ)操作_PHP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:PHP獲取數(shù)組中重復(fù)最多的元素的實(shí)現(xiàn)方法
本文實(shí)例講述了PHP獲取數(shù)組中重復(fù)最多的元素的實(shí)現(xiàn)方法。分享給大家供大家參考。具體方法如下: 代碼如下:?php /** * * Created on 2014-4-1 * @param array $array * @param int [optional] $length * @return array */ function mostRepeatedValues($array,$length=0

 我們知道,臨時(shí)聲明的變量是保存在內(nèi)存中的,即便是靜態(tài)變量,在腳本運(yùn)行完畢后也會(huì)被釋放掉,so,想長(zhǎng)久保存一個(gè)變量的內(nèi)容,方法之一就是寫(xiě)到文件中,放到硬盤(pán)或服務(wù)器上,為此文件操作就必須很熟悉。

1.文件的屬性信息獲取

首先文件具有類型,在Linux下邊,有block(塊設(shè)備,如磁盤(pán)分區(qū)、CD-ROM)、char(以字符為輸入的設(shè)備,如鍵盤(pán)、打印機(jī))、dir(目錄類型,目錄也是文件的一種)、fifo(命名管道,解釋是將信息從一個(gè)進(jìn)程傳到另一個(gè)進(jìn)程)、file(普通的文件)、link(鏈接,類似win下邊的快捷方式)、unknow(未知類型)7大類,在win下邊,只有3類:file、dir和unknown。Linux渣表示一定要好好搞一下Linux-_-,人家完全是為L(zhǎng)inux而生。

關(guān)于類型的獲取有這么幾個(gè)函數(shù):filetype:獲取類型; is_file:判斷為是否是正常文件; is_link:判斷是否是鏈接。

關(guān)于屬性的獲取有這么幾個(gè)函數(shù):

file_exists:判斷文件或目錄是否存在;

filesize:獲取文件大��;

is_readable、is_writable、is_executable :是否可讀、可寫(xiě)、可執(zhí)行;

filectime、filemtime、fileatime:獲取文件的創(chuàng)建時(shí)間(create)、修改時(shí)間(modify)、訪問(wèn)時(shí)間(access),均返回時(shí)間戳;

stat:獲取文件的一些基本信息,返回一個(gè)索引與關(guān)聯(lián)混合數(shù)組。

比如,可以這樣判斷文件類型:

 

代碼如下:
<?php
function getFileType($path){ // 獲取文件類型
switch(filetype($path)){
case 'file': return 'ordinary file';
case 'dir': return 'directory';
case 'block': return 'block device file';
case 'char': return 'transfer device base on char';
case 'fifo': return 'named pipes';
case 'link': return 'symbol link';
default: return 'unknown type';
}
}

 

filesize返回的是以字節(jié)為單位的數(shù)據(jù),如果是大文件數(shù)字或很大,可以對(duì)數(shù)字先處理一下,代碼如下

 

代碼如下:
<?php
// 處理文件大小
function getSize($path = '', $size = -1){
if($path !== null && $size == -1){ // 只傳路徑就計(jì)算大小,也可以使之只處理數(shù)字
$size = filesize($path);
}
if($size >= pow(2, 40)){
return round($size/pow(2, 40), 2).'TB';
}
else if($size >= pow(2, 30)){
return round($size/pow(2, 30), 2).'GB';
}
else if($size >= pow(2, 20)){
return round($size/pow(2, 20), 2).'MB';
}
else if($size >= pow(2, 10)){
return round($size/pow(2, 10), 2).'KB';
}
else{
return round($size, 2).'Byte';
}
}

 

現(xiàn)在綜合來(lái)獲取一下文件信息,代碼如下:

 

代碼如下:
<?php
function getFileInfo($path){
if(!file_exists($path)){ // 判斷文件是否存在
echo 'file not exists!<br>';
return;
}
if(is_file($path)){ // 是文件,打印基礎(chǔ)文件名
echo basename($path).' is a file<br>';
}
if(is_dir($path)){ // 是目錄 ,返回目錄
echo dirname($path).' is a directory<br>';
}
echo 'file type:'.getFileType($path).'<br>'; // 獲取文件類型
echo 'file size:'.getSize($path).'<br>'; // 獲取文件大小
if(is_readable($path)){ // 是否可讀
echo basename($path).' is readable<br>';
}
if(is_writeable($path)){ // 是否可寫(xiě)
echo basename($path).' is writeable<br>';
}
if(is_executable($path)){ // 是否可執(zhí)行
echo basename($path).' is executable<br>';
}
// touch函數(shù)可以修改這些時(shí)間
echo 'file create time: '.date('Y-m-d H:i:s', filectime($path)).'<br>'; // 創(chuàng)建時(shí)間
echo 'file modify time: '.date('Y-m-d H:i:s', filemtime($path)).'<br>'; // 修改時(shí)間
echo 'last access time: '.date('Y-m-d H:i:s', fileatime($path)).'<br>'; // 上次訪問(wèn)時(shí)間
echo 'file owner: '.fileowner($path).'<br>'; // 文件擁有者
echo 'file permission: '.substr(s echo 'file group: '.filegroup($path).'<br>'; // 文件所在的組
}

 

效果如下:

詳談PHP文件目錄基礎(chǔ)操作 模板無(wú)憂

代碼中還用到了文件權(quán)限、所在組等函數(shù),有必要解釋下(說(shuō)的不對(duì)請(qǐng)修正)。一個(gè)文件的權(quán)限分為可讀可寫(xiě)可執(zhí)行,一般這樣表示:rwx,字母對(duì)應(yīng)的表示可讀可寫(xiě)可執(zhí)行,從前往后規(guī)定值為4、2、1,三個(gè)值相加的結(jié)果最大為7,因此0666用的是八進(jìn)制表示,這樣看起來(lái)就很方便。為7則表示這個(gè)文件具備這三個(gè)權(quán)限,那為什么打印的是0666呢?我們都知道,進(jìn)入windows下面是有一個(gè)用戶的,在Linux下邊,與windows類似,也是有一個(gè)用戶登錄進(jìn)去,因此一個(gè)文件可能為該用戶所有,一個(gè)用戶它還有自己所在的組,以及該系統(tǒng)中還有其他組(猜想這樣分應(yīng)該是管理上的需要),因此對(duì)于0666,對(duì)于第一個(gè)6,表示該用戶對(duì)該文件的權(quán)限,第二個(gè)6表示該用戶所在的組對(duì)該文件的權(quán)限,第三個(gè)6表示其他的組所具有的權(quán)限(這樣就不用一一去區(qū)分除本組外其他的用戶了),6就知道該文件是可讀可寫(xiě)的(win下可執(zhí)行都知道是.exe文件)。

2.目錄操作

目錄的讀取,opendir:打開(kāi)一個(gè)目錄,返回一個(gè)句柄,指向該目錄中的內(nèi)容,如果把目錄中的內(nèi)容看成一個(gè)有順序的數(shù)據(jù),比如按順序的排列的數(shù)組,這個(gè)句柄就指向這個(gè)數(shù)組的開(kāi)頭,事實(shí)上,系統(tǒng)會(huì)把該目錄中的內(nèi)容按照字典排序,無(wú)論是文件還是子目錄。readdir:讀取下一個(gè)目錄內(nèi)容,返回文件名,并自動(dòng)指向該目錄中的下一個(gè)文件/目錄,所以讀取一個(gè)目錄中的內(nèi)容,不包括子目錄中的內(nèi)容,需要一個(gè)循環(huán)來(lái)控制,在讀取完后,還要關(guān)閉句柄變量,C語(yǔ)言讀取文件時(shí)也是這樣,打開(kāi)就有關(guān)閉。以我的機(jī)子舉例:

分享:php的curl封裝類用法實(shí)例
使用函數(shù)之前我們要需要把php curl模塊打開(kāi)(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll) 開(kāi)啟php curl函數(shù)庫(kù)的步驟 1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路徑*/ 2).把php5/libeay32.dll,sslea

共3頁(yè)上一頁(yè)123下一頁(yè)
來(lái)源:模板無(wú)憂//所屬分類:PHP教程/更新時(shí)間:2014-11-13
相關(guān)PHP教程