Subversion Repositories php-qbpwcf

Rev

Rev 226 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/*

        QBPWCF, Quick Build PHP website Component base on Fedora Linux.
    Copyright (C) 2014~2026 MIN ZHI, CHEN

    This file is part of QBPWCF.

    QBPWCF is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the 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 of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with QBPWCF.  If not, see <http://www.gnu.org/licenses/>.

*/
namespace qbpwcf;

/*
類別說明:
跟Log應用有關的類別.
備註:
無.
*/
class logs{

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #可省略參數:
        #無.
        #參考資料:
        #__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        #備註:
        #無.
        */
        public function __call($method,$arguments){

                #取得當前執行的函式
                $result["function"]=__FUNCTION__;

                #設置執行不正常
                $result["status"]="false";

                #設置執行錯誤
                $result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";

                #設置所丟入的參數
                $result["error"][]=$arguments;

                #回傳結果
                return $result;

                }#function __call end

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #可省略參數:
        #無.
        #參考資料:
        #__callStatic=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        #備註:
        #無.
        */
        public static function __callStatic($method,$arguments){

                #取得當前執行的函式
                $result["function"]=__FUNCTION__;

                #設置執行不正常
                $result["status"]="false";

                #設置執行錯誤
                $result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";

                #設置所丟入的參數
                $result["error"][]=$arguments;

                #回傳結果
                return $result;

                }#function __callStatic end

