Blame | Last modification | View Log | RSS feed
<?php/*QBPWCF, Quick Build PHP website Component base on Fedora Linux.Copyright (C) 2014~2026 MIN ZHI, CHENThis file is part of QBPWCF.QBPWCF is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.QBPWCF is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with QBPWCF. If not, see <http://www.gnu.org/licenses/>.*/#使用命名空間qbpwcfnamespace qbpwcf;#初始化輸出$output=array();#取得 lib pathexec("php -f ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../../../bin/libexec/folderOfUsrLib.php"),$output,$status);#如果執行失敗if($status!==0){#debugvar_dump(__LINE__,$output);#結束執行,回傳shell 1.exit(1);}#if end#儲存lib path$folderOfUsrLib=$output[0];#初始化輸出$output=array();#以該檔案的實際位置的 lib path 為 include path 首位exec("cd ".escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../../../".$folderOfUsrLib."/qbpwcf").";pwd;",$output,$status);set_include_path($output[0].PATH_SEPARATOR.get_include_path());#匯入套件require_once("allInOne.php");#建議的log位置$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";#無窮迴圈while(true){#函式說明:#一次取得純文字檔案的內容.#回傳結果:#$result["status"],"true"代表移除成功,"false"代表移除失敗.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["cmd"],執行的指令.#$result["content"],取得的檔案內容,若沒有內容則為null,反之為字串.#$result["length"],取得的內容長度.#$result["EOF"],識別是否已經到檔案結尾,"true"代表是,"false"代表不是.#$result["nextLine"],整數,下一行的行號,亦即下次來讀取下一行時,lineStart參數要給予的數值.#$result["fileSize"],整數,檔案的大小,用於下次來讀取下一行時,preFileSize參數要給予的數值.#必填參數:#$conf["file"],字串,檔案的路徑與名稱.$conf["file"]="ssl_access_log";#可省略參數:#如果有 $lineStartif(isset($lineStart)){#$conf["lineStart"],整數,要從第幾行開始,起始點為1.$conf["lineStart"]=$lineStart;}#if end#如果有 preFileSizeif(isset($preFileSize)){#$conf["preFileSize"],整數,上次透過本函式取得的fileSize結果,用於確認檔案是否有被rotate過,預設不設置.$conf["preFileSize"]=$preFileSize;}#if end#可省略參數:#無#參考資料:#無.#備註:#無$getTextFilePart=fileAccess::getTextFilePart($conf);#取得當前讀取的行號.$lineNo=$conf["lineStart"];#卸除變數,避免後續引用錯誤.unset($conf);#如果執行異常if($getTextFilePart["status"]==="false"){#debugvar_dump($getTextFilePart);#結束執行並回傳 shell 1exit(1);}#if end#取得下次要取得的行號$lineStart=$getTextFilePart["nextLine"];#取得檔案的大小$preFileSize=(int)$getTextFilePart["fileSize"];#如果沒有內容if(!isset($getTextFilePart["content"])){#跳出 while loopbreak;}#if end#取得行內容$lineContent=$getTextFilePart["content"];#取得目前的記憶體使用狀況$memoeryUsage=\memory_get_usage();#提示取得的內容與記憶體使用狀況echo "memUsage:".$memoeryUsage." lineNo:".$lineNo." "."content:".$lineContent;#如果已經到檔案結尾了if($getTextFilePart["EOF"]==="true"){#跳出 while loopbreak;}#if end}#while end?>