Subversion Repositories php-qbpwcf

Rev

Rev 239 | Go to most recent revision | 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;

/*
類別說明:
與字串處理相關的類別.
備註:
無.
*/
class stringProcess{

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

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

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

                #設置執行錯誤
                $result["error"][]="欲呼叫的". get_called_class()."->".$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
        #get namespace and class=>https://www.php.net/manual/en/function.get-called-class.php
        #備註:
        #無.
        */
        public static function __callStatic($method,$arguments){

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

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

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

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

                #回傳結果
                return $result;

                }#function __callStatic end

        /*
        #函式說明:
        #將含有數個黑點的字串,處理成只剩下含有最後一個黑點的字串,結果會回傳合併後的字串。
        #如果字串中沒有黑點則會回傳原始字串
        #回傳結果:
        #$result["status"],執行正常與否,"true"代表正常;"false"代表不正常
        #$result["error"],錯誤訊息陣列
        #$result["function"],當前函數名稱
        #$result["content"],只剩下最後一個黑點的字串
        #必填參數:
        #$conf["stringIn"],字串,爲要進行處理的字串
        $conf["stringIn"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function solveDotProblems(&$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["content"]="";

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

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #宣告$str為string
                $str = "";

                #取得該字串有幾個"."
                $numberDot = substr_count($conf["stringIn"],".");

                #開始分離
                $changedString = explode(".",$conf["stringIn"]);

                #開始重組
                for($i=0;$i<=($numberDot-1);$i++){

                        #將黑點前的所有字串合併
                        $str = $str.$changedString[$i];

                        }#for end

                #如果黑點不等於0個
                if($numberDot!=0){

                        #加上黑點
                        $str = $str.".";

                        #加上副檔名
                        $str = $str.$changedString[$numberDot];

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

                        #設置要回傳的字串
                        $result["content"]=$str;

                        #回傳結果
                        return $result;

                        }#if end

                #反之,代表沒有副檔名
                else{

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

                        #設置要回傳的字串
                        $result["content"]=$conf["stringIn"];

                        #回傳結果
                        return $result;

                        }#else end

                }#function solveDotProblems end

        /*
        #函式說明:
        #將固定格式的字串開頭移除一個,例如"a,b,c,null"變成"b,c,null"
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列
        #$result["function"],當前執行的函數名稱.
        #$result["argu"],使用的參數.
        #$result["dropElement"],被丟棄的元素.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串。
        $conf["stringIn"]="";
        #可省略參數:
        #$conf["spiltSymbol"],字串,爲以哪個符號作爲分割,預設為",".
        #$conf["spiltSymbol"]="";
        #$conf["unshift"],字串,是否要改成丟棄最後一個元素,預設為"false";反之為"true".
        #$conf["unshift"]="false";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function stringShift(&$conf){

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("spiltSymbol","unshift");
                #$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");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #將特定符號間隔的字串"a,b,c"變成陣列.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["function"],當前執行的function名稱.
                #$result["argu"],使用的參數.
                #$result["error"],錯誤訊息陣列.
                #$result["content"],處理好的內容.
                #必填參數:
                #$conf["inputStr"],字串,要轉一維陣列的字串
                $conf["arrays::stringToArray"]["inputStr"]=$conf["stringIn"];
                #可省略參數:
                #$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為","
                $conf["arrays::stringToArray"]["spiltSymbol"]=$conf["spiltSymbol"];
                $stringToArray=arrays::stringToArray($conf["arrays::stringToArray"]);
                unset($conf["arrays::stringToArray"]);

                #如果轉換失敗
                if($stringToArray["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得分割好的陣列
                $array=$stringToArray["content"];

                #如果沒有要丟棄結尾元素
                if($conf["unshift"]==="false"){

                        #取得被丟棄的元素
                        $result["dropElement"]=array_shift($array);

                        }#if end

                #反之要丟棄開頭元素
                else{

                        #取得被丟棄的元素,參考資料https://www.php.net/manual/en/function.array-pop.php
                        $result["dropElement"]=array_pop($array);

                        }#else end

                #函式說明:
                #將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["function"],當前執行的function名稱
                #$result["error"],錯誤訊息陣列.
                #$result["content"],處理好的字串.
                #$result["argu"],使用的參數.
                #必填參數:
                #$conf["inputArray"],字串陣列,要轉成字串的一維陣列.
                $conf["arrays::arrayToString"]["inputArray"]=$array;
                #可省略參數:
                #$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為;
                $conf["arrays::arrayToString"]["spiltSymbol"]=$conf["spiltSymbol"];
                #$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
                $conf["arrays::arrayToString"]["skipEnd"]="true";
                $arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
                unset($conf["arrays::arrayToString"]);

                #如果轉換失敗
                if($arrayToString["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得處理好的字串
                $result["content"]=$arrayToString["content"];

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

                #回傳結果
                return $result;

                }#function stringShift end

        /*
        #函式說明:
        #將固定格式的字串分開,並回傳分開的結果.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列
        #$result["function"],當前執行的函數名稱.
        #$result["argu"],使用的參數.
        #$result["oriStr"],要分割的原始字串內容
        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
        #$result["dataCounts"],爲總共分成幾段
        #$result["found"],是否有在$conf["stringIn"]找到$conf["spiltSymbol"],"true"代表有找到,"false"代表沒有找到.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串.
        $conf["stringIn"]="";
        #$conf["spiltSymbol"],字串,爲以哪個符號作爲分割.
        $conf["spiltSymbol"]="";
        #可省略參數:
        #$conf["allowEmptyStr"],是否允許分割出來空字串,預設為"false"不允許;"true"代表允許.
        #$conf["allowEmptyStr"]="false";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function spiltString(&$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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("allowEmptyStr");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得 $conf["stringIn"] 的 unicode 長度
                $stringInLength=mb_strlen($conf["stringIn"],"UTF-8");

                #取得 $conf["spiltSymbol"] 的 unicode 長度
                $spiltSymbolLength=mb_strlen($conf["spiltSymbol"],"UTF-8");

                #置換$conf["stringIn"]成unicode字串
                $conf["stringIn"]=mb_substr($conf["stringIn"],0,$stringInLength,"UTF-8");

                #置換$conf["spiltSymbol"]成unicode字串
                $conf["spiltSymbol"]=mb_substr($conf["spiltSymbol"],0,$spiltSymbolLength,"UTF-8");

                #var_dump($conf["spiltSymbol"]);

                #取得該字串有幾個 $conf["spiltSymbol"]
                $numberSymbol=substr_count($conf["stringIn"],$conf["spiltSymbol"]);

                #如果裡面有分割用的符號
                if($numberSymbol!==0){

                        #設置沒有找到分割用的關鍵字
                        $result["found"]="true";

                        #依據 $spiltSymbol 分割,並將陣列變數存到 $result["dataArray"]
                        $result["dataArray"]=explode($conf["spiltSymbol"],$conf["stringIn"]);

                        #如果分割出來的結果是空的
                        if(count($result["dataArray"])==0){

                                #取得總共有多少段
                                $result["dataCounts"]=0;

                                }#if end

                        #反之分割出來不是空的
                        else{

                                #如果存在最後一個選項
                                if(isset($result["dataArray"][count($result["dataArray"])-1])){

                                        #如果最後一個選項為空
                                        if($result["dataArray"][count($result["dataArray"])-1]==""){

                                                #卸除該元素
                                                unset($result["dataArray"][count($result["dataArray"])-1]);

                                                }#if end

                                        }#if end

                                #取得總共有多少段
                                $result["dataCounts"]=count($result["dataArray"]);

                                }#else end

                        #取得原始要分割的字串
                        $result["oriStr"]=$conf["stringIn"];

                        }#if end

                #反之
                else{

                        #設置只有一個片段
                        $result["dataCounts"]=1;

                        #取得第一個片段亦即原始字串的內容
                        $result["dataArray"][0]=$conf["stringIn"];

                        #取得原始要分割的字串
                        $result["oriStr"]=$conf["stringIn"];

                        #設置沒有找到分割用的關鍵字
                        $result["found"]="false";

                        }#else end

                #如果不允許分割出空字串
                if($conf["allowEmptyStr"]=="false"){

                        #依據 $result["dataCounts"] 檢查分割好的片段內容是否有含有 "" 的內容
                        for($i=0;$i<$result["dataCounts"];$i++){

                                #如果 分割好的片段內容含有 "" 的內容
                                if($result["dataArray"][$i]==""){

                                        #卸除其變數內容
                                        unset($result["dataArray"][$i]);

                                        }#if end

                                }#for end

                        #重新計數目前分割成幾段內容
                        $result["dataCounts"]=count($result["dataArray"]);

                        #初始化計數當前要儲存的片段其key爲何
                        $cilpKey=0;

                        #重新排序分割好片段的k
                        foreach($result["dataArray"] as $cilpOriKey => $clipValue){

                                #卸除原始元素所屬key的變數
                                unset($result["dataArray"][$cilpOriKey]);

                                #取得片段的內容,並指派key
                                $result["dataArray"][$cilpKey]=$clipValue;

                                #計數當前要儲存片段的key+1
                                $cilpKey++;

                                }#foreache end

                        }#if end

                #執行到這邊代表執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#funcion spiltString end

        /*
        #函式說明:
        #將mutf7的字串轉成uft8
        #回傳結果:
        #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],轉好的字串.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串.
        $conf["stringIn"]="";
        #可省略參數:
        #無.
        #參考資料:
        #https://www.php.net/manual/en/function.mb-convert-encoding.php
        #https://www.php.net/manual/en/mbstring.supported-encodings.php
        #備註:
        #無.
        */
        public static function utf7_imap_to_utf8($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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得轉好編碼的內容
                $result["content"]=mb_convert_encoding($conf["stringIn"],"UTF8","UTF7-IMAP");

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

                #回傳結果
                return $result;

                }#function utf7_imap_to_utf8 end