        /*
        #函式說明:
        #撰寫log
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #$result["content"],要寫入log的內容字串.
        #必填參數:
        #$conf["path"],字串,log檔案的路徑與名稱.
        $conf["path"]="";
        #$conf["content"],any,要寫的內容,若內容不為字串則會用var_dump的格式寫入.
        $conf["content"]="";
        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
        #$conf["rewrite"]="false";
        #$conf["returnOnly"],預設為"false",會寫入到log檔案.若為"true"則不會寫入log.
        #$conf["returnOnly"]="true";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function record(&$conf){

                #初始化要回傳的結果
                $result=array();

                #儲存當前執行的函數
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #儲存使用的參數
                $result["argu"]=$conf;

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],設置給予的參數.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("path","content","fileArgu");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string",null,"string");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                $conf["variableCheck::checkArguments"]["canNotBeEmpty"]=array("path","fileArgu");
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("rewrite","returnOnly");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false","false");
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                #備註:
                #無.
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查失敗
                if($checkArguments["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkArguments["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 content 參數不為 string
                if(gettype($conf["content"])!=="string"){

                        #函式說明:
                        #記錄程式輸出的結果.
                        #回傳結果:
                        #$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
                        #$result["error"],錯誤訊息.
                        #$result["content"],程式的輸出.
                        #$result["function"],當前執行的涵式
                        #必填參數:
                        #$conf["code2run"],字串陣列,爲要運行的程式內容,每個元素代表一段php程式.內容不必含有php tag,但結尾必須為「;」.
                        $conf["record::getOutput"]["code2run"]=array("var_dump(\$varPassed[0]);");
                        #可省略參數:
                        #可省略參數:
                        #$conf["varPassed"],陣列,為要使用到的變數,在code2run參數裡面"\$varPassed[n]"代表第n+1個變數.
                        $conf["record::getOutput"]["varPassed"]=array($conf["content"]);
                        #參考資料:
                        #無.
                        #備註:
                        #無.
                        $getOutput=record::getOutput($conf["record::getOutput"]);
                        unset($conf["record::getOutput"]);

                        #如果執行失敗
                        if($getOutput["status"]==="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$getOutput;

                                #回傳結果
                                return $result;

                                }#if end

                        #取得輸出並複寫成字串
                        $conf["content"]=$getOutput["content"];

                        }#if end

                #如果要寫入 log 檔案
                if($conf["returnOnly"]==="false"){

                        #涵式說明:
                        #將字串寫入到檔案
                        #回傳的結果:
                        #$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數名稱.
                        #$result["fileInfo"],實際上寫入的檔案資訊陣列.
                        #$result["fileInfo"]["createdFileName"],建立好的檔案名稱.
                        #$result["fileInfo"]["createdFilePath"],檔案建立的路徑.
                        #$result["fileInfo"]["createdFilePathAndName"].建立好的檔案名稱與路徑.
                        #$result["argu"],使用的參數.
                        #必填的參數:
                        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                        $conf["fileAccess::writeTextIntoFile"]["fileArgu"]=$conf["fileArgu"];
                        #可省略的參數:
                        #$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
                        $conf["fileAccess::writeTextIntoFile"]["fileName"]=$conf["path"];
                        #$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
                        $conf["fileAccess::writeTextIntoFile"]["inputString"]=$conf["content"];

                        #如果要重新寫入
                        if($conf["rewrite"]==="true"){

                                #$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
                                $conf["fileAccess::writeTextIntoFile"]["writeMethod"]="w";

                                }#if end

                        #反之
                        else{

                                #$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
                                $conf["fileAccess::writeTextIntoFile"]["writeMethod"]="a";

                                }#else end

                        #$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
                        #$conf["checkRepeat"]="";
                        #$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
                        #$conf["filenameExtensionStartPoint"]="";
                        #$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
                        #$conf["repeatNameRule"]="";
                        $conf["fileAccess::writeTextIntoFile"]["web"]="false";#檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
                        #$conf["web"]="true";
                        $writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
                        unset($conf["fileAccess::writeTextIntoFile"]);

                        #如果寫入檔案失敗
                        if($writeTextIntoFile["status"]==="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$writeTextIntoFile;

                                #回傳結果
                                return $result;

                                }#if end

                        }#if end

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function record end

        /*
        #函式說明:
        #解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #$result["content"],陣列,每個有關鍵字的訊息陣列.
        #$result["lineNum"],數字,當前行數.
        #必填參數:
        #$conf["path"],log檔案的路徑與名稱.
        $conf["path"]="";
        #$conf["msgStart"],字串,用來識別訊息開頭的開頭關鍵字.
        $conf["msgStart"]="";
        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["sessionName"],字串,儲存log的session變數key.
        #$conf["sessionName"]="";
        #$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
        #$conf["line2start"]="";
        #$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
        #$conf["linesPerTime"]="10";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function parseLog2session($conf){

                #初始化要回傳的結果
                $result=array();

                #儲存當前執行的函數
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #儲存使用的參數
                $result["argu"]=$conf;

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],設置給予的參數.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("path","msgStart","fileArgu");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("logs::parseSessionLog",null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查失敗
                if($checkArguments["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkArguments["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #涵式說明:
                #從檔案尾部開始讀取
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息.
                #$result["function"],當前執行的函數名稱.
                #$result["argu"],所使用的參數.
                #$result["content"],讀取到的內容陣列.
                #$result["totalLineCount"],檔案的總共行數.
                #$result["lines"],取得輸出的行數.
                #$result["lineNum"],取得當前行數.
                #必填參數:
                #$conf["file"],字串,檔案的路徑與名稱.
                $conf["fileAccess::tail"]["file"]=$conf["path"];
                #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                $conf["fileAccess::tail"]["fileArgu"]=$conf["fileArgu"];
                #可省略參數:

                #如果有 $conf["line2start"]
                if(isset($conf["line2start"])){

                        #$conf["line2start"],字串,從第幾列開始,預設為總行書減去linesPerTime+1.
                        $conf["fileAccess::tail"]["line2start"]=$conf["line2start"];

                        }#if end

                #如果有設置 $conf["linesPerTime"]
                if(isset($conf["linesPerTime"])){

                        #$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
                        $conf["fileAccess::tail"]["linesPerTime"]=$conf["linesPerTime"];

                        }#if end

                $tail=fileAccess::tail($conf["fileAccess::tail"]);
                unset($conf["fileAccess::tail"]);

                #如果讀取內容失敗
                if($tail["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$tail;

                        #回傳結果
                        return $result;

                        }#if end

                #取得當前行數
                $result["lineNum"]=$tail["lineNum"];

                #函式說明:
                #取得session變數裡面的數值,然後卸除該session變數
                #回傳的結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
                #$result["error"],錯誤訊息.
                #$result["founded"],是否找到session變數,"true"代表找到,"false"代表沒找到.
                #$result["content"],取得的變數內容.
                #$result["function"],當前執行的函數名稱.
                #必填的參數:
                #$conf["sessionVarName"],字串,要取得內容的session變數名稱
                $conf["session::getSessionValu"]["sessionVarName"]=$conf["sessionName"];
                #可省略的參數:
                #$conf["unsetSessionVar"],字串,代表要卸除session變數,預設為"false"不卸除,"true"代表要卸除.
                #$conf["unsetSessionVar"]="true";
                #$conf["autoCreate"],字串,是否要自動建立該 session 變數,"true"代表要,預設為"false"代表不要.
                $conf["session::getSessionValu"]["autoCreate"]="true";
                #$conf["initVal"],字串,"autoCreate"參數為"true"時,要給予的初始內容,預設為"".
                $conf["session::getSessionValu"]["initVal"]=array();
                #參考資料:
                #call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
                #可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
                #卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
                $getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
                unset($conf["session::getSessionValu"]);

                #如果讀取內容失敗
                if($getSessionValue["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 session 變數不存在
                if($getSessionValue["founded"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #初始化訊息陣列為空
                #$_SESSION[$conf["sessionName"]]=array();

                #函式說明:
                #取得session變數裡面的數值,然後卸除該session變數
                #回傳的結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
                #$result["error"],錯誤訊息.
                #$result["founded"],是否找到session變數,"true"代表找到,"false"代表沒找到.
                #$result["content"],取得的變數內容.
                #$result["function"],當前執行的函數名稱.
                #必填的參數:
                #$conf["sessionVarName"],字串,要取得內容的session變數名稱
                $conf["session::getSessionValu"]["sessionVarName"]=$conf["sessionName"]."_msg1";
                #可省略的參數:
                #$conf["unsetSessionVar"],字串,代表要卸除session變數,預設為"false"不卸除,"true"代表要卸除.
                #$conf["unsetSessionVar"]="true";
                #$conf["autoCreate"],字串,是否要自動建立該 session 變數,"true"代表要,預設為"false"代表不要.
                $conf["session::getSessionValu"]["autoCreate"]="true";
                #$conf["initVal"],字串,"autoCreate"參數為"true"時,要給予的初始內容,預設為"".
                $conf["session::getSessionValu"]["initVal"]="false";
                #參考資料:
                #call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
                #可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
                #卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
                $getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
                unset($conf["session::getSessionValu"]);

                #如果讀取內容失敗
                if($getSessionValue["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 session 變數不存在
                if($getSessionValue["founded"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #取得session變數裡面的數值,然後卸除該session變數
                #回傳的結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
                #$result["error"],錯誤訊息.
                #$result["founded"],是否找到session變數,"true"代表找到,"false"代表沒找到.
                #$result["content"],取得的變數內容.
                #$result["function"],當前執行的函數名稱.
                #必填的參數:
                #$conf["sessionVarName"],字串,要取得內容的session變數名稱
                $conf["session::getSessionValu"]["sessionVarName"]=$conf["sessionName"]."_msg2";
                #可省略的參數:
                #$conf["unsetSessionVar"],字串,代表要卸除session變數,預設為"false"不卸除,"true"代表要卸除.
                #$conf["unsetSessionVar"]="true";
                #$conf["autoCreate"],字串,是否要自動建立該 session 變數,"true"代表要,預設為"false"代表不要.
                $conf["session::getSessionValu"]["autoCreate"]="true";
                #$conf["initVal"],字串,"autoCreate"參數為"true"時,要給予的初始內容,預設為"".
                $conf["session::getSessionValu"]["initVal"]="false";
                #參考資料:
                #call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
                #可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
                #卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
                $getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
                unset($conf["session::getSessionValu"]);

                #如果讀取內容失敗
                if($getSessionValue["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 session 變數不存在
                if($getSessionValue["founded"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #取得session變數裡面的數值,然後卸除該session變數
                #回傳的結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
                #$result["error"],錯誤訊息.
                #$result["founded"],是否找到session變數,"true"代表找到,"false"代表沒找到.
                #$result["content"],取得的變數內容.
                #$result["function"],當前執行的函數名稱.
                #必填的參數:
                #$conf["sessionVarName"],字串,要取得內容的session變數名稱
                $conf["session::getSessionValu"]["sessionVarName"]=$conf["sessionName"]."_aMsg";
                #可省略的參數:
                #$conf["unsetSessionVar"],字串,代表要卸除session變數,預設為"false"不卸除,"true"代表要卸除.
                #$conf["unsetSessionVar"]="true";
                #$conf["autoCreate"],字串,是否要自動建立該 session 變數,"true"代表要,預設為"false"代表不要.
                $conf["session::getSessionValu"]["autoCreate"]="true";
                #$conf["initVal"],字串,"autoCreate"參數為"true"時,要給予的初始內容,預設為"".
                $conf["session::getSessionValu"]["initVal"]=array();
                #參考資料:
                #call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
                #可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
                #卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
                $getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
                unset($conf["session::getSessionValu"]);

                #如果讀取內容失敗
                if($getSessionValue["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 session 變數不存在
                if($getSessionValue["founded"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$getSessionValue;

                        #回傳結果
                        return $result;

                        }#if end

                /*

                #函式說明:
                #撰寫log
                #回傳結果:
                #$result["status"],狀態,"true"或"false".
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前函式的名稱.
                #$result["argu"],使用的參數.
                #必填參數:
                #$conf["path"],log檔案的路徑與名稱.
                $conf["logs::record"]["path"]="/var/www/html/latest/tailJavaLogRes2.php.log";
                #$conf["content"],字串,要寫的內容.
                $conf["logs::record"]["content"]=json_encode($tail["content"]).PHP_EOL.PHP_EOL;
                #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                $conf["logs::record"]["fileArgu"]=__FILE__;
                #可省略參數:
                #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
                #$conf["rewrite"]="false";
                $record=logs::record($conf["logs::record"]);
                unset($conf["logs::record"]);

                #如果執行失敗
                if($record["status"]==="false")
                {
                        #印出結果
                        var_dump($record);

                        #結束執行
                        exit;

                }#if end

                */

