PHP-第6節

<?php
header("Content-Type:text/html;charset=utf-8");

/***
 *  目錄操作。
 *  磁盤 目錄和文件計算。
 *  文件處理。
 */


/***
 * 目錄文件。獲取目錄  解析目錄
 * 文件的擴展名  文件後綴
 * basename 文件名
 * dirname  目錄部分
 * pathinfo 文件名+後綴名
 *
 */

$path='/Applications/MAMP/htdocs/demo6/demo6_0.php';

echo $path;
echo "<br/>";
echo basename($path);
echo dirname($path);
echo "<br/>";
$arraysPath=pathinfo($path);

echo $arraysPath["dirname"];
echo "<br/>";
print_r(pathinfo($path));

/***
 * 相對路徑  絕對路徑
 * 絕對路徑的方法realpath
 */

$path1='demo6_1.php';//-相對路徑
echo "<br/>";
echo realpath($path1);
$path2='../index.php';
echo "<br/>";
echo realpath($path2);

/***
 * 磁盤 目錄和文件的計算
 * filesize  返回指定文件字節大小
 *
 *
 * ---計算磁盤的可用空間
 * ---計算磁盤的總容量
 * ---文件的最後訪問時間----時間戳
 * ---文件最後改變時間
 * ---文件最後修改時間。
 */
echo "---------------<br/>";
$file ='/Applications/MAMP/htdocs/demo6/demo6_0.php';
echo round(filesize($file)/1024,2)."kb";
echo "-----drive----------<br/>";
//---計算磁盤的可用空間
$drive='/';
echo round(disk_free_space($drive)/1024/1024/1024,2)."G";

// * ---計算磁盤的總容量
echo "-----drive----------<br/>";
echo round(disk_total_space($drive)/1024/1024/1024,2)."G";


//* ---文件的最後訪問時間


date_default_timezone_set('Asia/Shanghai');
echo "-----date----------<br/>";
echo date("Y-m-d,h:i:s");


echo "-----file----------<br/>";
echo date("Y-m-d,h:i:s",fileatime($drive));

//* ---文件的最後改變時間

echo "-----file----------<br/>";
echo date("Y-m-d,h:i:s",filectime($drive));


// * ---文件最後修改時間。

echo "-----file----------<br/>";
echo date("Y-m-d,h:i:s",filemtime($drive));






?>

<?php
header("Content-Type:text/html;charset=utf-8");


/***
 *  文件處理。
 *  資源類型---輸入輸出----
 *  1.寫入一個文件
 *      打開文件  文件不存在  先創建
 *      數據寫入
 *      關閉文件
 *  2.讀出數據
 *      打開文件
 *      讀出數據
 *      關閉文件
 *
 *
 *
 */



/****
 * 打開文件
 * fopen()函數  支持文件路徑   文件模式
 * 文件模式--3中
 * ->模式
 *  r只讀:文件指針在文件頭
 *  r+ 讀寫:.......文件頭
 *  w 只寫:在寫入之前,刪除文件內容,指針返回文件頭  文件不存在 嘗試創建。
 *  w+ 讀寫:讀取和寫入之前刪除文件內容,移動到文件頭 ,文件不存在。嘗試創建
 *  a-只寫:文件指針在文件的末尾,如果不存在創建,追加。
 *  a+讀寫  指針置於文件末尾,如果文件不存在,創建 追加到文件。
 *  b  二進制 是默認的模式,WIN系統區分二進制文件和文本文件。
 *  t  文本

 * 1,只讀   只寫  讀和寫
 * 2. 寫一個文件 可能是覆蓋所有已經有的文件內容,或者僅僅將數據追加到文件末尾。
 * 3. 如果區分二進制和純文本的系統還必須指定採用的方式。
 *
 *
 *
 * fwrite  第三個是可選參數爲最大字符數
 * fputs
 *
 *
 * \n換行
 */



//寫入文件------- >追加
//寫入文件------- >
$fileone=fopen('file.txt','a');
//fopen返回的是資源類型resouce  資源句丙
//寫入數據
fwrite($fileone,'張三的打算',strlen($fileone));
file_put_contents('file.txt',"thoifdojasfds");
fclose($fileone);

//打開文件
$fp=fopen('file.txt','a');

$string ="內從\ncontent";
fwrite($fp,$string,strlen($fp));
fclose($fp);

//讀出文件------- >

$fileone=fopen('file.txt','r');

/***
 * fgetc()---讀出一個字符   指針移動到下一個字符
 * fgets()--讀出一行字符  可以指定一行顯示的長度 length-1
 * fgetss()從文件指針中拂去一行並且過濾掉HTML的標記
 * fread()讀取定量的字符  length
 * fpassthru()輸出文件指針處的所有的剩餘數據
 * file  將整個文件讀入數組中  以行分組
 * readfile()讀入一個文件並寫入到輸出緩衝  所以不需要echo來輸出  返回值是文件字符的總長度(字節數中文是2個)
 * file_get_contents()將整個文件讀入一個字符串。
 */
//讀出一個字符
echo fgetc($fileone);
echo fgetc($fileone);
echo fgets($fileone,"3");
//過濾HTML
echo fgetss($fileone);
echo "<br/>";
//fread
echo fread($fileone,4);
echo "<br/>";
echo fpassthru($fileone);
echo "<br/>";
print_r(file('file.txt'));
echo readfile('file.txt');
echo file_get_contents('file.txt');


//打印所有的文件  函數feof();檢測文件指針到了文件結尾的位置
   while(!feof($fileone))
   {
     echo fgetc($fileone);
   }
//讀取文件的時候一定保證這個文件一定操作。否則報錯。不讓執行
/***
 * 文件是否存在  file_exists
 * 查看文件的大小 filesize
 * 刪除一個文件  unlink
 * 在文件中定位
 *
 *
 *
 * rewind  倒回文件的開始位置
 *
 *
 * fseek  定位
 */
echo "<br/>";
if(file_exists('file.txt'))
{
    echo '存在';
    rewind($fileone);
    echo fgetc($fileone);
    echo ftell($fileone);
    echo fseek($fileone,20);
    echo ftell($fileone);



//    unlink('file1.txt');
//    filesize('file1.txt');
}
else
{
    echo '不存在';

}

/***
 * 鎖定商品
 * flock---鎖定商品
 *
 */
$ff=fopen('file.txt','ab');
flock($ff,LOCK_EX);
fwrite($ff,'dsadas');
flock($ff,LOCK_UN);
fclose($ff);



/***
 * 目錄句丙
 * opendir()打開目錄
 * closedir()關閉
 * readdir()返回目錄中的元素
 *
 *
 * scandir 讀入數組
 * rmdir  刪除目錄
 * rename 更改文件名
 */


$dirs=opendir('/Applications/MAMP/htdocs/demo6');
while(!!$file ==readdir($dirs))
{
    echo $file.'<br/>';
}
closedir($dir);


print_r(scandir('/Applications/MAMP/htdocs/demo6'));

rename('demo6_2.php','demo6_1.php');







?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章