亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP編程文件處理類SplFileObject和SplFileInfo用法實例分析

2024-05-04 23:58:55
字體:
來源:轉載
供稿:網友

本文實例講述了PHP編程文件處理類SplFileObject和SplFileInfo用法。分享給大家供大家參考,具體如下:

php對于大文件的處理除了用以下方法外還可以直接調用linux命令

文件處理類:

SplFileInfo {/* 方法 */public __construct ( string $file_name )public int getATime ( void )   //獲取文件的最后訪問時間public string getBasename ([ string $suffix ] ) //獲取文件的沒有路徑信息的基本名稱,參數可以為文件后綴,若有參數則返回沒有該后綴的文件基本名稱。public int getCTime ( void )    //返回文章最后一次變更的時間戳。public string getExtension ( void )  //獲取文件擴展名public SplFileInfo getFileInfo ([ string $class_name ] ) //以對象的形式返回文件路徑和名稱public string getFilename ( void )  //獲取文件名稱,不帶路徑public int getGroup ( void )  //獲取文件所在組,返回組idpublic int getInode ( void )  //獲取文件索引節點public string getLinkTarget ( void ) //獲取文件鏈接目標public int getMTime ( void ) //獲取最后修改時間public int getOwner ( void )   //獲取文件的所有者public string getPath ( void )  //獲取文件路徑,不帶文件名和最后的斜杠public SplFileInfo getPathInfo ([ string $class_name ] )  //返回路徑對象public string getPathname ( void )  //獲取文件路徑public int getPerms ( void )  //獲取文件權限public string getRealPath ( void ) //獲取文件絕對路徑,若文件不存在,返回falsepublic int getSize ( void )  //返回文件大小,單位字節public string getType ( void ) //返回文件類型,可能是 file, link, dirpublic bool isDir ( void ) //判斷是否是目錄,是放回true否則返回falsepublic bool isExecutable ( void ) //判斷文件是否可執行,返回true,否則返回falsepublic bool isFile ( void )  //如果文件存在且是一個普通文件(不是鏈接),返回true,否則返回falsepublic bool isLink ( void ) //判斷文件是否是連接,不是返回falsepublic bool isReadable ( void )  //判斷文件是否可讀,可讀返回truepublic bool isWritable ( void )  //判斷文件是否可寫,可寫返回truepublic SplFileObject openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] ) //獲取文件對象信息public void setFileClass ([ string $class_name = "SplFileObject" ] )public void setInfoClass ([ string $class_name = "SplFileInfo" ] )public void __toString ( void )  //以字符串的形式返回文件路徑及名稱}

使用方法:

$info = new SplFileInfo($file_name);
SplFileObject {/* 常量 */const integer DROP_NEW_LINE = 1 ;const integer READ_AHEAD = 2 ;const integer SKIP_EMPTY = 4 ;const integer READ_CSV = 8 ;/* 方法 */public string|array current ( void )   //返回文件當前行內容public bool eof ( void ) //檢測文件是否到末尾,如果到末尾返回true,否則返回falsepublic bool fflush ( void )  //將緩沖內容輸出到文件,成功時返回 TRUE, 或者在失敗時返回 FALSE。public string fgetc ( void )  //按字符讀取文件public array fgetcsv ([ string $delimiter = "," [, string $enclosure = "/"" [, string $escape = "//" ]]] )  //讀取csv文件public string fgets ( void )  //按行讀取文件public string fgetss ([ string $allowable_tags ] ) //按行讀取文件,并去掉html標記public bool flock ( int $operation [, int &$wouldblock ] )  //文件鎖定或解鎖,返回true或false/*參數:LOCK_SH 共享鎖 (讀).LOCK_EX 獨占鎖 (寫).LOCK_UN 釋放鎖 (共享或獨占).LOCK_NB (附加鎖定) 如果不希望flock()在鎖定時堵塞,則應在上述鎖定后加上改鎖(windows上不支持)flock(LOCK_EX+LOCK_NB);  // 獨占鎖定加上附加鎖定flock(LOCK_UN+LOCK_NB); */public int fpassthru ( void )  //輸出文件指針之后的所有數據和字符數public int fputcsv (array $fields) //將一維數組作為一行輸入csv文件中,返回寫入的字符串長度或falsepublic string fread ( int $length ) //從文件中讀取指定的字節數,返回讀取的字符串或falsepublic mixed fscanf ( string $format [, mixed &$... ] ) //從文件中讀取一行并按照指定模式解析/*例:$file = new SplFileObject("misc.txt");while ($userinfo = $file->fscanf("%s %s %s")) {  list ($name, $profession, $countrycode) = $userinfo;  // Do something with $name $profession $countrycode}*/public int fseek ( int $offset [, int $whence = SEEK_SET ] ) //按字節移動文件指針位置,/*SEEK_SET 設置文件指針到指定字節位置(默認為該模式).SEEK_CUR 設置文件指針到當前位置加上指定字節位置.SEEK_END 設置文件指針到文件末尾加上指定字節位置(此時字節經常為負值).public array fstat ( void ) //獲取文件信息,以數組形式返回*//*數字下標  關聯鍵名(自 PHP 4.0.6)  說明0      dev device number - 設備名1      ino inode number - inode 號碼2      mode  inode protection mode - inode 保護模式3      nlink  number of links - 被連接數目4      uid userid of owner - 所有者的用戶 id5      gid groupid of owner- 所有者的組 id6      rdev  device type, if inode device * - 設備類型,如果是 inode 設備的話7      size  size in bytes - 文件大小的字節數8      atime  time of last access (unix timestamp) - 上次訪問時間(Unix 時間戳)9      mtime  time of last modification (unix timestamp) - 上次修改時間(Unix 時間戳)10     ctime  time of last change (unix timestamp) - 上次改變時間(Unix 時間戳)11     blksize blocksize of filesystem IO * - 文件系統 IO 的塊大小12     blocks number of blocks allocated - 所占據塊的數目* Windows 下總是 0。* - 僅在支持 st_blksize 類型的系統下有效。其它系統(如 Windows)返回 -1。 */public int ftell ( void ) //返回當前文件位置,文件指針位置public bool ftruncate ( int $size )  //將文件截斷到指定的長度,若長度大于文件長度用空補齊(文件打開方法對其有影響)public int fwrite ( string $str [, int $length ] ) //將$str字符串寫入文件,只寫$length長度。放回寫入字節數或nullpublic array getCsvControl ( void ) //Gets the delimiter and enclosure character used for parsing CSV fields.public int getFlags ( void ) //Gets the flags set for an instance of SplFileObject as an integer.public int getMaxLineLen ( void ) //返回一行讀取的最大字節數(在已設置的前提下),若未設置,默認為0public int key ( void ) //獲取當前行號。public void next ( void ) //移動到下一行public void rewind ( void ) //返回到第一行public void seek ( int $line_pos ) //定位到文件指定行public void setCsvControl ([ string $delimiter = "," [, string $enclosure = "/"" [, string $escape = "//" ]]] )public void setFlags ( int $flags )public void setMaxLineLen ( int $max_len ) //設置文件讀取一行的最大字節數,若文件每行有10個字符,但設置最大讀取為public bool valid ( void ) //檢查是否到達文件底部,未到達底部返回 TRUE ,抵達返回false.}

用法:

$file = new SplFileObject("misc.txt", 'r+');while (!$file->eof()) {  echo $file->current();  $file->next();}//關閉文件對象$file = null;

常用文件處理方法:

/** * 獲取文件指定行數范圍數據 * @param unknown $filename 文件名稱 * @param number $startLine 開始行 * @param number $endLine  結束行 * @param string $method * @return multitype: */function getFileLines($filename, $startLine = 1, $endLine = 20, $method = 'rb'){  $content = array();  $count = $endLine - $startLine;  $fp = new SplFileObject($filename, $method);  $fp->seek($startLine - 1); // 轉到第N行, seek方法參數從0開始計數  for ($i = 0; $i <= $count; ++$i) {    $content[] = $fp->current(); // current()獲取當前行內容    $fp->next(); // 下一行    if($fp->eof()) {      array_pop($content);      break;    }  }  return array_filter($content); // array_filter過濾:false,null,''}/** * 獲取文章最后一行內容 * @param string $res 文件路徑/名 */function get_last_line($res) {  $fp = fopen($res, 'r');  if (false == $fp) {    return 'error';  }  fseek($fp,-1,SEEK_END);  $s = '';  while(($c = fgetc($fp)) !== false)  {    if($c == "/n" && $s) break;    $s = $c . $s;    fseek($fp, -2, SEEK_CUR);  }  fclose($fp);  return $s;}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久中文字幕| 亚洲白虎美女被爆操| 久久精品视频一| 久久人人爽人人| 久久天堂av综合合色| 欧美壮男野外gaytube| 亚洲伊人一本大道中文字幕| 成人a视频在线观看| 97在线视频免费播放| 亚洲国内高清视频| 91精品久久久久久综合乱菊| 亚洲第一中文字幕| 97超视频免费观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲天堂精品在线| 日韩美女毛茸茸| 色诱女教师一区二区三区| 欧美成人中文字幕在线| 欧美肥老妇视频| 8090理伦午夜在线电影| 欧美日韩亚洲视频| 亚洲第一网站男人都懂| 青青久久aⅴ北条麻妃| 色偷偷88888欧美精品久久久| 欧美大胆在线视频| 亚洲成人黄色在线| 青青久久av北条麻妃黑人| 亚洲曰本av电影| 亚洲一区二区三区成人在线视频精品| xxxxx91麻豆| 国产盗摄xxxx视频xxx69| 欧美乱大交xxxxx另类电影| 欧美老女人性视频| 亚洲欧洲日韩国产| 91精品久久久久久久久中文字幕| 国产日韩中文字幕| 亚洲男人天堂视频| 欧美成人免费在线视频| 国产色综合天天综合网| 亚洲免费av网址| 91久久精品一区| 热久久免费视频精品| 欧美裸体xxxx| 美日韩在线视频| 欧美在线免费观看| 国产成人精品在线观看| 亚洲色在线视频| 欧美另类交人妖| 亚洲国产成人精品女人久久久| 免费91麻豆精品国产自产在线观看| 2019亚洲男人天堂| 亚洲天堂av电影| 国产精品高潮呻吟久久av无限| 亚洲国产精彩中文乱码av在线播放| 在线电影欧美日韩一区二区私密| 亚洲免费电影在线观看| 亚洲va久久久噜噜噜| 国产精品精品视频一区二区三区| 国产成人激情小视频| 成人免费午夜电影| 福利视频一区二区| 日韩国产高清视频在线| 欧美激情三级免费| 成人黄色在线播放| 日韩中文字幕欧美| 日韩高清人体午夜| 久久国产精品久久久久| xvideos亚洲| 国产97在线|亚洲| 韩剧1988免费观看全集| 日韩精品视频免费在线观看| 精品中文字幕久久久久久| 亚洲乱码av中文一区二区| 国产日韩在线观看av| 久久久成人av| 亚洲欧美日韩天堂一区二区| 亚洲综合精品一区二区| 久热精品视频在线免费观看| 国产91精品黑色丝袜高跟鞋| 欧美精品在线观看91| 欧美日韩一区免费| 538国产精品一区二区免费视频| 亚洲免费一在线| 国产欧美一区二区三区久久人妖| 成人黄色影片在线| 日韩欧美中文免费| 自拍视频国产精品| 欧美激情精品久久久久久免费印度| 国语自产在线不卡| 色综合伊人色综合网站| 91精品久久久久| 亚洲日本中文字幕免费在线不卡| 亚洲色图18p| 欧美成人精品一区| 欧美日韩一区二区三区在线免费观看| 国产精品扒开腿做爽爽爽视频| 亚洲精品国产综合久久| 中文字幕亚洲欧美一区二区三区| 久久精品国产一区| 日韩免费av片在线观看| 久久综合国产精品台湾中文娱乐网| 欧美久久久精品| 精品一区二区三区三区| 国产精品视频久久久久| 丝袜美腿亚洲一区二区| 一区二区三区回区在观看免费视频| 久久久视频在线| 欧美视频第一页| 国产欧美日韩中文字幕| 欧美日韩一区二区三区在线免费观看| 91禁外国网站| 亚洲国产精品99久久| 97久久精品人人澡人人爽缅北| 中文字幕久久久av一区| 午夜精品久久久99热福利| 色香阁99久久精品久久久| 国产亚洲欧洲高清一区| 国产福利视频一区二区| 亚洲性69xxxbbb| 日韩av电影在线网| 国产精品爽爽ⅴa在线观看| 国产精品久久久久久搜索| 日韩av在线影视| 永久免费毛片在线播放不卡| 欧美丰满老妇厨房牲生活| 国产视频久久网| 久久亚洲精品一区| 精品久久久久久久久久久久久久| 中文字幕一区二区三区电影| 亚洲第一天堂av| 色哟哟网站入口亚洲精品| 亚洲高清在线观看| 91成人国产在线观看| 欧美日韩激情美女| 亚洲aⅴ日韩av电影在线观看| 欧美日韩亚洲一区二区| 成人a视频在线观看| 欧美一级淫片丝袜脚交| 成人网页在线免费观看| 亚洲一级免费视频| 亚洲欧美中文在线视频| 国产一区二区三区在线免费观看| 久久免费视频网站| 久久69精品久久久久久国产越南| 97人洗澡人人免费公开视频碰碰碰| www日韩中文字幕在线看| 欧美亚洲免费电影| 国产精品都在这里| 国产精品69av| 亚洲最大成人免费视频| 日韩美女视频免费在线观看| 日韩av大片免费看| 亚洲成人网在线| 精品无人国产偷自产在线| 亚洲国产婷婷香蕉久久久久久| 成人美女av在线直播| 久久精品小视频| 亚洲激情在线视频| 亚洲精品美女久久久| 成人久久久久久| 中文字幕久热精品在线视频| 美日韩丰满少妇在线观看| 国产小视频国产精品| 亚洲美女av在线播放|