                #針對讀取到每行內容
                foreach($tail["content"] as $line){

                        #儲存內容到單一訊息變數陣列
                        $_SESSION[$conf["sessionName"]."_aMsg"][]=$line;

                        #如果被搜尋的長度大於等於關鍵字長度
                        if( strlen($line)>=strlen($conf["msgStart"]) ){

                                #涵式說明:
                                #取得符合特定字首與字尾的字串
                                #回傳的結果:
                                #$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
                                #$result["function"],當前執行的函數名稱.
                                #$result["error"],錯誤訊息陣列.
                                #$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
                                #$result["returnString"],爲符合字首條件的字串內容。
                                #$result["argu"],使用的參數.
                                #必填參數:
                                #$conf["checkString"],字串,要檢查的字串.
                                $conf["search::getMeetConditionsString"]["checkString"]=$line;
                                #可省略參數:
                                #$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
                                $conf["search::getMeetConditionsString"]["frontWord"]=$conf["msgStart"];
                                #$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
                                #$conf["tailWord"]="";
                                #參考資料:
                                #str_spilt(),可以將字串依照字母分割成一個個陣列字串。
                                $getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
                                unset($conf["search::getMeetConditionsString"]);

                                #如果讀取內容失敗
                                if($getMeetConditionsString["status"]==="false"){

                                        #設置錯誤識別
                                        $result["status"]="false";

                                        #設置錯誤訊息
                                        $result["error"]=$getMeetConditionsString;

                                        #回傳結果
                                        return $result;

                                        }#if end

                                #如果是訊息的開頭
                                if($getMeetConditionsString["founded"]==="true"){

                                        #如果 發現第一個訊息開頭 的識別為 "false"
                                        if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){

                                                #將其設置為 "true"
                                                $_SESSION[$conf["sessionName"]."_msg1"]="true";

                                                }#if end

                                        #反之如果 發現第二個訊息開頭 的識別為 "false"
                                        else if($_SESSION[$conf["sessionName"]."_msg2"]==="false"){

                                                #將其設置為 "true"
                                                $_SESSION[$conf["sessionName"]."_msg2"]="true";

                                                }#else end

                                        #如果遇到已經找到兩個訊息的開頭
                                        if($_SESSION[$conf["sessionName"]."_msg1"]==="true" && $_SESSION[$conf["sessionName"]."_msg2"]==="true"){

                                                #移除下個訊息的時間戳記
                                                unset($_SESSION[$conf["sessionName"]."_aMsg"][count($_SESSION[$conf["sessionName"]."_aMsg"])-1]);

                                                /*
                                                #debug
                                                #函式說明:
                                                #撰寫log
                                                #回傳結果:
                                                #$result["status"],狀態,"true"或"false".
                                                #$result["error"],錯誤訊息陣列.
                                                #$result["function"],當前函式的名稱.
                                                #$result["argu"],使用的參數.
                                                #必填參數:
                                                #$conf["path"],log檔案的路徑與名稱.
                                                $conf["logs::record"]["path"]=basename(__FILE__).".log";
                                                #$conf["content"],字串,要寫的內容.
                                                $conf["logs::record"]["content"]="msg:".json_encode($_SESSION[$conf["sessionName"]."_aMsg"]).PHP_EOL;
                                                #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                                                $conf["logs::record"]["fileArgu"]=__FILE__;
                                                #可省略參數:
                                                #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
                                                #$conf["rewrite"]="false";
                                                logs::record($conf["logs::record"]);
                                                unset($conf["logs::record"]);
                                                */

                                                #儲存單一訊息陣列
                                                $_SESSION[$conf["sessionName"]][]=$_SESSION[$conf["sessionName"]."_aMsg"];

                                                #初始化訊息的內容為時間戳記而已
                                                $_SESSION[$conf["sessionName"]."_aMsg"]=array($line);

                                                #設置 發現第二個訊息開頭 的識別為 "false"
                                                $_SESSION[$conf["sessionName"]."_msg2"]==="false";

                                                }#if end

                                        }#if end

                                }#if end

