<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 第六章 目錄與文件 一.目錄操作 basename?--?返回路徑中的文件名部分 dirname?--?返回路徑中的目錄部分 pathinfo?--?返回文件路徑的信息 realpath?--?返回規范化的絕對路徑名 ``` <?php $path = 'demo1.php'; $path = realpath($path); echo basename($path); echo '<br>'; echo dirname($path); echo '<br>'; $array_path = pathinfo($path); echo 'basename : '.$array_path['basename'].'<br>'; echo 'dirname : '.$array_path['dirname'].'<br>'; echo 'extension : '.$array_path['extension'].'<br>'; echo 'filename : '.$array_path['filename'].'<br>'; ?> ``` Output: ``` demo1.php D:\AppServ\www\Basic6 basename : demo1.php dirname : D:\AppServ\www\Basic6 extension : php filename : demo1 ``` 二.磁盤、目錄和文件計數 1.查看文件大小和磁盤空間 filesize?--?取得文件大小 disk_free_space?--?返回目錄中的可用空間 disk_total_space?--?返回一個目錄的磁盤總大小 ``` <?php $path ='demo2.php'; $path = realpath($path); $drive = 'c:'; echo round(filesize($path)/1024,2).'kb'.'<br/>'; echo round(disk_free_space($drive)/1024/1024/1024,2).'GB'.'<br/>'; echo round(disk_total_space($drive)/1024/1024/1024,2).'GB'.'<br/>'; ?> ``` output ``` 0.26kb 10.61GB 30.01GB ``` 2.獲得文件的各種時間 fileatime?--?取得文件的上次訪問時間 filectime?--?取得文件的 inode 修改時間 filemtime?--?取得文件修改時間 ``` <?php $file = realpath ( '../Basic5/demo3.php' ); $date_format = 'Y-m-d h:i:s'; echo 'lastest accessing time : '.date ( $date_format, fileatime ( $file ) ) . '<br>'; echo 'lastest change time : '.date ( $date_format, filectime ( $file ) ) . '<br>'; echo 'lastest modify time : '.date ( $date_format, filemtime ( $file ) ) . '<br>'; ?> ``` output ``` lastest accessing time : 2011-12-18 04:26:49 lastest change time : 2011-12-18 04:26:49 lastest modify time : 2011-12-18 04:29:15 ``` 三.文件處理 文件讀寫的兩種方式: 1.php所有版本都支持的方法: fopen?--?打開文件或者 URL fclose?--?關閉一個已打開的文件指針 fwrite?--?寫入文件(可安全用于二進制文件) 表 1\. fopen() 中 mode的可能值列表 | mode | 說明 | | --- | --- | | 'r' | 只讀方式打開,將文件指針指向文件頭。 | | 'r+' | 讀寫方式打開,將文件指針指向文件頭。 | | 'w' | 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。 | | 'w+' | 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。 | | 'a' | 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 | | 'a+' | 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 | | 'x' | 創建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 `fopen()` 調用失敗并返回 `FALSE`,并生成一條 `E_WARNING` 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 `open(2)` 系統調用指定 `O_EXCL&#124;O_CREAT` 標記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。 | | 'x+' | 創建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 `fopen()` 調用失敗并返回 `FALSE`,并生成一條 `E_WARNING` 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 `open(2)` 系統調用指定 `O_EXCL&#124;O_CREAT` 標記是等價的。此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。 | ``` <?php $fp = fopen('file1.txt','w'); $outStr = "my name is anllin,\r\nmy age is 29."; fwrite($fp,$outStr,strlen($outStr)); fclose($fp); ?> ``` output ``` my name is anllin, my age is 29. ``` 2.php5新加入的方法 file_put_contents?--?將一個字符串寫入文件 ``` <?php file_put_contents('file2.txt',"my name is anllin,\r\nmy age is 29."); ?> ``` output ``` my name is anllin, my age is 29. ``` 讀出文件內容的方法: | 函數 | 功能 | | --- | --- | | Fgetc() | 讀出一個字符,并將指針移到下一個字符 | | Fgets() | 讀出一行字符,可以指定一行顯示的長度。 | | Fgetss() | 從文件指針中讀取一行并過濾掉HTML標記 | | Fread() | 讀取定量的字符 | | Fpassthru() | 輸出文件到指定處的所有剩余數據 | | File() | 將整個文件讀入數組中,以行分組 | | Readfile() | 讀入一個文件并寫入到輸出緩沖 | | File_get_contents() | 將整個文件讀入一個字符串 | | Feof() | 判斷讀完文件函數 | | File_exists() | 查看文件是否存在 | 示例文件file1.txt的內容如下: ``` my name is anllin, my age is 29. ``` fgetc?--?從文件指針中讀取字符 Demo.php ``` <?php $fp = fopen('file1.txt','r'); echo fgetc($fp); echo fgetc($fp); fclose($fp); ?> ``` Output: ``` my ``` fgets?--?從文件指針中讀取一行 ``` <?php $fp = fopen('file1.txt','r'); echo fgets($fp); echo fgets($fp); fclose($fp); ?> ``` output ``` my name is anllin, my age is 29. ``` fgetss?--?從文件指針中讀取一行并過濾掉 HTML 標記 ``` <?php $fp = fopen('file3.txt','w'); $outStr = "my name is <b>anllin</b>"; fwrite($fp,$outStr,strlen($outStr)); fclose($fp); $ftp = fopen('file3.txt','r'); echo fgetss($ftp); fclose($ftp); ?> ``` Output ``` my name is anllin ``` fread?--?讀取文件(可安全用于二進制文件) ``` <?php $filename = 'file1.txt'; $fp = fopen($filename,'r'); $contents = fread($fp,filesize($filename)); echo $contents; fclose($fp); ?> ``` Output ``` my name is anllin, my age is 29. ``` fpassthru?--?輸出文件指針處的所有剩余數據 ``` <?php $filename = 'file1.txt'; $fp = fopen($filename,'rb'); $leftSize = fpassthru($fp); echo $leftSize; fclose($fp); ?> ``` output ``` my name is anllin, my age is 29. 33 ``` file?--?把整個文件讀入一個數組中 ``` <?php $lines = file('file1.txt'); foreach ($lines as $line_num => $line) { echo $line_num.' : '.$line.'<br>'; } ?> ``` output ``` 0 : my name is anllin, 1 : my age is 29. ``` readfile?--?輸出一個文件 ``` <?php $size = readfile('file1.txt'); echo $size; ?> ``` output ``` my name is anllin, my age is 29.33 ``` file_get_contents?--?將整個文件讀入一個字符串(php5.0新增) ``` <?php $contents = file_get_contents('file1.txt'); echo $contents; ?> ``` output ``` my name is anllin, my age is 29. ``` feof?--?測試文件指針是否到了文件結束的位置 ``` <?php $fp = fopen('file1.txt','r'); while(!feof($fp)) { echo fgetc($fp); } fclose($fp); ?> ``` output ``` my name is anllin, my age is 29. ``` file_exists?--?檢查文件或目錄是否存在 ``` <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <?php $filename = 'file1.txt'; if(file_exists($filename)) { echo '執行文件讀寫操作'; } else { echo '你要找的文件不存在'; } ?> ``` output ``` 執行文件讀寫操作 ``` filesize?--?取得文件大小 ``` <?php $file_size = filesize('file1.txt'); echo $file_size; ?> ``` output ``` 33 ``` unlink?--?刪除文件 ``` <?php $isDeleted = unlink('file3.txt'); echo $isDeleted; ?> ``` output ``` 1 ``` rewind?--?倒回文件指針的位置 ftell?--?返回文件指針讀/寫的位置 fseek?--?在文件指針中定位 ``` <?php $fp = fopen ( 'file1.txt', 'r' ); fgetc ( $fp ); fgetc ( $fp ); echo ftell ( $fp ) . '<br>'; rewind ( $fp ); echo ftell ( $fp ) . '<br>'; fgetc ( $fp ); fgetc ( $fp ); echo ftell ( $fp ) . '<br>'; fseek($fp,0);//same as rewind ($fp) echo ftell ( $fp ) . '<br>'; ?> ``` output ``` 2020 ``` Flock的操作值 | 操作值 | 意義 | | --- | --- | | LOCK_SH(以前為1) | 讀寫鎖定。這意味著文件可以共享,其他人可以讀該文件 | | LOCK_EX(以前為2) | 寫操作鎖定。這是互斥的,該文件不能被共享 | | LOCK_UN(以前為3) | 釋放已有的鎖定 | | LOCK_NB(以前為4) | 防止在請求加鎖時發生阻塞 | flock?--?輕便的咨詢文件鎖定 ``` <?php $filename = 'file1.txt'; $fp = fopen($filename,'rb'); flock($fp,LOCK_EX);//locked $contents = fread($fp,filesize($filename)); flock($fp,LOCK_UN);//unlocked echo $contents; fclose($fp); ?> ``` output ``` my name is anllin, my age is 29. ``` 目錄句柄操作 opendir?--?打開目錄句柄 readdir?--?從目錄句柄中讀取條目 closedir?--?關閉目錄句柄 ``` <?php $dir= opendir('../Basic6'); while(!!$file = readdir($dir)) { echo $file.'<br/>'; } closedir($dir); ?> ``` output ``` . .. .buildpath .project .settings demo1.php demo10.php demo11.php demo12.php demo13.php demo14.php demo15.php demo16.php demo17.php demo18.php demo19.php demo2.php demo20.php demo3.php demo4.php demo5.php demo6.php demo7.php demo8.php demo9.php file1.txt file2.txt ``` scandir?--?列出指定路徑中的文件和目錄 ``` <?php $files = scandir('../Basic6'); foreach($files as $file) { echo $file.'<br>'; } ?> ``` output ``` . .. .buildpath .project .settings demo1.php demo10.php demo11.php demo12.php demo13.php demo14.php demo15.php demo16.php demo17.php demo18.php demo19.php demo2.php demo20.php demo21.php demo3.php demo4.php demo5.php demo6.php demo7.php demo8.php demo9.php file1.txt file2.txt ``` rename?--?重命名一個文件或目錄 ``` <?php rename('demo1.php','demo01.php'); if(file_exists('demo01.php')) { echo 'file rename success'; } else { echo 'file rename fail'; } ?> ``` output ``` file rename success ``` rmdir?--?刪除目錄 ``` <?php rmdir('123'); if(file_exists('123')) { echo 'delete file fail'; } { echo 'delete file success'; } ?> ``` output ``` delete file success ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看