        /*
        #函式說明:
        #將多個固定格式的字串分開,並回傳分開的結果
        #回傳結果:
        #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["spiltString"][$i]["oriStr"],爲第i個字串的原始內容
        #$result["spiltString"][$i]["dataArray"],爲第($i+1)個字串分割後的字串陣列
        #$result["spiltString"][$i]["dataArray"][$j],爲第($i+1)的分割好的字串的第($j+1)段內容
        #$result["spiltString"][$i]["dataCounts"],爲第($i+1)個字串分割後總共分成幾段
        #必填參數:
        #$conf["stringIn"],字串陣列,要處理的字串陣列.
        $conf["stringIn"]=array();
        #$conf["spiltSymbol"],字串,爲要以哪個符號作爲分割.
        $conf["spiltSymbol"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function spiltMutiString(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #初始化 $result_spiltString
                $result_spiltString=array();

                #根據有幾個字串要進行切割,就執行幾次
                #for($i=0;$i<count($conf["stringIn"]);$i++){
                foreach($conf["stringIn"] as $key=>$value){

                        #debug
                        #var_dump($conf["stringIn"]);

                        #將固定格式的字串分開,並回傳分開的結果。
                        #回傳的參數:
                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                        #$result["dataCounts"],爲總共分成幾段
                        #必填參數:
                        $conf_spiltString["stringIn"]=$value;#要處理的字串。
                        $conf_spiltString["spiltSymbol"]=$conf["spiltSymbol"];#爲以哪個符號作爲分割
                        $spiltString=stringProcess::spiltString($conf_spiltString);
                        unset($conf_spiltString);

                        #如果分開字串失敗
                        if($spiltString["status"]=="false"){

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

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

                                #回傳結果
                                return $result;

                                }#if end

                        #取得分割字串後的結果
                        $result_spiltString[]=$spiltString;

                        }#for end

                #取得所有字串分割的結果
                $result["spiltString"]=$result_spiltString;

                #通過以上檢測,將執行狀態結果設爲 "true"
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function spiltMutiString end

        /*
        #函式說明:
        #將多行內容的字串,依行切割,切割的依據為"\r\n".
        #回傳結果:
        #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.#$result["oriStr"],要分割的原始字串內容.
        #$result["oriStr"],要分割的原始字串內容.
        #$result["dataArray"],爲以行分割好的字串陣列內容,$result["dataArray"][$i]爲第($i+1)行的內容.
        #$result["dataCounts"],爲總共分成幾行.
        #必填參數:
        #$conf["stringIn"],字串,要處理的多行文字字串.
        $conf["stringIn"]="";
        #可省略參數:
        #無.
        #參考資料:
        #http://dragonspring.pixnet.net/blog/post/33146613-%5blinux%5d%5btips%5d%e5%8e%bb%e9%99%a4dos%e6%aa%94%e6%a1%88%e8%a1%8c%e5%b0%be%e7%9a%84%5em => windows 與 linux 換行字元
        #備註:
        #無.
        */
        public static function spiltMutiLineString(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #儲存要分割的原始字串內容
                $result["oriStr"]=$conf["stringIn"];

                #檢查多行文字是用\r\n還是\n來換行
                #函式說明:
                #檢查字串裡面有無指定的關鍵字
                #回傳結果:
                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱.
                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                #$result["keyWordCount"],找到的關鍵字數量.
                #必填參數:
                $conf["search::findKeyWord"]["keyWord"]="\r\n";#想要搜尋的關鍵字
                $conf["search::findKeyWord"]["string"]=$conf["stringIn"];#要被搜尋的字串內容
                #可省略參數:
                $conf["search::findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                $findKeyWord=search::findKeyWord($conf["search::findKeyWord"]);
                unset($conf["search::findKeyWord"]);

                #如果檢查出錯
                if($findKeyWord["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #預設換行的符號
                $spiltSymbol="\n";

                #如果有找到關鍵字
                if($findKeyWord["founded"]=="true"){

                        #更換換行的符號
                        $spiltSymbol="\r\n";

                        }#if end

                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$conf["stringIn"];#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=$spiltSymbol;#爲以哪個符號作爲分割
                $spiltString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);

                #如果分割字串失敗
                if($spiltString["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #儲存每一行的內容
                $result["dataArray"]=$spiltString["dataArray"];

                #取得分成幾行
                $result["dataCounts"]=$spiltString["dataCounts"];

                #執行到這邊,代表執行成功
                $result["status"]="true";

                #回傳每行的內容
                return $result;

                }#funcrion spiltMutiLineString end

        /*
        #函式說明:
        #將一字串的前幾個文字轉爲ACSII並存到陣列裏面
        #回傳結果:
        #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["dataCounts"],爲總共有幾個字轉好的ASCII陣列。
        #$result["acsiiArray"],爲每個字轉好的ASCII陣列內容,$result["acsiiArray"][$i]爲第 $i+1 個字的ACSII內容。
        #必填參數:
        #$conf["stringIn"],字串,爲要處理的字串.
        $conf["stringIn"]="";
        #可省略參數:
        #$conf["wordsLong"],字串,爲要取得前幾個字元,若沒有要限定則可以不設定內容。
        #$conf["wordsLong"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        function StringToASCII(&$conf){

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

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

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #將 $string 分割成一個個字元,並存到陣列 #stringCharArray
                $stringCharArray=str_split($conf["stringIn"]);

                #取得分割成幾個字元
                $stringCharArrayCounts=count($stringCharArray);

                #如果沒有限定要前面幾個字則將全部都轉成ASCII
                if(!isset($conf["wordsLong"])){

                        $conf["wordsLong"]=$stringCharArrayCounts;

                        }#if end

                #將前面 $wordsLong 個字轉換成ASCII並存到 $charASCII 陣列裏面
                for($i=0;$i<$conf["wordsLong"];$i++){

                        $charASCII[$i]=ord($stringCharArray[$i]);

                        }#for end

                #取得總共有幾個字的ACSII
                $result["dataCounts"]=count($charASCII);

                #取得每個字轉好的ACSII陣列
                $result["acsiiArray"]=$charASCII;

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

                #回傳結果
                return $result;

                }#function StringToASCII end

        /*
        #函式說明:
        #將數字字串轉換成實際的數字
        #回傳結果:
        #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],實際的數字.
        #$result["ori"],未轉換的內容.
        #必填參數:
        #$conf["stringIn"],字串,要處理度數字字串。
        $conf["stringIn"]="";
        #可省略參數:
        #無.
        #參考資料:
        #http://www.phpf1.com/tutorial/php-string-to-int.html
        #備註:
        #無.
        */
        public static function stringIntToInt(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得原始的內容
                $result["ori"]=$conf["stringIn"];

                #取得轉換好的數字
                $result["content"]=(int)$conf["stringIn"];

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

                #回傳結果
                return $result;

                }#function stringIntToInt end

        /*
        #函式說明:
        #將字串中的特定內容取代.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["function"],當前執行的函數.
        #$result["content"],爲處理好的字串.
        #$result["error"],錯誤訊息陣列.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["stringIn"],字串,爲要處理的字串
        $conf["stringIn"]="";
        #$conf["selectedCharacter"],字串,爲被選擇要處理的字串/字元,\n」代表換行,「\t」代表tab鍵的間隔.
        $conf["selectedCharacter"]="";
        #$conf["changeTo"],字串,爲被選擇的字元要換成什麼字串/字元.
        $conf["changeTo"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function replaceOnce(&$conf){

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

                #設置當前執行函數
                $result["function"]=__FUNCTION__;

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

                #如果 $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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數.
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn","selectedCharacter","changeTo");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                $conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
                #$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("");
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
                #$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #只取代一次
                $one=1;

                #取得進行替換後的結果
                $result["content"]=str_replace($conf["selectedCharacter"],$conf["changeTo"],$conf["stringIn"],$one);

                #檢查變數內容
                $result["status"]="true";

                #回傳經過整理的字串
                return $result;

                }#function replaceOnce end

        /*
        #函式說明:
        #處理字串避免網頁出錯
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["function"],當前執行的函數.
        #$result["content"],爲處理好的字串.
        #$result["error"],錯誤訊息陣列.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["stringIn"],字串,爲要處理的字串
        $conf["stringIn"]="";
        #可省略參數:
        #$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
        #$conf["selectedCharacter"]=array("");
        #$conf["changeTo"],字串陣列,爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
        #$conf["changeTo"]=array("");
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function correctCharacter(&$conf){

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

                #設置當前執行函數
                $result["function"]=__FUNCTION__;

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

                #如果 $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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數.
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                $conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
                $conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("selectedCharacter");
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
                $conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #取得有幾種字串要處理
                $num=count($conf["selectedCharacter"]);

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

                        #如果 count($conf["selectedCharacter"]) 與 count($conf["changeTo"]) 不相等
                        if(count($conf["selectedCharacter"])!=count($conf["changeTo"])){

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

                                #設置錯誤訊息
                                $result["error"][]="\$conf[\"selectedCharacter\"] 與 \$conf[\"changeTo\"] 的元素數量不相等!";

                                #回傳結果
                                return $result;

                                }#if end

                        }#if end

                #如果 $conf["changeTo"] 爲空,則將每個要處理的字串,替換成""。
                if(!isset($conf["changeTo"])){

                        #有幾種要處理的字元就放進去幾個要對照替換的字串。
                        for($i=0;$i<$num;$i++){

                                $conf["changeTo"][$i]="";

                                }#for end

                        }#if end

                #處理 $num 次
                for($i=0;$i<$num;$i++){

                        #如果要處理的字元為空字串
                        if($conf["selectedCharacter"][$i]==""){

                                #debug
                                #echo "<p>空字串不處理</p>";

                                #跳過該此處理
                                continue;

                                }#if end

                        #進行轉換
                        $conf["stringIn"] = str_replace($conf["selectedCharacter"][$i],$conf["changeTo"][$i],$conf["stringIn"]);

                        }#for end

                #取得處理好的結果
                $result["content"]=$conf["stringIn"];

                #檢查變數內容
                $result["status"]="true";

                #回傳經過整理的字串
                return $result;

                }#function correctCharacter end

        /*
        #函式說明:
        #處理多個字串避免網頁出錯
        #回傳結果:
        #$result["status"],"true"代表執行成功,"false"代表執行失敗.
        #$result["function"],當前執行的函數.
        #$result["error"],錯誤訊息.
        #$result["processedStrArray"],處理好的字串陣列.
        #必填參數:
        #$conf["stringIn"],字串陣列,爲要處理的字串陣列.
        #$conf["stringIn"]=array("");
        #可省略參數:
        #$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
        #$conf["selectedCharacter"]=array("");
        #$conf["changeTo"],字串陣列,爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
        #$conf["changeTo"]=array();
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function correctMutiStrCharacter(&$conf){

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

                #設置當前執行函數
                $result["function"]=__FUNCTION__;

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

                #如果 $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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數.
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                $conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
                $conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #針對每個 $unProcessedStr 的元素執行一次
                foreach($conf["stringIn"] as $unProcessedStrKey=>$unProcessedStrValue){

                        #如果該行為 ""
                        if($unProcessedStrValue===""){

                                #不處理直接儲存成 ""
                                $result["processedStrArray"][$unProcessedStrKey]="";

                                #跳過該回合
                                continue;

                                }#if end

                        #函式說明:
                        #處理字串避免網頁出錯
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["content"],爲處理好的字串。
                        #$result["error"],錯誤訊息陣列
                        #必填參數:
                        $conf["variableCheck.correctCharacter"]["stringIn"]=$unProcessedStrValue;#爲要處理的字串
                        #可省略參數:

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

                                $conf["variableCheck.correctCharacter"]["selectedCharacter"]=$conf["selectedCharacter"];#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">","=","//","'","$","%","&","|","/*","*\/","#","\"")。
                                #特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔

                                }#if end

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

                                $conf["variableCheck.correctCharacter"]["changeTo"]=$conf["changeTo"];#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。

                                }#if end

                        $processedStrResult=stringProcess::correctCharacter($conf["variableCheck.correctCharacter"]);
                        unset($conf["variableCheck.correctCharacter"]);

                        #如果 $processedStrResult["status"] 等於 "false"
                        if($processedStrResult["status"]=="false"){

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

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

                                #回傳結果
                                return $result;

                                }#if end

                        #取得處理好的字串
                        $result["processedStrArray"][$unProcessedStrKey]=$processedStrResult["content"];

                        }#foreach end

                #執行到這邊代表執行成功
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function correctMutiStrCharacter end

        /*
        #函式說明:
        #將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
        #回傳結果:
        #$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
        #$result["function"],當前執行的函數.
        #$result["error"],錯誤訊息陣列.
        #$result["argu"],使用者參數.
        #$result["changedPath"],處理完後回傳的目錄字串.
        #$result["oriPath"],原始的路徑字串
        #必填參數:
        #$conf["dirStr"],字串,要處理的檔案目錄字串.
        $conf["dirStr"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #考慮用realpath取代
        */
        public static function changeDirByDotDotSolidus(&$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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dirStr");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #初始化儲存原始路徑字串
                $result["oriPath"]=$conf["dirStr"];

                #初始化用來儲存輸出內容的元素.
                $result["changedPath"]="";

                #初始化暫存的字串目錄
                $tempDirStrArray=array();

                #用 / 進行分割
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列
                #$result["function"],當前執行的函數名稱.
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess::spiltString"]["stringIn"]=$conf["dirStr"];#要處理的字串。
                $conf["stringProcess::spiltString"]["spiltSymbol"]="/";#爲以哪個符號作爲分割
                $spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
                unset($conf["stringProcess::spiltString"]);

                #如果分割失敗
                if($spiltString["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #分成幾段就執行幾次
                for($i=0;$i<$spiltString["dataCounts"];$i++){

                        #如果是往上層目錄的「..」
                        if($spiltString["dataArray"][$i]===".."){

                                #如果陣列不為空
                                if($tempDirStrArray!==array()){

                                        #如果前面有非 ".." 的目錄名稱
                                        if($tempDirStrArray[count($tempDirStrArray)-1]!==".."){

                                                #函式說明:
                                                #將陣列中特定元素剔除,並重新按照順序排序
                                                #回傳結果:
                                                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                                                #$result["error"],錯誤訊息
                                                #$result["function"],當前執行的函數
                                                #$result["empty"],移除完元素後是否為空陣列,"true"為是,"false"為否.
                                                #$result["content"]["byName"],剔除掉特定元素的陣列,使用原來陣列的key來儲存.
                                                #$result["content"]["byNumber"],剔除掉特定元素的陣列,使用從0開始的整數key來儲存.
                                                #必填參數:
                                                $conf["arrays::eraseElement"]["rawInputArray"]=$tempDirStrArray;#要處理的原始數字陣列
                                                $conf["arrays::eraseElement"]["eraseElementKey"]="".(count($tempDirStrArray)-1)."";#要移除的元素key值
                                                $eraseElement=arrays::eraseElement($conf["arrays::eraseElement"]);
                                                unset($conf["arrays::eraseElement"]);

                                                #如果移除失敗
                                                if($eraseElement["status"]=="false"){

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

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

                                                        #回傳結果
                                                        return $result;

                                                        }#if end

                                                #取得新陣列
                                                $tempDirStrArray=$eraseElement["content"]["byNumber"];

                                                }#if end

                                        #反之
                                        else{

                                                #儲存 ".."
                                                $tempDirStrArray[]=$spiltString["dataArray"][$i];

                                                }

                                        }#if end

                                #反之
                                else{

                                        #儲存 ".."
                                        $tempDirStrArray[]=$spiltString["dataArray"][$i];

                                        }#else end

                                }#if end

                        #反之
                        else{

                                #儲存路徑片段
                                $tempDirStrArray[]=$spiltString["dataArray"][$i];

                                }#else end

                        }#for end

                #debug
                #var_dump($tempDirStrArray);exit;

                #檢查 $conf["dirStr"] 是否為 「/」 開頭
                #函式說明:
                #取得符合特定字首與字尾的字串
                #回傳結果:
                #$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
                #$result["function"],當前執行的函數名稱.
                #$result["error"],錯誤訊息陣列.
                #$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
                #$result["returnString"],爲符合字首條件的字串內容。
                #必填參數:
                #$conf["checkString"],字串,要檢查的字串.
                $conf["search::getMeetConditionsString"]["checkString"]=$conf["dirStr"];
                #可省略參數:
                #$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
                $conf["search::getMeetConditionsString"]["frontWord"]="/";
                #$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"]=$spiltString;

                        #回傳結果
                        return $result;

                        }#if end

                #如果有關鍵字「/」在開頭
                if($getMeetConditionsString["founded"]=="true"){

                        #初始化改變好的路徑為「/」開頭
                        $result["changedPath"]="/";

                        }#if end

                #$tempDirStrArray有幾個元素就執行幾次
                for($i=0;$i<count($tempDirStrArray);$i++){

                        #如果是最後一個元素
                        if($i==(count($tempDirStrArray)-1)){

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

                                #如果尋找關鍵字失敗
                                if($getMeetConditionsString["status"]=="false"){

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

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

                                        #回傳結果
                                        return $result;

                                        }#if end

                                #如果有關鍵字「/」在結尾
                                if($getMeetConditionsString["founded"]=="true"){

                                        #串接直觀的路徑與結尾加上「/」
                                        $result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";

                                        }#if end

                                #反之
                                else{

                                        #串接直觀的路徑與結尾加上「/」
                                        $result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i];

                                        }#else end

                                }#if end

                        #反之
                        else{

                                #串接直觀的路徑與結尾加上「/」
                                $result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";

                                }#else end

                        }#for end

                #設置執行成功的識別
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function changeDirByDotDotSolidus end

        /*
        #函式說明:
        #將陣列裡的元素內容用特定符號連接在一起變成字串.
        #回傳結果:
        #$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
        #$result["function"],當前執行的函數.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],處理過後的字串.
        #必填參數:
        #$conf["inputArray"],字串陣列,要處理的陣列.
        $conf["inputArray"]=array();
        #$conf["combineSymbol"],字串,用來連結各元素的符號.
        $conf["combineSymbol"]=",";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function combineElementWithSymbol(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputArray","combineSymbol");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #初始化要回傳的字串
                $result["content"]="";

                #針對 $conf["inputArray"] 的每個元素
                for($i=0;$i<count($conf["inputArray"]);$i++){

                        #如果是第一筆
                        if($i==0){

                                #將字串連接在一塊
                                $result["content"]=$result["content"].$conf["inputArray"][$i];

                                }#if end

                        #反之是最後一筆
                        else{

                                #將字串連接在一塊
                                $result["content"]=$result["content"].$conf["combineSymbol"].$conf["inputArray"][$i];

                                }#else end

                        }#foreach end

                #執行到這邊代表執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function combineElementWithSymbol end

        /*
        #函式說明:
        #unicode的字串分割,比str_split的支援度高.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],分割好的內容陣列.
        #$result["length"],unicode字串的長度.
        #必填參數:
        #$conf["str"],字串",要分割的字串.
        $conf["str"]="";
        #可省略參數:
        #$conf["length"],整數,分割的長度.
        #$conf["length"]=1;
        #參考資料:
        #http://php.net/manual/en/function.str-split.php
        #備註:
        #無.
        */
        public static function str_split_unicode(&$conf){

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("str");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$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("length");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("integer");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(1);
                #$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

                #要分割的長度若小於1
                if($conf["length"]<1){

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

                        #設置執行錯誤訊息
                        $result["error"][]="參數 \$conf[\"length\"] 不得小於 1";

                        #回傳結果
                        return $result;

                        }#if end

                #初始化要回傳的字串陣列
                $result["content"]=array();

                #取得 $conf["str"] 的長度
                $result["length"]=mb_strlen($conf["str"],"UTF-8");

                #依據 $conf["str"] 與 $conf["length"]
                for($i=0;$i<$result["length"];$i=$i+$conf["length"]){

                        #從位置 $i 往後讀 $conf["length"] 個字,編碼為"UTF-8"
                        $result["content"][]=mb_substr($conf["str"], $i, $conf["length"],"UTF-8");

                        }#for end

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

                #回傳結果
                return $result;

                }#function str_split_unicode end

        /*
        #函式說明:
        #將字串特定關鍵字與其前面的內容剔除
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["warning"],警告訊息鎮列.
        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
        #$result["function"],當前執行的函數名稱.
        #$result["argu"],使用的參數.
        #$result["oriStr"],要處理的原始字串內容.
        #$result["content"],處理好的的字串內容.
        #$result["deleted"],被移除的內容.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串.
        $conf["stringIn"]="";
        #$conf["keyWord"],字串,特定字串.
        $conf["keyWord"]="";
        #可省略參數:
        #$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
        #$conf["recursive"]="true";
        #$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則會改回傳該內容.
        #$conf["lastResult"]=$delStrBeforeKeyWord;
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function delStrBeforeKeyWord(&$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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive","lastResult");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false",null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["variableCheck::checkArguments"]["canNotBeEmpty"]=array("stringIn");
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果要處理的字串已經為空了
                if($conf["stringIn"]===""){

                        #擁有上次執行的結果.
                        if(isset($conf["lastResult"])){

                                #回傳上次結果
                                return $conf["lastResult"];

                                }#if end

                        #如果關鍵字也是空字串
                        if($conf["keyWord"]===""){

                                #設置有找到關鍵字
                                $result["founded"]="true";

                                #初始化儲存原始的字串
                                $result["oriStr"]=$conf["stringIn"];

                                #結果跟原始字串一樣
                                $result["content"]=$result["oriStr"];

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

                                #回傳結果
                                return $result;

                                }#if end

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

                        #設置警告訊息
                        $result["warning"][]="要處理的參數 stringIn 為空,且沒有參數 lastResult 存在";

                        #初始化儲存原始的字串
                        $result["oriStr"]=$conf["stringIn"];

                        #結果跟原始字串一樣
                        $result["content"]=$result["oriStr"];

                        #設置沒有找到關鍵字
                        $result["founded"]="false";

                        #回傳結果
                        return $result;

                        }#if end

                #如果要判斷的輸入為空字串
                if($conf["stringIn"]===""){

                        #初始化分割好內容
                        $spiltedStringIn=array();

                        }#if end

                #反之
                else{

                        #將要處理的字串用unicode編碼來一個個字分割.
                        #函式說明:
                        #unicode的字串分割,比str_split的支援度高.
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數名稱.
                        #$result["content"],分割好的內容.
                        #$result["length"],unicode字串的長度.
                        #必填參數:
                        #$conf["str"],字串",要分割的字串.
                        $conf["stringProcess::str_split_unicode"]["str"]=$conf["stringIn"];
                        #可省略參數:
                        #$conf["length"],整數,分割的長度.
                        #$conf["length"]=1;
                        #參考資料:
                        #http://php.net/manual/en/function.str-split.php
                        $str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
                        unset($conf["stringProcess::str_split_unicode"]);

                        #如果分割字串失敗
                        if($str_split_unicode["status"]==="false"){

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

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

                                #回傳結果
                                return $result;

                                }#if end

                        #取得分割好的字串
                        $spiltedStringIn=$str_split_unicode["content"];

                        }#else

                #如果關鍵字為空字串
                if($conf["keyWord"]===""){

                        #初始化分割好內容
                        $spiltedKeyWord=array();

                        }#if end

                #反之
                else{

                        #將要處理的關鍵字用unicode編碼來一個個字分割.
                        #函式說明:
                        #unicode的字串分割,比str_split的支援度高.
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數名稱.
                        #$result["content"],分割好的內容.
                        #$result["length"],unicode字串的長度.
                        #必填參數:
                        #$conf["str"],字串",要分割的字串.
                        $conf["stringProcess::str_split_unicode"]["str"]=$conf["keyWord"];
                        #可省略參數:
                        #$conf["length"],整數,分割的長度.
                        #$conf["length"]=1;
                        #參考資料:
                        #http://php.net/manual/en/function.str-split.php
                        $str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
                        unset($conf["stringProcess::str_split_unicode"]);

                        #如果分割字串失敗
                        if($str_split_unicode["status"]==="false"){

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

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

                                #回傳結果
                                return $result;

                                }#if end

                        #取得分割好的字串
                        $spiltedKeyWord=$str_split_unicode["content"];

                        }#else end

                #如果關鍵字比要處理的字串長
                if(count($spiltedKeyWord)>count($spiltedStringIn)){

                        #如果有前次的結果
                        if(isset($conf["lastResult"])){

                                #回傳之
                                return $conf["lastResult"];

                                }#if end

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

                        #設置錯誤訊息
                        $result["warning"][]="變數 keyWord 不應該比變數 stringIn 長";

                        #初始化儲存原始的字串
                        $result["oriStr"]=$conf["stringIn"];

                        #結果跟原始字串一樣
                        $result["content"]=$result["oriStr"];

                        #設置沒有找到關鍵字
                        $result["founded"]="false";

                        #回傳結果
                        return $result;

                        }#if end

                #初始化儲存要移除第幾個字之前的內容(索引從0開始)
                $delCount=-1;

                #初始化暫存關鍵字的第幾個字
                $wordCount=0;

                #無窮迴圈
                for($i=0;$i<count($spiltedStringIn);$i++){

                        #如果關鍵字不存在
                        if(!isset($spiltedKeyWord[$wordCount])){

                                #debug
                                #var_dump(__LINE__,$spiltedStringIn,$spiltedStringIn[$i]);

                                #跳過
                                continue;

                                }#if end

                        #如果有遇到相符合的字元
                        if($spiltedStringIn[$i]===$spiltedKeyWord[$wordCount]){

                                #換尋找下個字元有無符合
                                $wordCount++;

                                #如果下一個關鍵字字元不存在
                                if(!isset($spiltedKeyWord[$wordCount])){

                                        #代表有找到符合條件的關鍵字了
                                        $delCount=$i;

                                        #跳出迴圈
                                        break;

                                        }#if end

                                }#if end

                        #反之沒有遇到相符合的字元
                        else{

                                #初始化 $j 為 0
                                $wordCount=0;

                                }#else end

                        }#for end

                #初始化儲存原始的字串
                $result["oriStr"]=$conf["stringIn"];

                #初始化處理好的字串
                $result["content"]="";

                #如果有要剔除的字
                if($delCount>-1){

                        #初始化移除的內容
                        $result["deleted"]="";

                        #取得剩下的內容
                        for($i=0;$i<$delCount+1;$i++){

                                #逐字取得字串
                                $result["deleted"]=$result["deleted"].$spiltedStringIn[$i];

                                }#for end

                        #取得剩下的內容
                        for($i=$delCount+1;$i<count($spiltedStringIn);$i++){

                                #逐字取得字串
                                $result["content"]=$result["content"].$spiltedStringIn[$i];

                                }#for end

                        #設置有找到關鍵字串
                        $result["founded"]="true";

                        }#if end

                #反之沒有要處理的字串
                else{

                        #取得原始字串
                        $result["content"]=$result["oriStr"];

                        #設置沒有找到關鍵字串
                        $result["founded"]="false";

                        }#else end

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

                #如果需要遞迴執行
                if($conf["recursive"]==="true"){

                        #如果沒有找到目標
                        if($result["founded"]==="false"){

                                #如果有前次的結果
                                if(isset($conf["lastResult"])){

                                        #回傳之
                                        return $conf["lastResult"];

                                        }#if enb

                                #回傳本次結果
                                return $result;

                                }#if end

                        #函式說明:
                        #將字串特定關鍵字與其前面的內容剔除
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["warning"],警告訊息鎮列.
                        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                        #$result["function"],當前執行的函數名稱.
                        #$result["oriStr"],要處理的原始字串內容.
                        #$result["content"],處理好的的字串內容.
                        #必填參數:
                        #$conf["stringIn"],字串,要處理的字串.
                        $conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];
                        #$conf["keyWord"],字串,特定字串.
                        $conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
                        #可省略參數:
                        #$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
                        $conf["stringProcess::delStrBeforeKeyWord"]["recursive"]="true";
                        #$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則回改回傳該內容.
                        $conf["stringProcess::delStrBeforeKeyWord"]["lastResult"]=$result;
                        #參考資料:
                        #無.
                        #備註:
                        #無.
                        return stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
                        unset($conf["stringProcess::delStrBeforeKeyWord"]);

                        }#if end

                #回傳結果
                return $result;

                }#function delStrBeforeKeyWord end

        /*
        #函式說明:
        #將字串開頭的特定關鍵字移除.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["founded"],有無找到開頭要移除的特定字串"true"代表有,"false"代表沒有.
        #$result["function"],當前執行的函數名稱.
        #$result["argu"],使用的參數.
        #$result["content"],處理好的的字串內容.
        #$result["deleted"],被移除的內容.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串.
        $conf["stringIn"]="";
        #$conf["headStr"],字串陣列,開頭為哪些字串就要移除.
        $conf["headStr"]=array("");
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function delHeadStr(&$conf){
        
                #初始化要回傳的結果
                $result=array();

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

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                /* 請依據實際狀況使用
                #涵式說明:
                #判斷當前環境為web還是cmd
                #回傳結果:
                #$result,"web"或"cmd"
                if(csInformation::getEnv()==="web"){

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

                #如果檢查有誤
                if($checkResult["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end
        
                #初始化沒有找到要移除的關鍵字
                $result["founded"]="false";
        
                #初始化被移除的內容
                $result["deleted"]="";
        
                #另存要處理的字串
                $str2process=$conf["stringIn"];
        
                #無窮迴圈
                while(true){
                
                        #預設執行完關鍵字處理一輪後就結束
                        $continue="false";
                
                        #針對每個要移除的開頭字串
                        foreach($conf["headStr"] as $index => $keyWord){
                        
                                #函式說明:
                                #尋找字串中是否含有符合格式的內容,且回傳解析好的變數數值.
                                #回傳結果:
                                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                                #$result["function"],當前執行的函式名稱.
                                #$result["argu"],所使用的參數.
                                #$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.
                                #$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.
                                #$result["parsedVar"][varName],陣列,解析好的變數陣列,varName為${}中的內容,變數的key從0開始.
                                #必填參數:
                                #$conf["input"],字串,要檢查的字串.
                                $conf["search::findSpecifyStrFormat"]["input"]=$str2process;
                                #$conf["format"],格式字串,要尋找的格式字串.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.
                                $conf["search::findSpecifyStrFormat"]["format"]=$keyWord."\${left}";
                                #可省略參數:
                                #$conf["varEqual"],陣列,變數對應的數值,null代表不指定,其他內容代表該變數解析出來必須要為該內容.
                                #$conf["varEqual"]=array(null,"found");
                                #$conf["varCon"],陣列,每個varEqual為null者,其是否有其他條件,預設為null代表無其他條件,條件的表示是用陣列的key與value來表達,例如:array("no_tail"=>" not"),就代表變數的結尾不能為" not",可以用的key有"head",代表開頭要有什麼;"no_head",代表不能為什麼開頭;"tail",代表要什麼結尾;"no_tail",代表不能什麼結尾.
                                #$conf["varCon"]=array("no_tail"=>" not");
                                #參考資料:
                                #無.
                                #備註:
                                #無.
                                $findSpecifyStrFormat=search::findSpecifyStrFormat($conf["search::findSpecifyStrFormat"]);
                                unset($conf["search::findSpecifyStrFormat"]);
                        
                                #如果執行異常
                                if($findSpecifyStrFormat["status"]==="false"){

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

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

                                        #回傳結果
                                        return $result;

                                        }#if end
                                        
                                #如果有找到要移除的關鍵字
                                if($findSpecifyStrFormat["found"]==="true"){

                                        #串接移除的字串內容 
                                        $result["deleted"]=$result["deleted"].$keyWord;

                                        #儲存處理好的結果
                                        $str2process=$findSpecifyStrFormat["parsedVar"]["left"][0];

                                        #設置要繼續執行
                                        $continue="true";

                                        }#if end
                        
                                }#foreach end
                                
                        #如果沒有必須繼續處理開頭關鍵字了
                        if($continue==="false"){
                        
                                #跳出 while
                                break;
                        
                                }#if end
                        
                        #反之若尚未設置有找到要移除的關鍵字
                        else if($result["founded"]==="false"){
                        
                                #設置有找到要移除的關鍵字
                                $result["founded"]="true";
                        
                                }#else end
                
                        }#while end
        
                #儲存處理好的字串
                $result["content"]=$str2process;
        
                #設置執行正常
                $result["status"]="true";
                
                #回傳結果
                return $result;
        
                }#function delHeadStr end

        /*
        #函式說明:
        #將字串特定關鍵字與其後面的內容剔除
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["warning"],警告訊息鎮列.
        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
        #$result["function"],當前執行的函數名稱.
        #$result["oriStr"],要處理的原始字串內容.
        #$result["content"],處理好的的字串內容.
        #$result["deleted"],被移除的內容.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["stringIn"],字串,要處理的字串.
        $conf["stringIn"]="";
        #$conf["keyWord"],字串,特定字串.
        $conf["keyWord"]="";
        #可省略參數:
        #$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].
        #$conf["deleteLastRepeatedOne"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function delStrAfterKeyWord(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("deleteLastRepeatedOne");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查有誤
                if($checkResult["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #記錄使用的參數
                $result["argu"]=$conf;

                #倒序內容
                $conf["stringIn"]=strrev($conf["stringIn"]);

                #倒敘關鍵字
                $conf["keyWord"]=strrev($conf["keyWord"]);

                #函式說明:
                #將字串特定關鍵字與其前面的內容剔除
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["warning"],警告訊息鎮列.
                #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                #$result["function"],當前執行的函數名稱.
                #$result["oriStr"],要處理的原始字串內容.
                #$result["content"],處理好的的字串內容.
                #必填參數:
                #$conf["stringIn"],字串,要處理的字串.
                $conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["stringIn"];
                #$conf["keyWord"],字串,特定字串.
                $conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
                #可省略參數:

                #如果不需要移除最後一個符合的關鍵字之後的內容
                if($conf["deleteLastRepeatedOne"]==="false"){

                        #$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
                        $conf["stringProcess::delStrBeforeKeyWord"]["recursive"]="true";

                        }#if end

                #$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則回改回傳該內容.
                #$conf["lastResult"]=$delStrBeforeKeyWord;
                #參考資料:
                #無.
                #備註:
                #無.
                $delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
                unset($conf["stringProcess::delStrBeforeKeyWord"]);

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果沒有關鍵字
                if($delStrBeforeKeyWord["founded"]==="false"){

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

                        #設置沒有找到關鍵字
                        $result["founded"]="false";

                        #初始化儲存原始的字串
                        $result["oriStr"]=strrev($delStrBeforeKeyWord["oriStr"]);

                        #取得移除後的結果
                        $result["content"]=strrev($delStrBeforeKeyWord["content"]);

                        #回傳結果
                        return $result;

                        }#if end

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

                #設置有找到關鍵字
                $result["founded"]="true";

                #初始化儲存原始的字串
                $result["oriStr"]=strrev($conf["stringIn"]);

                #取得移除後的結果
                $result["content"]=strrev($delStrBeforeKeyWord["content"]);

                #取得被移除的內容
                $result["deleted"]=strrev($delStrBeforeKeyWord["deleted"]);

                #回傳結果
                return $result;

                }#function delStrAfterKeyWord end

        /*
        #函式說明:
        #移除多個字串開頭相同的部分
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],處理好的的字串內容.
        #必填參數:
        #$conf["strIn"],字串陣列,每個要處理的字串.
        $conf["strIn"]=array();
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function delSameHead(&$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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("strIn");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #初始化儲存開頭相同的字串
                $sameHeadStr="";

                #$conf["strIn"]的第一個元素有幾個字就執行幾次
                for($i=0;$i<strlen($conf["strIn"][0]);$i++){

                        #取得當前可能相同的開頭字串
                        $keyWordPart=$sameHeadStr.$conf["strIn"][0][$i];

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

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

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

                                #設置執行錯誤訊息
                                $result["error"]=$checkResult;

                                #回傳結果
                                return $result;

                                }#if end

                        #如果有找到相同的開頭
                        if($checkResult["founded"]=="true"){

                                #取得新的開頭相同字串內容
                                $sameHeadStr=$keyWordPart;

                                }#if end

                        #反之
                        else{

                                #跳出迴圈
                                break;

                                }#else end

                        }#for end

                #$conf["strIn"]有幾個元素就執行幾次
                for($i=0;$i<count($conf["strIn"]);$i++){

                        #移除 $conf["strIn"]  中每個字串開頭相同的部分
                        #函式說明:
                        #將字串特定關鍵字與其前面的內容剔除
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                        #$result["function"],當前執行的函數名稱.
                        #$result["oriStr"],要處理的原始字串內容.
                        #$result["content"],處理好的的字串內容.
                        #必填參數:
                        $conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["strIn"][$i];#要處理的字串.
                        $conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$sameHeadStr;#特定字串.
                        $delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
                        unset($conf["stringProcess::delStrBeforeKeyWord"]);

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

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

                                #設置執行錯誤訊息
                                $result["error"]=$delStrBeforeKeyWord;

                                #回傳結果
                                return $result;

                                }#if end

                        #取得處理好的字串
                        $result["content"][]=$delStrBeforeKeyWord["content"];

                        }#for end

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

                #回傳結果
                return $result;

                }#function delSameHead end

        /*
        #函式說明:
        #移除字串開頭的特定內容
        #回傳結果:
        #$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數.
        #$result["content"],處理好的字串.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
        $conf["inputStr"]="";
        #$conf["keyWord"],字串,要移除的字串開頭關鍵字.
        $conf["keyWord"]="";
        #可省略參數:
        #$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
        #$conf["recursive"]="false";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function delKeyWordsInStrHead(&$conf){

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

                #初始化要回傳的結果
                $result["content"]="";

                #儲存當前執行的函數
                $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["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputStr","keyWord");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive");
                #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("subject","plainBody","htmlBody","receiverMail","receiverMailDisplay","receiverNameDisplay");
                #參考資料來源:
                #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

                #取得關鍵字的位置
                $found=strpos($conf["inputStr"],$conf["keyWord"]);

                #debug
                #var_dump($conf["inputStr"],$conf["keyWord"],$found);

                #如果沒有找到關鍵字
                if($found===false){

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

                        #設置處理好的字串
                        $result["content"]=$conf["inputStr"];

                        #回傳結果
                        return $result;

                        }#if end

                #如果關鍵字在開頭
                else if($found===0){

                        #分割字串
                        $spiledStr=str_split($conf["inputStr"]);

                        #執行 count($spiledStr)-2 次迴圈
                        for($i=strlen($conf["keyWord"]);$i<count($spiledStr);$i++){

                                #串接字
                                $result["content"]=$result["content"].$spiledStr[$i];

                                }#for end

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

                        #如果有開啟遞迴
                        if($conf["recursive"]==="true"){

                                #函式說明:
                                #移除字串開頭的特定內容
                                #回傳結果:
                                #$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
                                #$result["error"],錯誤訊息陣列.
                                #$result["function"],當前執行的函數.
                                #$result["content"],處理好的字串.
                                #必填參數:
                                #$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
                                $conf["stringProcess::delKeyWordsInStrHead"]["inputStr"]=$result["content"];
                                #$conf["keyWord"],字串,要移除的字串開頭關鍵字.
                                $conf["stringProcess::delKeyWordsInStrHead"]["keyWord"]=$conf["keyWord"];
                                #可省略參數:
                                #$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
                                $conf["stringProcess::delKeyWordsInStrHead"]["recursive"]="true";
                                return stringProcess::delKeyWordsInStrHead($conf["stringProcess::delKeyWordsInStrHead"]);
                                unset($conf["stringProcess::delKeyWordsInStrHead"]);

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #反之關鍵字不在開頭
                else{

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

                        #設置處理好的字串
                        $result["content"]=$conf["inputStr"];

                        #回傳結果
                        return $result;

                        }#else end

                #執行到這邊代表不正常

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

                #設置錯誤訊息
                $result["error"][]="非預期的錯誤";

                #回傳結果
                return $result;

                }#function delKeyWordsInStrHead end

        /*
        #函式說明:
        #將字串進行解析,取得兩個關鍵字中間的內容.
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],取得的內容.
        #$result["oriStr"],原始的內容.
        #$result["found"],是否有找到符合條件的內容.
        #必填參數:
        #$conf["input"],字串,要處理的字串.
        $conf["input"]="";
        #$conf["startKeyWord"],字串,開頭的關鍵字.
        $conf["startKeyWord"]="";
        #$conf["endKeyWord"],字串,結束的關鍵字.
        $conf["endKeyWord"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function getContentBetweenKeyWord(&$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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input","startKeyWord","endKeyWord");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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["founded"],是否有找到的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.
                #$result["foundedKeyWords"],找到的關鍵字.
                #$result["foundedAll"],是否有找到全部的關鍵字,"true"代表有;"false"代表沒有.
                #$result["argu"],使用的參數.
                #必填參數:
                #$conf["keyWords"],字串陣列,想要搜尋的關鍵字.
                $conf["search::findManyKeyWords"]["keyWords"]=array($conf["startKeyWord"],$conf["endKeyWord"]);
                #$conf["string"],字串,要被搜尋的字串內容.
                $conf["search::findManyKeyWords"]["string"]=$conf["input"];
                #可省略參數:
                #$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合.
                #$conf["completeEqual"]="true";
                #參考資料:
                #無.
                #備註:
                #無.
                $findManyKeyWords=search::findManyKeyWords($conf["search::findManyKeyWords"]);
                unset($conf["search::findManyKeyWords"]);

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

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

                        #設置執行錯誤訊息
                        $result["error"]=$findManyKeyWords;

                        #回傳結果
                        return $result;

                        }#if end

                #設置預設有找到關鍵字
                $result["found"]="true";

                #如果沒有找到全部關鍵字
                if($findManyKeyWords["foundedAll"]==="false"){

                        #設置沒有找到關鍵字
                        $result["found"]="false";

                        }#if end

                #函式說明:
                #將字串特定關鍵字與其前面的內容剔除
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["warning"],警告訊息鎮列.
                #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                #$result["function"],當前執行的函數名稱.
                #$result["oriStr"],要處理的原始字串內容.
                #$result["content"],處理好的的字串內容.
                #必填參數:
                #$conf["stringIn"],字串,要處理的字串.
                $conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];
                #$conf["keyWord"],字串,特定字串.
                $conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["startKeyWord"];
                #可省略參數:
                #$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
                #$conf["recursive"]="true";
                #參考資料:
                #無.
                #備註:
                #無.
                $delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
                unset($conf["stringProcess::delStrBeforeKeyWord"]);

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

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

                        #設置執行錯誤訊息
                        $result["error"]=$delStrBeforeKeyWord;

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #將字串特定關鍵字與其後面的內容剔除
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["warning"],警告訊息鎮列.
                #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                #$result["function"],當前執行的函數名稱.
                #$result["oriStr"],要處理的原始字串內容.
                #$result["content"],處理好的的字串內容.
                #$result["argu"],使用的參數.
                #必填參數:
                #$conf["stringIn"],字串,要處理的字串.
                $conf["stringProcess::delStrAfterKeyWord"]["stringIn"]=$delStrBeforeKeyWord["content"];
                #$conf["keyWord"],字串,特定字串.
                $conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$conf["endKeyWord"];
                #可省略參數:
                #無.
                #參考資料:
                #無.
                #備註:
                #無.
                $delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
                unset($conf["stringProcess::delStrAfterKeyWord"]);

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

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

                        #設置執行錯誤訊息
                        $result["error"]=$delStrAfterKeyWord;

                        #回傳結果
                        return $result;

                        }#if end

                #設置原始內容
                $result["oriStr"]=$conf["input"];

                #設置處理後的內容
                $result["content"]=$delStrAfterKeyWord["content"];

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

                #回傳結果
                return $result;

                }#function getContentBetweenKeyWord end

        /*
        #函式說明:
        #將字串進行解析,變成多個參數.
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],參數陣列.
        #$result["count"],總共有幾個參數.
        #必填參數:
        #$conf["input"],字串,要解析成參數的字串.
        $conf["input"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function parse(&$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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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

                #如果輸入為空
                if(empty($conf["input"])){
                
                        #設置沒有參數
                        $result["content"]=array();
                        
                        #設置參數數量
                        $result["count"]=count($result["content"]);
                
                        #設置執行正常
                        $result["status"]="true";
                        
                        #回傳結果
                        return $result;
                
                        }#if end

                #預設存放 qbpwcf 可執行程式 parse 的位置
                $defaultQbpwcfUsrBinParse="/usr/bin/parse";

                #預設存放 qbpwcf local 可執行程式 parse 的位置
                $defaultLocalQbpwcfUsrBinParse=pathinfo(__FILE__)["dirname"]."/../../bin/parse";

                #預設存放 qbpwcf 可執行程式 parse 的位置
                $qbpwcfUsrBinParseArray=array($defaultLocalQbpwcfUsrBinParse,$defaultQbpwcfUsrBinParse);

                #如果存在 include path
                if(get_include_path()!==false){

                        #函式說明:
                        #將固定格式的字串分開,並回傳分開的結果.
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列
                        #$result["function"],當前執行的函數名稱.
                        #$result["argu"],使用的參數.
                        #$result["oriStr"],要分割的原始字串內容
                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                        #$result["dataCounts"],爲總共分成幾段
                        #$result["found"],是否有在$conf["stringIn"]找到$conf["spiltSymbol"],"true"代表有找到,"false"代表沒有找到.
                        #必填參數:
                        #$conf["stringIn"],字串,要處理的字串.
                        $conf["stringProcess::spiltString"]["stringIn"]=get_include_path();
                        #$conf["spiltSymbol"],字串,爲以哪個符號作爲分割.
                        $conf["stringProcess::spiltString"]["spiltSymbol"]=":";
                        #可省略參數:
                        #$conf["allowEmptyStr"],是否允許分割出來空字串,預設為"false"不允許;"true"代表允許.
                        $conf["stringProcess::spiltString"]["allowEmptyStr"]="false";
                        #參考資料:
                        #無.
                        #備註:
                        #無.
                        $spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
                        unset($conf["stringProcess::spiltString"]);

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

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

                                #設置執行錯誤
                                $result["error"]=$spiltString;

                                #回傳結果
                                return $result;

                                }#if end

                        #如果沒有符合的分割符號
                        if($spiltString["found"]==="false"){

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

                                #設置執行錯誤
                                $result["error"]=$spiltString;

                                #回傳結果
                                return $result;

                                }#if end

                        #如果沒有切割出東西
                        if($spiltString["dataCounts"]<1){

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

                                #設置執行錯誤
                                $result["error"]=$spiltString;

                                #回傳結果
                                return $result;

                                }#if end

                        #增加存放 qbpwcf 可執行程式 parse 的位置
                        $qbpwcfUsrBinParseArray[]=$spiltString["dataArray"][0].$defaultQbpwcfUsrBinParse;

                        }#if end

                #針對每個可能的 存放 qbpwcf 可執行程式的位置
                foreach($qbpwcfUsrBinParseArray as $index=>$qbpwcfUsrBinParse){

                        #如果檔案不存在
                        if(!file_exists($qbpwcfUsrBinParse)){

                                #如果是最後一個檔案了
                                if($index===count($qbpwcfUsrBinParseArray)-1){

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

                                        #設置執行錯誤
                                        $result["error"]="檔案(".$qbpwcfUsrBinParse.")不存在";

                                        #回傳結果
                                        return $result;

                                        }#if end

                                }#if end

                        #反之檔案存在
                        else{

                                #更新預設的 usr/bin/parse 位置
                                $defaultQbpwcfUsrBinParse=$qbpwcfUsrBinParse;

                                #跳出 foreach
                                break;

                                }#else end

                        }#foreach end

                #建立暫存script檔案
                #函式說明:
                #於本套件位置底下的tmp資料夾下建立與回傳暫存檔案名稱路徑
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息.
                #$result["function"],當前執行的函數名稱.
                #$result["content"],暫存檔案的路徑與名稱.
                #$result["fileName"],暫存檔案的名稱.
                #$result["path"],暫存檔案的路徑.
                #必填參數:
                #無.
                #可省略參數:
                #無.
                #參考資料:
                #無.
                #備註:
                #無.
                $conf["fileAccess::createTempFile"]=array();
                $createTempFile=fileAccess::createTempFile($conf["fileAccess::createTempFile"]);
                unset($conf["fileAccess::createTempFile"]);

                #如果沒有符合的分割符號
                if($createTempFile["status"]==="false"){

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

                        #設置執行錯誤
                        $result["error"]=$createTempFile;

                        #回傳結果
                        return $result;

                        }#if end

                #取得暫存檔案的路徑與名稱
                $scriptFile2test=$createTempFile["content"];

                #將要檢查的shell script寫入
                #函式說明:
                #將字串寫入到檔案
                #回傳結果:
                #$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"]=__FILE__;
                #可省略參數:
                #$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
                $conf["fileAccess::writeTextIntoFile"]["fileName"]=$scriptFile2test;
                #$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
                $conf["fileAccess::writeTextIntoFile"]["inputString"]="#!/bin/bash".PHP_EOL.$conf["input"].PHP_EOL;
                #$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
                #$conf["writeMethod"]="a";
                #$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
                #$conf["checkRepeat"]="";
                #$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
                #$conf["filenameExtensionStartPoint"]="";
                #$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
                #$conf["repeatNameRule"]="";
                #$conf["web"],檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
                $conf["fileAccess::writeTextIntoFile"]["web"]="false";
                #參考資料:
                #無.
                #備註:
                #無.
                $writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
                unset($conf["fileAccess::writeTextIntoFile"]);

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

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

                        #設置執行錯誤
                        $result["error"]=$writeTextIntoFile;

                        #回傳結果
                        return $result;

                        }#if end

                #檢查有無語法錯誤
                $cmd="bash -n ".$scriptFile2test;

                #函式說明:
                #透過proc來多執行序運作.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["argu"],使用的參數.
                #$result["content"],陣列,每個元素為其指令執行的結果訊息陣列,key為"status"代表執行是否正常的識別;key為"statusCode"代表程式結束後回傳給對應executeBy程式的數值;key為"output"代表標準輸出,若為resource,則代表為pipe;key為"error"代表非標準輸出,若為resource,則代表為pipe;key為"input"代表成功輸入的指令;key為"process"代表該程序經proc_open後的process source;key為"proc_get_status"代表程序的資訊.
                #必填參數:
                #$conf["cmds"],字串陣列,每個元素代表要執行的指令與參數.
                $conf["threads::proc"]["cmds"]=array($cmd);
                #可省略參數:
                #$conf["wait"],字串,是否需要等待所有程序結束,預設為"true"要等待;反之為"false"不要等待.
                #$conf["threads::proc"]["wait"]="false";
                #$conf["workingDir"],字串陣列,個別程式執行時的家目錄,預設不指定.
                #$conf["workingDir"]=array("path");
                #$conf["envs"],2維字串陣列,每個元素代表個別程式執行時的指定環境變數,key變數名稱;value為變數內容.預設為array("QBPWCF" => "Quick Build PHP Website Componment base on Fedora Linux");
                #$conf["envs"]=array(array("key"=>"value"));
                #$conf["executeBy"],字串陣列,每個元素代表個別指令要用什麼程式執行,預設為"bash".
                #$conf["executeBy"]=array("bash");
                #參考資料:
                #https://www.php.net/manual/en/function.proc-open.php
                #https://www.php.net/manual/en/function.proc-get-status.php
                #備註:
                #若需要取得當下的執行狀況,請使用 self::proc_update 來更新.
                $proc=threads::proc($conf["threads::proc"]);
                unset($conf["threads::proc"]);

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

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

                        #設置錯誤訊息
                        $result["error"][]="檢查bash語法出錯";

                        #設置執行錯誤
                        $result["error"][]=$proc;

                        #回傳結果
                        return $result;

                        }#if end

                #如果執行失敗
                if($proc["content"][0]["statusCode"]!==0){

                        #如果錯誤訊息為語法錯誤
                        if(strpos($proc["content"][0]["error"],"syntax error")!==false){

                                #遞迴呼叫
                                #函式說明:
                                #將字串進行解析,變成多個參數.
                                #回傳結果:
                                #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
                                #$result["function"],當前執行的函式內容.
                                #$result["error"],錯誤訊息陣列.
                                #$result["content"],參數陣列.
                                #$result["count"],總共有幾個參數.
                                #必填參數:
                                #$conf["input"],字串,要解析成參數的字串.
                                $conf["self::parse"]["input"]=\escapeshellarg($conf["input"]);
                                #可省略參數:
                                #無.
                                #參考資料:
                                #無.
                                #備註:
                                #無.
                                $parse=self::parse($conf["self::parse"]);
                                unset($conf["self::parse"]);

                                #回傳結果
                                return $parse;

                                }#if end

                        #取得錯誤訊息

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

                        #設置錯誤訊息
                        $result["error"][]="Bash syntax error or Permission denied";

                        #設置執行錯誤
                        $result["error"][]=$proc;

                        #回傳結果
                        return $result;

                        }#if end

                #移除暫存檔案
                unlink($scriptFile2test);

                #預設要運行的指令
                #$cmd=$defaultQbpwcfUsrBinParse.' '.$conf["input"];
                
                #函式說明:
                #呼叫shell執行系統命令,並取得回傳的內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.
                #$result["argu"],使用的參數.
                #$result["cmd"],執行的指令內容.
                #$result["fullCmd"],如果參數 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["output"],爲執行完後的輸出陣列,若 $conf["inBackGround"] 為 "true",則為當下的輸出.
                #$result["content"],為執行完後的輸出字串.
                #$result["tmpFileOutput"],儲存輸出的暫存檔案名稱,若 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["running"],是否還在執行.
                #$result["pid"],pid.
                #$result["statusCode"],執行結束後的代碼.
                #$result["escape"],陣列,儲存重新排序過且已經escape過的指令(key為"cmd")與參數(key為"argu")與兩者組合的一維陣列(key為"array").
                #$result["noEcaped"],陣列,儲存重新排序過未經過escape過的指令(key為"cmd")與參數(key為"argu")與兩者組合的一維陣列(key為"array").
                #必填參數:
                #$conf["command"],字串,要執行的指令.
                $conf["external::callShell"]["command"]=$defaultQbpwcfUsrBinParse;
                #$conf["fileArgu"],字串,變數__FILE__的內容.
                $conf["external::callShell"]["fileArgu"]=__FILE__;
                #可省略參數:
                #$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
                $conf["external::callShell"]["argu"]=array($conf["input"]);
                #$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
                #$conf["arguIsAddr"]=array();
                #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
                #$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
                #$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
                #$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
                #$conf["enablePrintDescription"]="true";
                #$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
                #$conf["printDescription"]="";
                #$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".如果參數為"< 、<< 、> 、>> 、| 、2>&1"之一則不會過濾.
                #$conf["external::callShell"]["escapeshellarg"]="true";
                #$conf["thereIsShellVar"],陣列字串,指令搭配的參數"argu",若含有「\'」,則取代為「"」.每個argu參數都要有對應的元素."true"代表要置換.
                #$conf["thereIsShellVar"]=array();
                #$conf["username"],字串,要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
                #$conf["username"]="";
                #$conf["password"],字串,root的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
                #$conf["password"]="";
                #$conf["useScript"],字串,是否要啟用Linux的script指令來記錄輸出,"true"代表要,Fedora的selinux會擋住該操作;"false"代表不要,預設為"false".
                #$conf["useScript"]="";
                #$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 "/tmp/.qbpwcf_tmp/external/callShell/".
                #$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
                #$conf["inBackGround"],字串,是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用「;」區隔的多個指令將會出錯.
                #$conf["inBackGround"]="";
                #$conf["getErr"],字串,"true"代表將錯誤輸出變成標準輸出,反之"false"為不變動.
                #$conf["getErr"]="false";
                #$conf["doNotRun"],字串,"true"代表不執行指令,預設為"false"會執行指令.
                #$conf["doNotRun"]="false";
                #參考資料:
                #exec=>http://php.net/manual/en/function.exec.php
                #escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
                #escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
                #備註:
                #不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
                #若使用的 command、argu 參數,含有 ~ 則會被視為字串,若有需要其於 shell 中代表的家目錄位置,可用 fileAccess::tildeToPath 來進行轉換.
                $callShell=external::callShell($conf["external::callShell"]);
                unset($conf["external::callShell"]);

                #如果執行異常
                if($callShell["status"]==="false"){
                
                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$callShell;

                        #回傳結果
                        return $result;
                        
                        }#if end

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

                #如果輸出不是 json
                if(json_validate($callShell["content"])===false){

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

                        #設置執行錯誤訊息
                        $result["error"][]="not json output";

                        #設置執行錯誤訊息
                        $result["error"][]=$callShell["content"];

                        #回傳結果
                        return $result;

                        }#if end

                #解析json,並轉成array
                $output=(array)json_decode($callShell["content"]);

                #移除被執行的php檔案名稱
                unset($output[0]);

                #初始化參數陣列
                $params=array();

                #針對每個參數
                foreach($output as $param){

                        #取得參數
                        $params[]=$param;

                        }#foreach end

                #取得參數陣列
                $result["content"]=$params;

                #取得參數數目
                $result["count"]=count($params);

                #回傳結果
                return $result;

                }#function parse end

        /*
        #函式說明:
        #清除字串的「"」或「'」符號.
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],剔除「"」或「'」符號後的字串.
        #必填參數:
        #$conf["str"],字串,要處理的字串.
        $conf["str"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function clearStrSymbol(&$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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("str");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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

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

                #檢查是否有「"」在開頭
                $strHeadSymbol1=strpos($str,"\"");

                #檢查是否有「'」在開頭
                $strHeadSymbol2=strpos($str,"'");

                #分割輸入的字串為一個個字的陣列
                $splitedFileName=str_split($str);

                #取得輸入參數的長度
                $fileNameStrlen=strlen($str);

                #如果檔案名稱被「"」或「'」包住
                if
                (
                        $strHeadSymbol1===0  && $splitedFileName[$fileNameStrlen-1]==="\""
                        ||
                        $strHeadSymbol2===0  && $splitedFileName[$fileNameStrlen-1]==="'"
                ){

                        #初始化儲存處理好的字串
                        $fixedStr="";

                        #將字串的「"」包住的內容
                        for($i=1;$i<$fileNameStrlen-1;$i++){

                                #取出
                                $fixedStr=$fixedStr.$splitedFileName[$i];

                                }#for end

                        #儲存處理好的字串
                        $result["content"]=$fixedStr;

                        }#if end

                #儲存原先的字串
                $result["content"]=$str;

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

                #回傳結果
                return $result;

                }#function clearStrSymbol end

        /*
        #函式說明:
        #將字串中的每個字變成hex的字串陣列
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],hex的字串陣列.
        #必填參數:
        #$conf["input"],字串,要轉換成bytes陣列的字串.
        $conf["input"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function str2bytesArray(&$conf){

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

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

                #初始化儲存bytes陣列
                $result["content"]=array();

                #如果沒有參數
                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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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

                #當字串還有內容
                while(strlen($conf["input"])>0)
                {
                        #取得一個字串
                        $char=substr($conf["input"],0,1);

                        #儲存16進位的bytes數字
                        $result["content"][]=strtoupper(sprintf("%02s",(base_convert(ord($char),10,16))));

                        #取得剩下的字串
                        $conf["input"]=substr($conf["input"],1);

                }#while end

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

                #回傳
                return $result;

                }#funcrion str2bytesArray end

        /*
        #函式說明:
        #將字串中的每個字變成hex的字串
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],hex字串.
        #必填參數:
        #$conf["input"],字串,要轉換成hex字串的字串.
        $conf["input"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function str2hexStr(&$conf){

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

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

                #初始化儲存bytes陣列
                $result["content"]=array();

                #如果沒有參數
                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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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

                #透過 stringProcess::str2bytesArray 取得 hex字串陣列
                $conf["stringProcess::str2bytesArray"]["input"]=$conf;
                $str2bytesArray=stringProcess::str2bytesArray($conf["stringProcess::str2bytesArray"]);
                unset($conf["stringProcess::str2bytesArray"]);

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

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

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

                        #回傳結果
                        return $resutl;

                        }#if end

                #函式說明:
                #將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
                #回傳的結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["function"],當前執行的function名稱
                #$result["error"],錯誤訊息陣列.
                #$result["content"],處理好的字串.
                #$result["argu"],使用的參數.
                #必填參數:
                #$conf["inputArray"],字串陣列,要轉成字串的一維陣列.
                $conf["arrays::arrayToString"]["inputArray"]=$str2bytesArray["content"];
                #可省略參數:
                #$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為;
                #$conf["spiltSymbol"]=";";
                #$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
                #$conf["skipEnd"]="";
                #參考資料:
                #無.
                #備註:
                #無.
                $arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
                unset($conf["arrays::arrayToString"]);

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

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

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

                        #回傳結果
                        return $resutl;

                        }#if end

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

                #設置回傳的內容
                $result["content"]=$arrayToString["content"];

                #回傳結果
                return $result;

                }#function str2hexStr end

        /*
        #函式說明:
        #將bytes數字(16進位)轉換為bit字串(0跟1來表述)
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],bit字串(0跟1來表述).
        #必填參數:
        #$conf["bytes"],字串,要轉換成bit的bytes數字.
        $conf["bytes"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function bytes2bitString(&$conf){

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

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

                #初始化結果
                $result["content"]=array();

                #如果沒有參數
                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($conf===null){

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

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("bytes");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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

                #儲存2進位數值
                $result["content"]=sprintf("%08s",base_convert($conf["bytes"],16,2));

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

                #回傳
                return $result;

                }#function bytes2bitString end

        /*
        #函式說明:
        #將2進位的8位數字字串,變成bytes字串.
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],bytes字串,亦即其代表的一個字.
        #必填參數:
        #$conf["8bits"],字串,要轉換成byte字串的bit數字字串,小於8位會於前頭補0,若非2進位的bit數字字串,則會報錯.
        $conf["8bits"]="00000000";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function bit2byteStr($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

                        #函式說明:
                        #取得簡單的錯誤訊息
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["content"],結果.
                        #$result["function"],當前執行的函數
                        #$result["error"],涵式錯誤訊息陣列
                        #必填參數:
                        $conf["variableCheck::getSimpleError"]=array();
                        #$conf["error"],陣列,要處理的變數.
                        $conf["variableCheck::getSimpleError"]["error"]=$result;
                        #可省略參數:
                        #無
                        #參考資料:
                        #無.
                        #備註:
                        #無.
                        $getSimpleError=variableCheck::getSimpleError($conf["variableCheck::getSimpleError"]);
                        unset($conf["variableCheck::getSimpleError"]);

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

                                #設置執行錯誤訊息
                                $result["error"][]=$getSimpleError;

                                #回傳結果
                                return $result;

                                }#if end

                        #設置 $simpleError
                        $result["simpleError"]=$getSimpleError["content"];

                        #回傳結果
                        return $result;

                        }#if end

                #設置放置的參數
                $result["argu"]=$conf;

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],執行不正常結束的錯訊息陣列.
                #$result["simpleError"],簡單表示的錯誤訊息.
                #$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("8bits");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$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["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果長度大於8
                if(strlen($conf["8bits"])>8){

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

                        #設置錯誤訊息陣列
                        $result["error"][]="請確認為8bits字串";

                        #回傳結果
                        return $result;

                        }#if end

                #取得結果字串
                $result["content"]=chr(base_convert($conf["8bits"],2,10));

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

                #回傳結果
                return $result;

                }#function bit2bytes end

        /*
        #函式說明:
        #隨機產生任意byte(s)組成的字串.
        #回傳結果:
        #$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
        #$result["function"],當前執行的函式內容.
        #$result["error"],錯誤訊息陣列.
        #$result["content"],用字串來表示的byte(s).
        #必填參數:
        #無.
        #可省略參數:
        #$conf["length"],字串,要產生多少bytes的字串,預設為1.
        #$conf["length"]="1";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function randomByte(&$conf){

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

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

                #取得參數
                $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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],執行不正常結束的錯訊息陣列.
                #$result["simpleError"],簡單表示的錯誤訊息.
                #$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["mustBeFilledVariableName"]=array();
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".
                #$conf["mustBeFilledVariableType"]=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("length");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("length");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("1");
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".
                #$conf["disallowAllSkipableVarNotExist"]="";
                #$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["status"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #初始化儲存用字串來表示的byte(s).
                $result["content"]="";

                #要多少bytes就跑幾次
                for($i=0;$i<$conf["length"];$i++){

                        #暫存byte
                        $byte="";

                        #隨機產生該byte開始bit不為0的位置
                        $bitNotZeroAddr=\rand(0,7);

                        #每個bit都跑一次
                        for($j=0;$j<8;$j++){

                                #如果還沒開始有資料
                                if($j<$bitNotZeroAddr){

                                        #加0
                                        $byte=$byte."0";

                                        #下一個迴圈
                                        continue;

                                        }#if end

                                #隨機產生bit
                                $bit=\rand(0,1);

                                #加bit
                                $byte=$byte.(string)($bit);

                                }#for end

                        #用字串來表示byte
                        $byte=chr(base_convert($byte,2,10));

                        #串接byte
                        $result["content"]=$result["content"].$byte;

                        }#for end

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

                #回傳結果
                return $result;

                }#function randomByte end

        /*
        #函式說明:
        #判斷字串是否一定需要經過escapeshellarg才能為單一shell參數,並回傳可以成為單一shell參數的結果.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #$result["argu"],使用的參數.
        #$result["content"],字串,單一shell參數.
        #$result["required"],字串,"true"代表content為 escape後的結果;反之為"false".
        #$result["urlEncodeStr"],字串,未被escape過的單一shell參數被url encode後的結果.
        #必填參數:
        #$conf["str"],字串,認為要為單一 shell參數的字串.
        #$conf["str"]="";
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function toSingleShellArg(&$conf){

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

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

                #取得參數
                $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["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],執行不正常結束的錯訊息陣列.
                #$result["simpleError"],簡單表示的錯誤訊息.
                #$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("str");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=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["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["skipableVariableName"]=array();
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["skipableVariableType"]=array();
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".
                #$conf["disallowAllSkipableVarNotExist"]="";
                #$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["variable::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

                #取得 str 的 bytes 數
                $strLength=strlen($conf["str"]);

                #初始化 url encode 後的 str 參數
                $result["urlEncodeStr"]="";

                #如果不是空字串
                if($strLength!==0){

                        #函式說明:
                        #將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
                        #回傳結果:
                        #$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
                        #$result["function"],當前執行的函數.
                        #$result["error"],錯誤訊息陣列.
                        #$result["argu"],使用者參數.
                        #$result["changedPath"],處理完後回傳的目錄字串.
                        #$result["oriPath"],原始的路徑字串
                        #必填參數:
                        #$conf["dirStr"],字串,要處理的檔案目錄字串.
                        $conf["stringProcess::changeDirByDotDotSolidus"]["dirStr"]=pathinfo(__FILE__)["dirname"]."/../../bin/parse";
                        #可省略參數:
                        #無.
                        #參考資料:
                        #無.
                        #備註:
                        #考慮用realpath取代
                        $changeDirByDotDotSolidus=stringProcess::changeDirByDotDotSolidus($conf["stringProcess::changeDirByDotDotSolidus"]);
                        unset($conf["stringProcess::changeDirByDotDotSolidus"]);

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

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

                                #設置錯誤訊息陣列
                                $result["error"]=$changeDirByDotDotSolidus;

                                #回傳結果
                                return $result;

                                }#if end

                        #設置要執行的指令
                        $cmd=escapeshellarg($changeDirByDotDotSolidus["changedPath"])." ".$conf["str"];

                        #執行指令
                        exec($cmd,$output,$status);

                        #如果執行失敗
                        if($status!==0){

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

                                #設置錯誤訊息陣列
                                $result["error"][]="run command(".$cmd.") failed!";

                                #回傳結果
                                return $result;

                                }#if end

                        #如果沒有輸出
                        if(count($output)<1){

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

                                #設置錯誤訊息陣列
                                $result["error"][]="no output from command(".$cmd.")";

                                #回傳結果
                                return $result;

                                }#if end

                        #如果輸出不是 json
                        if(json_validate($output[0])===false){

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

                                #設置錯誤訊息陣列
                                $result["error"][]="output from command(".$cmd.") is not json";

                                #回傳結果
                                return $result;

                                }#if end

                        #array of json decode
                        $resArray=(array)(json_decode($output[0]));

                        #如果解析出來的元素數量不為2
                        if(count($resArray)!==2){

                                #設置需要 escape
                                $result["required"]="true";

                                #設置 content 為原始內容
                                $result["content"]=escapeshellarg($conf["str"]);

                                #設置url encode後的內容
                                $result["urlEncodeStr"]=urlencode($conf["str"]);

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

                                #回傳結果
                                return $result;

                                }#if end

                        #反之,有被解析成單一 shell參數
                        else{

                                #如果開頭跟結尾是"'"
                                if( $conf["str"][0]==="'" && $conf["str"][$strLength-1]==="'"){

                                        #剔除前面的"'"
                                        $altStr=substr($conf["str"],1);

                                        #剔除後面的"'"
                                        $altStr=substr($altStr,0,strlen($altStr)-1);

                                        #設置要執行的指令
                                        $cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$altStr;

                                        #執行指令
                                        exec($cmd,$output,$status);

                                        #如果執行失敗
                                        if($status!==0){

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

                                                #設置錯誤訊息陣列
                                                $result["error"][]="run command(".$cmd.") failed!";

                                                #設置錯誤訊息陣列
                                                $result["error"][]="output:".print_r($output,true);

                                                #回傳結果
                                                return $result;

                                                }#if end

                                        #如果沒有輸出
                                        if(count($output)<1){

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

                                                #設置錯誤訊息陣列
                                                $result["error"][]="no output from command(".$cmd.")";

                                                #回傳結果
                                                return $result;

                                                }#if end

                                        #如果輸出不是 json
                                        if(json_validate($output[0])===false){

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

                                                #設置錯誤訊息陣列
                                                $result["error"][]="output from command(".$cmd.") is not json";

                                                #回傳結果
                                                return $result;

                                                }#if end

                                        #array of json decode
                                        $resArray=(array)(json_decode($output[0]));

                                        #如果解析出來的元素數量不為2
                                        if(count($resArray)!==2){

                                                #設置需要 escape
                                                $result["required"]="true";

                                                #設置 content 為原始內容
                                                $result["content"]=$conf["str"];

                                                #設置取得 shell arg 的指令
                                                $cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$result["content"];

                                                #初始化輸出
                                                $output=array();

                                                #執行指令
                                                exec($cmd,$output,$status);

                                                #如果執行失敗
                                                if($status!==0){

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

                                                        #設置錯誤訊息陣列
                                                        $result["error"][]="run command(".$cmd.") failed!";

                                                        #回傳結果
                                                        return $result;

                                                        }#if end

                                                #如果沒有輸出
                                                if(count($output)<1){

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

                                                        #設置錯誤訊息陣列
                                                        $result["error"][]="no output from command(".$cmd.")";

                                                        #回傳結果
                                                        return $result;

                                                        }#if end

                                                #如果輸出不是 json
                                                if(json_validate($output[0])===false){

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

                                                        #設置錯誤訊息陣列
                                                        $result["error"][]="output from command(".$cmd.") is not json";

                                                        #回傳結果
                                                        return $result;

                                                        }#if end

                                                #array of json decode
                                                $resArray=(array)(json_decode($output[0]));

                                                #如果解析出來的元素數量不為2
                                                if(count($resArray)!==2){

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

                                                        #設置錯誤訊息陣列
                                                        $result["error"][]="output from command(".$cmd.") is not valid";

                                                        #回傳結果
                                                        return $result;

                                                        }#if end

                                                #設置url encode後的內容
                                                $result["urlEncodeStr"]=urlencode($resArray[1]);

                                                }#if end

                                        #反之
                                        else{

                                                #設置不需要 escape
                                                $result["required"]="false";

                                                #設置 content 為未 escape 的內容
                                                $result["content"]=$altStr;

                                                #設置url encode後的內容
                                                $result["urlEncodeStr"]=urlencode($result["content"]);

                                                }#else end

                                        }#if end

                                #反之
                                else{

                                        #設置不需要 escape
                                        $result["required"]="false";

                                        #設置 content 為 str 的內容
                                        $result["content"]=$conf["str"];

                                        #設置url encode後的內容
                                        $result["urlEncodeStr"]=urlencode($result["content"]);

                                        }#else end

                                }#else end

                        }#if end

                #反之
                else{

                        #設置需要 escape
                        $result["required"]="true";

                        #設置 content 為原始內容
                        $result["content"]=escapeshellarg("");

                        }#else end

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

                #回傳結果
                return $result;

                }#function toSingleShellArg end

        }#class stringProcess end

?>