                        #到這邊為訊息中間的內容
                        #do nothing...

                        #如果 發現第一個訊息開頭 的識別為 "false"
                        if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){

                                #將其設置為 空陣列
                                $_SESSION[$conf["sessionName"]."_aMsg"]=array();

                                }#if end

                        }#foreach end

                #設置要回傳的訊息陣列
                $result["content"]=$_SESSION[$conf["sessionName"]];

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function parseLog2session end

        /*
        #函式說明:
        #解析讀取到的log內容,分段成數個訊息(可以有多種)儲存到session陣列中並回傳完整的訊息部分.
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #$result["content"],陣列,每個有關鍵字的訊息陣列.
        #$result["lineNum"],數字,當前行數.
        #必填參數:
        #$conf["path"],log檔案的路徑與名稱.
        $conf["path"]="";
        #$conf["msgStart"],字串陣列,用來識別訊息開頭的開頭關鍵字,支援多種訊息的開頭.
        $conf["msgStart"]=array("");
        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["sessionName"],字串,儲存log的session變數key.
        #$conf["sessionName"]="";
        #$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
        #$conf["line2start"]="";
        #$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
        #$conf["linesPerTime"]="10";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function parseLog2sessionWithMultiMsgStartSupport($conf){

                #初始化要回傳的結果
                $result=array();

                #儲存當前執行的函數
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #儲存使用的參數
                $result["argu"]=$conf;

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],設置給予的參數.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("path","msgStart","fileArgu");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array","string");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("logs::parseSessionLog",null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查失敗
                if($checkArguments["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkArguments["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #針對每種訊息格式的開頭
                foreach($conf["msgStart"] as $msgStart){

                        #函式說明:
                        #解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
                        #回傳結果:
                        #$result["status"],狀態,"true"或"false".
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前函式的名稱.
                        #$result["argu"],使用的參數.
                        #$result["content"],陣列,每個有關鍵字的訊息陣列.
                        #$result["lineNun"],數字,當前行數.
                        #必填參數:
                        #$conf["path"],log檔案的路徑與名稱.
                        $conf["logs::parseLog2session"]["path"]=$conf["path"];
                        #$conf["msgStart"],字串,用來識別訊息開頭的開頭關鍵字.
                        $conf["logs::parseLog2session"]["msgStart"]=$msgStart;
                        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                        $conf["logs::parseLog2session"]["fileArgu"]=$conf["fileArgu"];
                        #可省略參數:
                        #$conf["sessionName"],字串,儲存log的session變數key.
                        $conf["logs::parseLog2session"]["sessionName"]=$conf["sessionName"];

                        #如果有設定 $conf["line2start"]
                        if(isset($conf["line2start"])){

                                #$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
                                $conf["logs::parseLog2session"]["line2start"]=$conf["line2start"];

                                }#if end

                        #如果有設定 $conf["linesPerTime"]
                        if(isset($conf["linesPerTime"])){

                                #$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
                                $conf["logs::parseLog2session"]["linesPerTime"]=$conf["linesPerTime"];

                                }#if end

                        $parseLog2session=logs::parseLog2session($conf["logs::parseLog2session"]);
                        unset($conf["logs::parseLog2session"]);

                        #如果執行失敗
                        if($parseLog2session["status"]==="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$parseLog2session;

                                #回傳結果
                                return $result;

                                }#if end

                        #記錄當前行數.
                        $result["lineNum"]=$parseLog2session["lineNum"];

                        #記錄結果
                        $resultContent[]=$parseLog2session["content"];

                        }#foreach end

                #初始化要回傳的內容
                $result["content"]=array();

                #合併陣列
                foreach($resultContent as $rc){

                        #函式說明:
                        #將多個一維陣列串聯起來,key從0開始排序.
                        #回傳的結果:
                        #$result["status"],"true"表執行正常,"false"代表執行不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數.
                        #$result["content"],合併好的一維陣列.
                        #必填的參數
                        #$conf["inputArray"],陣列,要合併的一維陣列變數,例如:=array($array1,$array2);
                        $conf["arrays::mergeArray"]["inputArray"]=array($result["content"],$rc);
                        #可省略的參數:
                        #$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
                        #$conf["allowRepeat"]="true";
                        $mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
                        unset($conf["arrays::mergeArray"]);

                        #如果檢查失敗
                        if($mergeArray["status"]=="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$mergeArray;

                                #回傳結果
                                return $result;

                                }#if end

                        #取得合併好的一維陣列
                        $result["content"]=$mergeArray["content"];

                        }#foreach end

                #重新設置 sesssion 變數
                #涵式說明:
                #建立session變數,並指派其內容
                #回傳的結果:
                #$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.
                #必填的參數:
                #$conf["sessionName"],字串,要建立的session變數名稱,建議可採用name1.name2.name3的格式.
                $conf["session::create"]["sessionName"]=$conf["sessionName"];
                #可省略的參數:
                #$conf["sessionValue"],字串,session變數的內容,預設為"".
                $conf["session::create"]["sessionValue"]=$result["content"];
                $create=session::create($conf["session::create"]);
                unset($conf["session::create"]);

                #如果執行失敗
                if($create["status"]==="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$create;

                        #回傳結果
                        return $result;

                        }#if end

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#parseLog2sessionWithMultiMsgStartSupport

        /*
        #函式說明:
        #解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #$result["content"],陣列,有開頭關鍵字出現的訊息陣列.
        #必填參數:
        #$conf["msgs"],陣列,由多個訊息陣列組成.
        $conf["msgs"]=array();
        #$conf["keyWord"],陣列,每個關鍵字.
        $conf["keyWord"]=array();
        #$conf["keyWordAddr"],陣列,關鍵字的位置是第幾個.
        $conf["keyWordAddr"]=array();
        #可省略參數:
        #無
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function filterMsgPack($conf){

                #初始化要回傳的結果
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果沒有參數
                if(func_num_args()==0){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]="函數".$result["function"]."需要參數";

                        #回傳結果
                        return $result;

                        }#if end

                #取得參數
                $result["argu"]=$conf;

                #如果 $conf 不為陣列
                if(gettype($conf)!=="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if(is_null($conf)){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #初始化符合條件的訊息陣列
                $result["content"]=array();

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],設置給予的參數.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("msgs","keyWord","keyWordAddr");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array","array");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("logs::parseSessionLog",null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查失敗
                if($checkArguments["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkArguments["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #初始化關鍵字最遠的位置為0
                $farAddr=0;

                #尋找關鍵字裡面位置最遠者
                foreach($conf["keyWordAddr"] as $kwa){

                        #如果發現更遠的
                        if($kwa>$farAddr){

                                #套用之
                                $farAddr=$kwa;

                                }#if end

                        }#foreach end

                #針對每個訊息
                foreach($conf["msgs"] as $msg){

                        /*
                        #函式說明:
                        #撰寫log
                        #回傳結果:
                        #$result["status"],狀態,"true"或"false".
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前函式的名稱.
                        #$result["argu"],使用的參數.
                        #必填參數:
                        #$conf["path"],log檔案的路徑與名稱.
                        $conf["logs::record"]["path"]=basename(__FILE__).".log";
                        #$conf["content"],字串,要寫的內容.
                        $conf["logs::record"]["content"]="msg:".json_encode($msg).PHP_EOL;
                        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                        $conf["logs::record"]["fileArgu"]=__FILE__;
                        #可省略參數:
                        #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
                        #$conf["rewrite"]="false";
                        logs::record($conf["logs::record"]);
                        unset($conf["logs::record"]);
                        */

                        #針對訊息中的每一列
                        foreach($msg as $line){

                                #如果該行內容的長度不到關鍵字的位置
                                if(strlen($line)<($farAddr+1)){

                                        #換下一列
                                        continue;

                                        }#if end

                                #到這裡代表長度ok

                                #debug
                                $left=array();$right=array();

                                #針對每個關鍵字
                                foreach($conf["keyWord"] as $index =>$keyWord){

                                        #如果被搜尋的列位置不等於對應的關鍵字
                                        if($line[$conf["keyWordAddr"][$index]]!==$keyWord){

                                                #換下一列
                                                continue 2;

                                                }#if end

                                        $left[]=$line[$conf["keyWordAddr"][$index]];
                                        $right[]=$keyWord;

                                        }#foreach end

                                /*
                                #函式說明:
                                #撰寫log
                                #回傳結果:
                                #$result["status"],狀態,"true"或"false".
                                #$result["error"],錯誤訊息陣列.
                                #$result["function"],當前函式的名稱.
                                #$result["argu"],使用的參數.
                                #必填參數:
                                #$conf["path"],log檔案的路徑與名稱.
                                $conf["logs::record"]["path"]=basename(__FILE__).".log";
                                #$conf["content"],字串,要寫的內容.
                                $conf["logs::record"]["content"]="left:".json_encode($left)." right:".json_encode($right).PHP_EOL;
                                #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
                                $conf["logs::record"]["fileArgu"]=__FILE__;
                                #可省略參數:
                                #$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
                                #$conf["rewrite"]="false";
                                logs::record($conf["logs::record"]);
                                unset($conf["logs::record"]);
                                */

                                #到這裡代關鍵字都符合位置

                                #儲存符合條件的訊息
                                $result["content"][]=$msg;

                                }#foreach end

                        }#foreach end

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function filterMsgPack end

        /*
        #函式說明:
        #解析多個訊息陣列,尋找符合其中一組關鍵字出現的訊息,並回傳之.
        #回傳結果:
        #$result["status"],狀態,"true"或"false".
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前函式的名稱.
        #$result["argu"],使用的參數.
        #$result["content"],陣列,有開頭關鍵字出現的訊息陣列.
        #必填參數:
        #$conf["msgs"],陣列,由多個訊息陣列組成.
        $conf["msgs"]=array();
        #$conf["keyWords"],二維陣列,每個關鍵字.
        $conf["keyWords"]=array(array());
        #$conf["keyWordsAddr"],二維陣列,關鍵字的位置是第幾個.
        $conf["keyWordsAddr"]=array(array());
        #可省略參數:
        #無
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function filterMsgPackWithMultiKeywordSupport($conf){

                #初始化要回傳的結果
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果沒有參數
                if(func_num_args()==0){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]="函數".$result["function"]."需要參數";

                        #回傳結果
                        return $result;

                        }#if end

                #取得參數
                $result["argu"]=$conf;

                #如果 $conf 不為陣列
                if(gettype($conf)!=="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if(is_null($conf)){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #初始化符合條件的訊息陣列
                $result["content"]=array();

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],設置給予的參數.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("msgs","keyWords","keyWordsAddr");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array","array");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("sessionName","line2start","linesPerTime");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("logs::parseSessionLog",null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查失敗
                if($checkArguments["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkArguments["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #針對每個 $conf["keyWords"]
                foreach($conf["keyWords"] as $index=>$keyWord){

                        #函式說明:
                        #解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
                        #回傳結果:
                        #$result["status"],狀態,"true"或"false".
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前函式的名稱.
                        #$result["argu"],使用的參數.
                        #$result["content"],陣列,有開頭關鍵字出現的訊息陣列.
                        #必填參數:
                        #$conf["msgs"],陣列,由多個訊息陣列組成.
                        $conf["logs::filterMsgPack"]["msgs"]=$conf["msgs"];
                        #$conf["keyWord"],陣列,每個關鍵字.
                        $conf["logs::filterMsgPack"]["keyWord"]=$keyWord;
                        #$conf["keyWordAddr"],陣列,關鍵字的位置是第幾個.
                        $conf["logs::filterMsgPack"]["keyWordAddr"]=$conf["keyWordsAddr"][$index];
                        #可省略參數:
                        #無
                        $filterMsgPack=logs::filterMsgPack($conf["logs::filterMsgPack"]);
                        unset($conf["logs::filterMsgPack"]);

                        #如果尋找關鍵字出現的訊息失敗
                        if($filterMsgPack["status"]==="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$filterMsgPack;

                                #回傳結果
                                return $result;

                                }#if end

                        #儲存有關鍵字的訊息
                        $resContent[]=$filterMsgPack["content"];

                        }#foreach end

                #合併陣列
                foreach($resContent as $rc){

                        #函式說明:
                        #將多個一維陣列串聯起來,key從0開始排序.
                        #回傳的結果:
                        #$result["status"],"true"表執行正常,"false"代表執行不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數.
                        #$result["content"],合併好的一維陣列.
                        #必填的參數
                        #$conf["inputArray"],陣列,要合併的一維陣列變數,例如:=array($array1,$array2);
                        $conf["arrays::mergeArray"]["inputArray"]=array($result["content"],$rc);
                        #可省略的參數:
                        #$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
                        #$conf["allowRepeat"]="true";
                        $mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
                        unset($conf["arrays::mergeArray"]);

                        #如果檢查失敗
                        if($mergeArray["status"]=="false"){

                                #設置錯誤識別
                                $result["status"]="false";

                                #設置錯誤訊息
                                $result["error"]=$mergeArray;

                                #回傳結果
                                return $result;

                                }#if end

                        #取得合併好的一維陣列
                        $result["content"]=$mergeArray["content"];

                        }#foreach end

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function filterMsgPackWithMultiKeywordSupport end

        }#class log end