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

檔案常用函數(shù)的常數(shù)

下面這一個(gè)常數(shù)是最常用的。是檔案目錄的分割符的常數(shù)。

我們來(lái)看看格式:


QQ截圖20161009110829.png


windows 的路徑格式為d:\xxx\xxx 注意:windows支援d:/xxx/xxx
linux 的路徑格式為/home/xxx/xxx 注意:如果\home\xxx\xxx 在linux上是錯(cuò)誤的
所以當(dāng)你開(kāi)啟轉(zhuǎn)義之類的話,轉(zhuǎn)義字元\ 用一起的話d:\xxx\xxx 是一樣的。判斷時(shí)候有兩個(gè) \ 有的話 再轉(zhuǎn)成一個(gè)\ 再把 \ 替換成 /當(dāng)路徑分割,這樣在linux上或者windos上的路徑就能保持統(tǒng)一了。

我們會(huì)使用到一個(gè)常數(shù):
DIRECTORY_SEPARATOR

我們來(lái)寫一個(gè)小的實(shí)例,定義目前檔案所在的路徑:

由於FILE是PHP的預(yù)定義常數(shù),所以沒(méi)辦法改變,如果需要讓FILE也能自適應(yīng)作業(yè)系統(tǒng)。
那麼就是不要用FILE,可以用自訂的常數(shù),並且把FILE處理一下,如下:

<?php
$_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__);
define('__CUR_FILE__', $_current_file);
 echo __CUR_FILE__;
 ?>

檔案指標(biāo)運(yùn)算子

rewind ( resource handle)

功能:指標(biāo)回到開(kāi)始處

fseek ( resource handle, int offset [, int from_where])
功能:檔案指標(biāo)向後移動(dòng)指定字元

我們?cè)谙惹暗淖x取當(dāng)中我們發(fā)現(xiàn)fread讀取指定長(zhǎng)度的資料。讀取指定長(zhǎng)度的內(nèi)容,下次再讀取的時(shí)候從原始位置開(kāi)始再接著向後讀取。

? ? ? ?QQ截圖20161009110843.png ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??中上對(duì)上時(shí)中讀取#1#12#.2#12#.

2 .???? 檔案假色從A讀取到了C

3.???? 下次開(kāi)啟的時(shí)候可再?gòu)腃綠色箭頭開(kāi)始讀取。

我們?cè)赿emo.txt檔案中寫入一批檔案:

abcdeefghijklk

opqrst

uvwxyz

12345678

#我們可開(kāi)始來(lái)實(shí)驗(yàn)一次。

<?php
$fp = fopen('output.txt', 'r+');
//讀取10個(gè)字符
echo fread($fp,10);
 
//指針設(shè)置回到開(kāi)始處
rewind($handle);
//再讀取10次看看輸出的是什么
echo fread($fp,10);
 
//文件指針向后移動(dòng)10個(gè)字符
echo fseek($fp,10);
 
//再看看文件中輸出的是什么
echo fread($fp,10);
 
fclose($handle);
?>

上面的例子,你會(huì)發(fā)現(xiàn)fseek指定多長(zhǎng)就移動(dòng)多少個(gè)位元組。而rewind每次都是回到文件的起點(diǎn)。

那要如何移動(dòng)到最末端呢?我們可以統(tǒng)計(jì)位元組數(shù)。在fseek的時(shí)候直接移到回後。

下面我們來(lái)講filesize統(tǒng)計(jì)位元組數(shù)。

filesize 偵測(cè)檔案的大小

<?php
 
 
$filename = 'demo.txt';
echo $filename . '文件大小為: ' . filesize($filename) . ' bytes';
 
?>

其實(shí)它操作檔的函數(shù)

其實(shí)還有一些其他操作檔的函數(shù),讀取檔案


? ?

QQ截圖20161009110857.png

我們透過(guò)一個(gè)實(shí)例來(lái)把上面幾個(gè)函數(shù)都用到。

我們?cè)赿emo.txt檔案中寫入一批檔案:

abcdeefghijklk
opqrst
uvwxyz
12345678

<?php
 
//以增加的r模式打開(kāi)
$fp = fopen('demo.txt','r+');
 
//你分發(fā)現(xiàn)每次只讀一個(gè)字符
echo  fgetc($fp);
 
//我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string
while($string = fgetc($fp)){
 
    echo $string;
 
}
?>

fgets每次開(kāi)啟一行:

<?php
 
//以增加的r模式打開(kāi)
$fp = fopen('demo.txt','r+');
 
//你分發(fā)現(xiàn)每次只讀一個(gè)字符
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);
echo  fgets($fp);
 
?>

上面的程式碼,你會(huì)發(fā)現(xiàn)每次讀取一次打開(kāi)一行。讀取最後回傳的是false。

我們接下來(lái)看檔案截取函數(shù):

<?php
 
//打開(kāi)我們上面的demo.txt文件
$file = fopen("demo.txt", "a+");
 
//你可以數(shù)數(shù)20個(gè)字有多長(zhǎng),看看是不是達(dá)到效果了
echo ftruncate($file,20);
fclose($file);
?>

上例我們發(fā)現(xiàn),截取多長(zhǎng)就能顯示多長(zhǎng)的內(nèi)容。

QQ截圖20161009111024.png

? ?

<?php
 
$filename = 'demo.txt';
 
if (file_exists($filename)) {
    echo "$filename文件的上次訪問(wèn)時(shí)間是: " . date("Y-m-d H:i:s", fileatime($filename));
 
    echo "$filename文件的創(chuàng)建時(shí)間是: " . date("Y-m-d H:i:s", filectime($filename));
 
     echo "$filename文件的修改時(shí)間是: " . date("Y-m-d H:i:s", filemtime($filename));
}
?>

?


繼續(xù)學(xué)習(xí)
||
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo "$filename文件的上次訪問(wèn)時(shí)間是: " . date("Y-m-d H:i:s", fileatime($filename)); echo "$filename文件的創(chuàng)建時(shí)間是: " . date("Y-m-d H:i:s", filectime($filename)); echo "$filename文件的修改時(shí)間是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?>
提交重置程式碼