Rev 218 | 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~2025 MIN ZHI, CHENThis file is part of QBPWCF.QBPWCF is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.QBPWCF is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with QBPWCF. If not, see <http://www.gnu.org/licenses/>.*/namespace qbpwcf;/*類別說明:跟搜尋功能相關的類別.備註:無.*/class search{/*#函式說明:#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#必填參數:#$method,物件,為物件實體或類別名稱,會自動置入該參數.#$arguments,陣列,為呼叫方法時所用的參數.#可省略參數:#無.#參考資料:#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic#備註:#無.*/public function __call($method,$arguments){#取得當前執行的函式$result["function"]=__FUNCTION__;#設置執行不正常$result["status"]="false";#設置執行錯誤$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";#設置所丟入的參數$result["error"][]=$arguments;#回傳結果return $result;}#function __call end/*#函式說明:#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#必填參數:#$method,物件,為物件實體或類別名稱,會自動置入該參數.#$arguments,陣列,為呼叫方法時所用的參數.#可省略參數:#無.#參考資料:#__callStatic=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic#備註:#無.*/public static function __callStatic($method,$arguments){#取得當前執行的函式$result["function"]=__FUNCTION__;#設置執行不正常$result["status"]="false";#設置執行錯誤$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";#設置所丟入的參數$result["error"][]=$arguments;#回傳結果return $result;}#function __callStatic end/*#函式說明:#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.#回傳結果:#$result["status"],"true"表示執行正確,"false"表示執行錯誤.#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.#$result["error"],錯誤訊息#$result["function"],當前執行的函數名稱#$result["argv"],使用的參數#$result["equalVarName"],相等的變數名稱或key.#$result["equalVarValue"],相等的變數數值內容.#必填參數:#$conf["conditionElement"],字串,條件元素,要等於的元素內容.$conf["conditionElement"]="";#$conf["compareElements"],字串陣列,要比對的陣列變數內容.$conf["compareElements"]=array();#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function getEqualVar(&$conf){#初始化要回傳的變數$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($conf==null){#設置執行錯誤訊息$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";}#if end#回傳結果return $result;}#if end#取得使用的參數$result["argv"]=$conf;#如果 $conf["conditionElement"] 沒有設置if(!isset($conf["conditionElement"])){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]="\$conf[\"conditionElement\"]參數沒設定!";#回傳結果return $result;}#if end#如果 $conf["compareElements"] 沒有設置if(!isset($conf["compareElements"])){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]="\$conf[\"compareElements\"]參數沒設定!";#回傳結果return $result;}#if end#有幾個 $conf["compareElements"] 要用來比對,就執行幾次foreach($conf["compareElements"] as $key=>$value){#debug#var_dump($conf["conditionElement"],$value);#如果要判斷的參數與要用來比對的參數有相同if($conf["conditionElement"]===$value){#執行正確$result["status"]="true";#判斷結果設爲 "true"$result["founded"]="true";#取得該元素的key$result["equalVarName"]=$key;#取得該變數$result["equalVarValue"]=$value;#回傳結果return $result;}#if end}#foreache end#執行到這邊代表沒有找到$result["founded"]="false";#執行正確$result["status"]="true";#回傳結果return $result;}#function getEqualVar end/*#函式說明:#檢查多個數值,是否與陣列裏面的某些元素相同。#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["function"],當前執行的函數#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤#$result["founded"][$i],若爲"false"代表沒有相同的元素;反之"true"代表有相同的元素,$i爲第i+1個$conf["inputElement"]參數判斷後的結果.#$result["key"][$i],為找到$conf["inputElement"]第$i+1個元素的值是在$conf["blackBoxElement"]中的哪個元素.#必填參數:#$conf["inputElement"],字串陣列,想要找到的變數/數值.$conf["inputElement"]=array();#$conf["blackBoxElement"]=,字串陣列,要從哪些變數/數值去尋找.$conf["blackBoxElement"]=array();#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function checkEquality(&$conf){#初始化要回傳的內容$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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("inputElement","blackBoxElement");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可以省略的參數:#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。#$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["skipableVarDefaultValue"]=array("");#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["variableCheck.checkArguments"]["arrayCountEqualCheck"][]=array();$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((count($conf["inputElement"])>0) && (count($conf["blackBoxElement"])>0)){#有幾個 $conf["inputElement"] 要判斷,就執行幾次foreach($conf["inputElement"] as $inputElementKey=>$inputElementValue){#檢查 $inputElementValue 是否存在於 $conf["blackBoxElement"] 陣列裡面#函式說明:#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.#回傳結果:#$result["status"],"true"表示執行正確,"false"表示執行錯誤.#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.#$result["error"],錯誤訊息#$result["function"],當前執行的函數名稱#$result["equalVarName"],相等的變數名稱或key.#$result["equalVarValue"],相等的變數數值內容.#必填參數:$conf["self::getEqualVar"]["conditionElement"]=$inputElementValue;#條件元素,要等於的元素內容.$conf["self::getEqualVar"]["compareElements"]=$conf["blackBoxElement"];#要比對的陣列變數內容.$getEqualVar=self::getEqualVar($conf["self::getEqualVar"]);unset($conf["self::getEqualVar"]);#如果檢查失敗if($getEqualVar["status"]==="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$getEqualVar;#回傳結果return $result;}#if end#如果有找到if($getEqualVar["founded"]==="true"){#設置第 $inputElementKey+1 個參數有找到$result["founded"][$inputElementKey]="true";#設置找到的參數是在 $conf["blackBoxElement"] 參數的哪個key$result["key"][$inputElementKey]=$getEqualVar["equalVarName"];}#if end#反之else{#設置第 $inputElementKey+1 個參數找不到$result["founded"][$inputElementKey]="false";}#else end}#foreach end}#if end#執行到這邊代表執行正常$result["status"]="true";#回傳結果return $result;}#function checkEquality end/*#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["checkString"]="";#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.#$conf["frontWord"]="";#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.#$conf["tailWord"]="";#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.*/public static function getMeetConditionsString(&$conf){#初始化要回傳的結果$result=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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[$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("checkString");#$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["canBeEmptyString"]="false";#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.#$conf["skipableVariableCanNotBeEmpty"]=array();#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("frontWord","tailWord");#$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(null,null);#$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"]);#debug#var_dump($checkArguments);# 如果 $checkArguments["status"] 為 "false"if($checkArguments["status"]=="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end# 如果 $checkArguments["passed"] 為 "false"if($checkArguments["passed"]=="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#預設有找到一樣的字串$result["founded"]="true";#設置要回傳的字串$result["returnString"]=$conf["checkString"];#初始化移除字首字尾後的內容$result["content"]=$result["returnString"];#將要檢查的字串分割成一個個字的陣列字串$checkString=str_split($result["content"]);#如果 $conf["frontWord"] 有設置if(isset($conf["frontWord"])){#將用來檢查字首應該要有什麼字串的字串分割成一個個字的陣列字串$frontWord=str_split($conf["frontWord"]);#如果要尋找的字首長度大於要檢查的字串長度if(count($frontWord)>count($checkString)){#設置執行正常$result["status"]="true";#設置錯誤訊息$result["warning"][]="要尋找的字首(".$conf["frontWord"].")長度(".count($frontWord).")大於要檢查的字串(".$conf["checkString"].")長度(".count($checkString).")";#設置沒有找到一樣的字串$result["founded"]="false";#回傳結果return $result;}#if end#依據條件字首的長度來依序檢查for($i=0;$i<count($frontWord);$i++){#debug#var_dump(__FUNCTION__,__LINE__,$conf["checkString"],$checkString[$i],$conf["frontWord"],$frontWord[$i]);#如果其中一個字不相符if($checkString[$i]!=$frontWord[$i]){#則設置結果失敗$result["status"]="true";#設置沒有找到一樣的字串$result["founded"]="false";#回傳結果return $result;}#if end}#for 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["frontWord"];#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.#$conf["recursive"]="true";#參考資料:#無.#備註:#無.$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);unset($conf["stringProcess::delStrBeforeKeyWord"]);#debug#var_dump($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"],處理好的的字串內容.#必填參數:#$conf["stringIn"],字串,要處理的字串.$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["frontWord"];#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.#$conf["recursive"]="true";#參考資料:#無.#備註:#無.$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);unset($conf["stringProcess::delStrBeforeKeyWord"]);#debug#var_dump($delStrBeforeKeyWord);# 如果執行出錯if($delStrBeforeKeyWord["status"]=="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end# 如果執行出錯if($delStrBeforeKeyWord["founded"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end#取得處理好的內容$result["content"]=$delStrBeforeKeyWord["content"];#更新要檢查的字串,將其分割成一個個字的陣列字串$checkString=str_split($result["content"]);}#if end#如果 $conf["tailWord"] 有設置if(isset($conf["tailWord"])){#debug#var_dump($conf["tailWord"]);#將用來檢查字尾應該要有什麼字串的字串分割成一個個字的陣列字串$tailWord=str_split($conf["tailWord"]);#如果要尋找的字尾長度大於要檢查的字串長度if(count($tailWord)>count($checkString)){#設置執行正常$result["status"]="true";#設置錯誤訊息$result["warning"][]="要尋找的字尾(".$conf["tailWord"].")長度(".count($tailWord).")大於要檢查的字串(".$conf["checkString"].")長度(".count($checkString).")";#設置沒有找到一樣的字串$result["founded"]="false";#回傳結果return $result;}#if end#依據條件字尾的長度來依序檢查for($i=0;$i<count($tailWord);$i++){#如果其中一個字不相符if($checkString[count($checkString)-1-$i]!=$tailWord[count($tailWord)-1-$i]){#則設置結果失敗$result["status"]="true";#設置沒有找到一樣的字串$result["founded"]="false";#回傳結果return $result;}#if end}#for 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"]=$result["content"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$conf["tailWord"];#可省略參數:#$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].#$conf["stringProcess::delStrAfterKeyWord"]["deleteLastRepeatedOne"]="true";#參考資料:#無.#備註:#無.$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);unset($conf["stringProcess::delStrAfterKeyWord"]);#debug#var_dump(__LINE__,$delStrAfterKeyWord);# 如果執行出錯if($delStrAfterKeyWord["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end# 如果沒有符合的結果if($delStrAfterKeyWord["founded"]==="false"){#設置執行錯誤的識別$result["status"]="true";#設置執行錯誤的訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#取得處理好的內容$result["content"]=$delStrAfterKeyWord["content"];#更新要檢查的字串,將其分割成一個個字的陣列字串$checkString=str_split($result["content"]);}#if end#通過以上檢測,設置結果成功。$result["status"]="true";#回傳結果return $result;}#function getMeetConditionsString end/*#函式說明:#取得多個符合特定字首與字尾的字串.#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["function"],當前執行的函數名稱.#$result["returnString"],爲符合字首條件的字串陣列內容.#$result["foundedKey"],找到的內容位於原本的哪一個元素.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串陣列,要檢查的字串們.$conf["checkString"]=array();#要檢查的字串陣列#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.#$conf["frontWord"]="";#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.#$conf["tailWord"]="";#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.*/public static function getMeetConditionsStringMulti(&$conf){#初始化要回傳的陣列$result=array();#初始化要暫存的搜尋結果陣列$getMeetConditionsString=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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[$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("checkString");#$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["variableCheck::checkArguments"]["skipableVariableName"]=array("frontWord","tailWord");#$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(null,null);#$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"]);# 如果 $checkArguments["status"] 為 "false"if($checkArguments["status"]=="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end# 如果 $checkArguments["passed"] 為 "false"if($checkArguments["passed"]=="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#針對有幾個字串要檢查,就執行幾次for($i=0;$i<count($conf["checkString"]);$i++){#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["returnString"],爲符合字首條件的字串內容。#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$conf["checkString"][$i];#可省略參數:#如果 $conf["frontWord"] 存在if(isset($conf["frontWord"])){#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["frontWord"]=$conf["frontWord"];}#if end#如果 $conf["tailWord"] 存在if(isset($conf["tailWord"])){#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["tailWord"]=$conf["tailWord"];}#if end#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。$getMeetConditionsString[]=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);}#for end#初始化沒有找到關鍵字$result["founded"]="false";#將符合條件的結果陣列取出for($i=0;$i<count($getMeetConditionsString);$i++){#如果尋找符合的字串失敗if($getMeetConditionsString[$i]["status"]=="false"){#如果錯誤是 "要尋找的字首長度大於要檢查的字串長度" 或 "要尋找的字尾長度大於要檢查的字串長度"if($getMeetConditionsString[$i]["error"][0]=="要尋找的字首長度大於要檢查的字串長度" || $getMeetConditionsString[$i]["error"][0]=="要尋找的字尾長度大於要檢查的字串長度"){#跳過執行正常,但不是我們要的結果continue;}#if end#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$getMeetConditionsString[$i];#回傳結果return $result;}#if end#如果有符合的字串if($getMeetConditionsString[$i]["founded"]=="true"){#將符合條件的字串回傳$result["returnString"][]=$getMeetConditionsString[$i]["returnString"];#找到的內容位於原本的哪一個元素$result["foundedKey"][]=$i;#設置有找到內容$result["founded"]="true";}#if end}#for end#通過以上檢測,將執行狀態結果設爲 true$result["status"]="true";#回傳結果return $result;}#function getMeetConditionsStringMulti end/*#函式說明:#取得符合多個特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容.#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["checkString"]="";#$conf["keyWord"],字串陣列,用來檢查字首、字尾應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.$conf["keyWord"]=array(array("front"=>"word","tail"=>"word"));#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function getMeetMultiConditionsString(&$conf){#初始化要回傳的陣列$result=array();#初始化要暫存的搜尋結果陣列$getMeetConditionsString=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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[$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("checkString","keyWord");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","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["variableCheck::checkArguments"]["skipableVariableName"]=array("keyWord");#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);#$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"]);# 如果 $checkArguments["status"] 為 "false"if($checkArguments["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end# 如果 $checkArguments["passed"] 為 "false"if($checkArguments["passed"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#針對每個可能的條件組合foreach($conf["keyWord"] as $keyWords){#檢查 $keyWords 是否有符合的元素#函式說明:#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.#回傳結果:#$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"]=&$keyWords;#$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代表不指定變數形態.#$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["skipableVariableCanNotBeEmpty"]=array();#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("front","tail");#$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("");#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";#$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".$conf["variableCheck::checkArguments"]["disallowAllSkipableVarNotExist"]="true";#$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"]);# 如果 $checkArguments["status"] 為 "false"if($checkArguments["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end# 如果 $checkArguments["passed"] 為 "false"if($checkArguments["passed"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$conf["checkString"];#可省略參數:#如果有設置開頭關鍵字if(isset($keyWords["front"])){#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["frontWord"]=$keyWords["front"];}#if end#如果有設置結尾關鍵字if(isset($keyWords["tail"])){#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["tailWord"]=$keyWords["tail"];}#if end#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);#如果執行失敗if($getMeetConditionsString["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$getMeetConditionsString;#回傳結果return $result;}#if end#如果沒有符合條件if($getMeetConditionsString["founded"]==="false"){#換下一個條件continue;}#if end#設置有找到符合字首條件的結果$result["founded"]=$getMeetConditionsString["founded"];#設置符合條件的字串,去掉字首字尾後的結果.$result["content"]=$getMeetConditionsString["content"];#設置符合字首字尾條件的字串內容。$result["returnString"]=$getMeetConditionsString["returnString"];#設置符合的關鍵字條件$result["meetConditions"]=$keyWords;#設置執行正常$result["status"]="true";#回傳結果return $result;}#foreach end#設置沒有找到符合字首條件的結果$result["founded"]="false";#設置執行正常$result["status"]="true";#回傳結果return $result;}#function getMeetMultiConditionsString end/*#函式說明:#取得符合多個特定字首與字尾之一的字串們#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["found"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],陣列,符合條件的字串,去掉字首字尾後的結果.每個元素包含三個key,分別為"content"代表符合條件後,剔除字首字尾後的內容;"oriStr"代表符合條件的字串內容;"meetConditions"代表符合的字首字尾條件.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],陣列字串,要檢查的陣列字串.$conf["checkString"]=array("");#$conf["keyWord"],字串陣列,用來檢查字首、字首應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.#$conf["keyWord"]=array(array("front"=>"word","tail"=>"word"));#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function getMeetMultiConditionsStrings(&$conf){#初始化要回傳的陣列$result=array();#初始化要暫存的搜尋結果陣列$getMeetConditionsString=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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[$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("checkString","keyWord");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("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["variableCheck::checkArguments"]["skipableVariableName"]=array("keyWord");#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);#$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"]);# 如果 $checkArguments["status"] 為 "false"if($checkArguments["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end# 如果 $checkArguments["passed"] 為 "false"if($checkArguments["passed"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#初始化有找到符合條件的結果陣列$result["content"]=array();#針對每個陣列字串foreach($conf["checkString"] as $lineStr){#函式說明:#取得符合多個特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容.#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetMultiConditionsString"]["checkString"]=$lineStr;#$conf["keyWord"],字串陣列,用來檢查字首、字首應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.$conf["search::getMeetMultiConditionsString"]["keyWord"]=$conf["keyWord"];#可省略參數:#無.#參考資料:#無.#備註:#無.$getMeetMultiConditionsString=search::getMeetMultiConditionsString($conf["search::getMeetMultiConditionsString"]);unset($conf["search::getMeetMultiConditionsString"]);# 如果執行出錯if($getMeetMultiConditionsString["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$getMeetMultiConditionsString;#回傳結果return $result;}#if end#如果有找到if($getMeetMultiConditionsString["founded"]==="true"){#設置結果元素$result["content"][]=array("content"=>$getMeetMultiConditionsString["content"],"oriStr"=>$getMeetMultiConditionsString["returnString"],"meetConditions"=>$getMeetMultiConditionsString["meetConditions"]);}#if end}#foreach end#預設沒有找到符合條件內容的識別$result["found"]="false";#如果有找到符合條件的結果if(count($result["content"])>0){#設置有找到符合條件內容的識別$result["found"]="true";}#if end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function getMeetMultiConditionsStrings end/*#函式說明:#檢查字串裡面有無指定的關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["error"],錯誤訊息#$result["function"],當前執行的函數名稱.#$result["argu"],使用的參數.#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。#$result["keyWordCount"],找到的關鍵字數量.#必填參數:#$conf["keyWord"],字串,想要搜尋的關鍵字.$conf["keyWord"]="";#$conf["string"],字串,要被搜尋的字串內容$conf["string"]="";#可省略參數:#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。#$conf["completeEqual"]="true";#參考資料:#無.#備註:#無.*/public static function findKeyWord(&$conf){#初始化要回傳的變數$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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("keyWord","string");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可以省略的參數:#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。$conf["variableCheck.checkArguments"]["canBeEmptyString"]="true";#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");$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["string"]===""){$keyWordCount=0;}#if end#反之else{#取得目標字串裡符合關鍵字的數目$keyWordCount = substr_count($conf["string"],$conf["keyWord"]);}#else end#儲存關鍵字的數量$result["keyWordCount"]=$keyWordCount;#如果有關鍵字在裡面if($keyWordCount>0){#如果 $conf["completeEqual"] 為 "true"if($conf["completeEqual"]=="true"){#函式說明:#處理字串避免網頁出錯#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["function"],當前執行的函數.#$result["content"],爲處理好的字串.#$result["error"],錯誤訊息陣列.#必填參數:$conf["stringProcess"]["correctCharacter"]["stringIn"]=$conf["string"];#爲要處理的字串#可省略的參數:$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array($conf["keyWord"]);#爲被選擇要處理的字串/字元,須爲陣列值。#若不設定則預設爲要將這些字串作替換("<" ">" ";" "=" "//" "'" "$" "%" "&" "|" "#" "/*" "*\/")。$conf["stringProcess"]["correctCharacter"]["changeTo"]=array("");#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。$processedString=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);unset($conf["stringProcess"]["correctCharacter"]);#如果處理字串失敗if($processedString["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$processedString;#回傳結果return $result;}#if end#如果拿掉關鍵字後,仍然有剩餘的容if($processedString["content"]!=""){#代表並不是完全符合#設置執行成功$result["status"]="true";#設置沒有找到完全符合的關鍵字$result["founded"]="false";#回傳結果return $result;}#if end}#if end#設置執行成功$result["status"]="true";#設置有找到關鍵字$result["founded"]="true";#回傳結果return $result;}#if end#反之else{#設置執行成功$result["status"]="true";#設置沒有找到關鍵字$result["founded"]="false";#回傳結果return $result;}#else end}#function findKeyWord end/*#函式說明:#檢查一個字串裡面是否有多個關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["founded"],是否有找到的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.#$result["foundedKeyWords"],找到的關鍵字.#$result["foundedAll"],是否有找到全部的關鍵字,"true"代表有;"false"代表沒有.#$result["argu"],使用的參數.#必填參數:#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.$conf["keyWords"]=array("");#$conf["string"],字串,要被搜尋的字串內容.$conf["string"]="";#可省略參數:#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合.#$conf["completeEqual"]="true";#參考資料:#無.#備註:#無.*/public static function findManyKeyWords(&$conf){#初始化要回傳的變數$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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("keyWords","string");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可以省略的參數:#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。#$conf["canBeEmptyString"]="false";#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");$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";#針對每個keyWordforeach($conf["keyWords"] as $keyWord){#函式說明:#檢查字串裡面有無指定的關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["error"],錯誤訊息#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。#必填參數:$conf["search"]["findKeyWord"]["keyWord"]=$keyWord;#想要搜尋的關鍵字$conf["search"]["findKeyWord"]["string"]=$conf["string"];#要被搜尋的字串內容#如果 $conf["completeEqual"] 有設置if(isset($conf["completeEqual"])){#如果 $conf["completeEqual"] 等於 "true"if($conf["completeEqual"]=="true"){$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。}#if end}#if end$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);unset($conf["search"]["findKeyWord"]);#如果尋找關鍵字出錯if($searchResult["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$searchResult;#回傳結果return $result;}#if end#如果有找到關鍵字if($searchResult["founded"]=="true"){#設置執行成功$result["status"]="true";#設置有找到其中一個符合的關鍵字$result["founded"]="true";#儲存找到的keyword$result["foundedKeyWords"][]=$keyWord;#回傳結果#return $result;}#if end}#foreach end#設置沒有找到所有的關鍵字$result["foundedAll"]="false";#如果有找到的關鍵字if(isset($result["foundedKeyWords"])){#設置有找到所有的關鍵字$result["foundedAll"]="true";#如果有關鍵字沒找到if(count($result["foundedKeyWords"])!==count($conf["keyWords"])){#設置沒有找到所有的關鍵字$result["foundedAll"]="false";}#if end}#設置執行成功$result["status"]="true";#回傳結果return $result;}#function findManyKeyWords end/*#函式說明:#檢查多個字串中的每個字串是否有多個關鍵字#回傳結果:#$result["status"],整體來說,執行是否成功,"true"代表執行成功,"false"代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息.#$result["argu"],使用的參數.#$result["foundedTrueKey"],結果為"true"的被搜尋元素key陣列,與其數值內容.#$result["foundedKeyWords"],找到的關鍵字陣列.#$result["foundedFalseKey"],結果為"false"的被搜尋元素key陣列,與其數值內容.#$result["foundedTrueKeyWords"],二維陣列,各個字串有找到的關鍵字陣列.#$result["foundedAll"],是否每個關鍵字都有找到,"true"代表每個都有找到,"false"代表沒有每個都找到.#$result["keyWordsIncludeStr"],陣列,儲存有找到關鍵字的來源的索引(sourceIndex)與其內容(sourceVal)跟找到的關鍵字項目陣列(KeyWords).#必填參數:#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.$conf["keyWords"]=array("");#$conf["stringArray"],字串陣列,要被搜尋的字串內容陣列.$conf["stringArray"]=array("");#可省略參數:#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為"false"不需要完全符合.#$conf["completeEqual"]="true";#參考資料:#無.#備註:#無.*/public static function findManyKeyWordsFromManyString(&$conf){#初始化要回傳的變數$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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("keyWords","stringArray");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可以省略的參數:#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。#$conf["canBeEmptyString"]="false";#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");$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["foundedFalseKey"]=array();$result["foundedTrueKey"]=array();$result["foundedKeyWords"]=array();$result["foundedTrueKeyWords"]=array();$result["keyWordsIncludeStr"]=array();#$conf["stringArray"] 陣列有幾個元素,就執行幾次。foreach($conf["stringArray"] as $key=>$value){#檢查一個字串裡面是否有多個關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["founded"],是否有找到的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.#$result["foundedKeyWords"],找到的關鍵字.#必填參數:$conf["search"]["findManyKeyWords"]["keyWords"]=$conf["keyWords"];#想要搜尋的關鍵字$conf["search"]["findManyKeyWords"]["string"]=$value;#要被搜尋的字串內容#可省略參數:#如果 $conf["completeEqual"] 有設定if(isset($conf["completeEqual"])){#設定其屬性$conf["search"]["findManyKeyWords"]["completeEqual"]=$conf["completeEqual"];#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。}#if end$searchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);unset($conf["search"]["findManyKeyWords"]);#如果檢查一個字串裡面是否有多個關鍵字失敗if($searchResult["status"]==="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$searchResult;#回傳結果return $result;}#if end#如果 $searchResult["founded"] 等於 "true"if($searchResult["founded"]==="true"){#取得該元素$result["foundedTrueKey"][$key]=$value;#儲存該元素存在的關鍵字$result["foundedTrueKeyWords"][$key]=$searchResult["foundedKeyWords"];#合併找到的關鍵字#函式說明:#將多個一維陣列串聯起來,key從0開始排序.#回傳的結果:#$result["status"],"true"表執行正常,"false"代表執行不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數.#$result["content"],合併好的一維陣列.#必填參數#$conf["inputArray"],陣列,要合併的一維陣列變數,例如:=array($array1,$array2);$conf["arrays::mergeArray"]["inputArray"]=array($result["foundedKeyWords"],$searchResult["foundedKeyWords"]);#可省略參數:#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.$conf["arrays::mergeArray"]["allowRepeat"]="false";#參考資料:#無.#備註:#無.$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);unset($conf["arrays::mergeArray"]);#如果失敗if($mergeArray["status"]==="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$mergeArray;#回傳結果return $result;}#if end#儲存找到的關鍵字$result["foundedKeyWords"]=$mergeArray["content"];#儲存有找到關鍵字的來源的索引與其內容跟找到的關鍵字$result["keyWordsIncludeStr"][]=array("sourceIndex"=>$key,"sourceVal"=>$value,"keyWords"=>$searchResult["foundedKeyWords"]);}#if end#如果 $searchResult["founded"] 等於 "false"else{#取得該元素$result["foundedFalseKey"][$key]=$value;}#if end}#foreach end#如果沒有找到的元素內容if(!isset($result["foundedTrueKey"])){#設置找到的元素內容為空$result["foundedTrueKey"]=array();#設置沒有找到全部的關鍵字$result["foundedAll"]="false";}#if end#如果所有關鍵字都找到了else if(count($result["foundedKeyWords"])===count($conf["keyWords"])){#設置有找到全部的關鍵字$result["foundedAll"]="true";}#if end#反之只有找到部分關鍵字else{#設置沒有找到全部的關鍵字$result["foundedAll"]="false";}#else end#執行到這邊代表執行成功$result["status"]="true";#回傳結果return $result;}#function findManyKeyWordsFromManyString end/*#函式說明:#檢查一個字串裡面是否沒有多個任何篩選字存在#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["function"],當前執行的函數#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤#$result["filtered"],該字串是否為要過濾掉的,"true"為要過濾掉的;"false"為不用過濾掉的#$result["argu"],使用的參數.#必填參數:#$conf["inputStr"],字串,要過濾的字串.$conf["inputStr"]="";#$conf["filterWord"],字串陣列,要過濾的字串不能含有該陣列元素之一.$conf["filterWord"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function filterString(&$conf){#初始化要回傳的內容$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($conf==null){#設置執行錯誤訊息$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";}#if end#回傳結果return $result;}#if end#取得使用的參數$result["argu"]=$conf;#檢查參數#函式說明:#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。#回傳結果:#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確#必填寫的參數:$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("inputStr","filterWord");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");#可以省略的參數:$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);unset($conf["variableCheck"]["isexistMuti"]);#如果檢查失敗if($checkResult["passed"]=="false"){#設置錯誤$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#針對每個過濾的字foreach($conf["filterWord"] as $filterWord){#檢查要過濾的字串是否含有要過濾的字#函式說明:#檢查字串裡面有無指定的關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["error"],錯誤訊息#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。#必填參數:$conf["search"]["findKeyWord"]["keyWord"]=$filterWord;#想要搜尋的關鍵字$conf["search"]["findKeyWord"]["string"]=$conf["inputStr"];#要被搜尋的字串內容#可省略參數:#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);unset($conf["search"]["findKeyWord"]);#var_dump($searchResult);#如果 $searchResult["founded"]等於"true"if($searchResult["founded"]=="true"){#則代表該字串為要過濾掉的#設置執行成功的識別$result["status"]="true";#設置該字串是要過濾掉的$result["filtered"]="true";#回傳結果return $result;}#if end}#foreach end#執行到這邊代表,都沒有要過濾掉#設置執行成功的識別$result["status"]="true";#設置該字串是不用過濾掉的$result["filtered"]="false";#回傳結果return $result;}#function filterString end/*#函式說明:#檢查多個字串裡面是否沒有多個任何篩選字存在#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["function"],當前執行的函數#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤#$result["filtered"],該字串是否為要過濾掉的識別陣列,"true"為要過濾掉的;"false"為不用過濾掉的#必填參數:#$conf["inputStr"],字串陣列,要過濾的字串陣列.$conf["inputStr"]=array("");#$conf["filterWord"],字串陣列,要過濾的字串不能含有該陣列元素之一.$conf["filterWord"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function filterMutiString(&$conf){#初始化要回傳的內容$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($conf==null){#設置執行錯誤訊息$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";}#if end#回傳結果return $result;}#if end#檢查參數#函式說明:#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。#回傳結果:#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確#必填寫的參數:$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("inputStr","filterWord");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");#可以省略的參數:$conf["variableCheck"]["isexistMuti"]["variableType"]=array("array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);unset($conf["variableCheck"]["isexistMuti"]);#如果檢查失敗if($checkResult["passed"]=="false"){#設置錯誤$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#針對每個要檢測是否要過濾掉的字串foreach($conf["inputStr"] as $inputStr){#函式說明:#檢查一個字串裡面是否沒有多個任何篩選字存在#回傳結果:#$result["status"],執行是否成功的識別,"true"為執行成功;"false"為執行失敗#$result["error"],錯誤訊息陣列#$result["filtered"],該字串是否為要過濾掉的,"true"為要過濾掉的;"false"為不用過濾掉的#必填參數:$conf["search"]["filterString"]["inputStr"]=$inputStr;#要過濾的字串$conf["search"]["filterString"]["filterWord"]=$conf["filterWord"];#要過濾的字串不能含有該陣列元素之一$filteredResult=search::filterString($conf["search"]["filterString"]);unset($conf["search"]["filterString"]);#儲存每個字串判斷後是否要篩選的結果$result["filtered"][]=$filteredResult["filtered"];}#foreach end#設置執行成功的識別$result["status"]="true";#回傳結果return $result;}#function filterMutiString end/*#函式說明:#檢查一個字串裡面是否有多個關鍵字,將每個關鍵字的搜尋結果回傳.#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息#$result["founded"][$i],是否找到第$i+1個關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.#必填參數:#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.$conf["keyWords"]=array("");#$conf["string"],字串,要被搜尋的字串內容.$conf["string"]="";#可省略參數:#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合.#$conf["completeEqual"]="true";#參考資料:#無.#備註:#無.*/public static function findManyKeyWordsLosse(&$conf){#初始化要回傳的變數$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($conf==null){#設置執行錯誤訊息$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";}#if end#回傳結果return $result;}#if end#函式說明:#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。#回傳結果:#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確#必填寫的參數:$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("keyWords","string");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");#可以省略的參數:$conf["variableCheck"]["isexistMuti"]["variableType"]=array("array","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);unset($conf["variableCheck"]["isexistMuti"]);#如果檢查失敗if($checkResult["passed"]=="false"){#設置錯誤$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#針對每個keyWordforeach($conf["keyWords"] as $keyWord){#函式說明:#檢查字串裡面有無指定的關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["error"],錯誤訊息#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。#必填參數:$conf["search"]["findKeyWord"]["keyWord"]=$keyWord;#想要搜尋的關鍵字$conf["search"]["findKeyWord"]["string"]=$conf["string"];#要被搜尋的字串內容#如果 $conf["completeEqual"] 有設置if(isset($conf["completeEqual"])){#如果 $conf["completeEqual"] 等於 "true"if($conf["completeEqual"]=="true"){$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。}#if end}#if end$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);unset($conf["search"]["findKeyWord"]);#如果沒有找到其中一個關鍵字if($searchResult["founded"]=="false"){#設置沒有找到第n個關鍵字$result["founded"][]="false";#設置沒有找到第n個關鍵字$result["founded"][$keyWord]="false";}#if end#反之有找到關鍵字else{#設置有找到第n個關鍵字$result["founded"][]="true";#設置有找到第n個關鍵字$result["founded"][$keyWord]="true";}#else end}#foreach end#設置執行成功$result["status"]="true";#回傳結果return $result;}#function findManyKeyWordsLoose end/*#函式說明:#取得關鍵字在字串的哪個位置(字首,字尾,中間)#回傳結果:#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["found"],是否有關鍵字存在,若為"true",代表存在;反之為"false".#$result["argu"],傳入的參數.#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.#必填參數:#$conf["inputStr"],字串,被搜尋的字串.$conf["inputStr"]="";#$conf["keyWord"],字串,關鍵字.$conf["keyWord"]="";#可省略參數:#無.#參考資料:#http://php.net/manual/en/function.strpos.php#備註:#無.*/public static function findKeyWordPosition(&$conf){#初始化要回傳的內容$result=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($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["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#預設沒有找到關鍵字$result["found"]="false";#預設不在開頭$result["head"]="false";#預設不在結尾$result["tail"]="false";#預設不在中間$result["center"]="false";#預設關鍵字的開始位置$result["indexS"]=-1;#預設關鍵字結束的位置$result["indexE"]=-1;#如果檢查不通過if($checkResult["passed"]=="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#取得關鍵字所在的位置$keyWordAddr=strpos($conf["inputStr"],$conf["keyWord"]);#如果關鍵字不存在於字串裡面if($keyWordAddr===FALSE){#設置執行正常$result["status"]="true";#回傳結果return $result;}#if end#如果關鍵字在字串開頭if($keyWordAddr==0){#設置在開頭$result["head"]="true";#設置有找到關鍵字$result["found"]="true";}#if end#反之else{#設置不在開頭$result["head"]="false";}#else end#如果關鍵字在字串結尾if($keyWordAddr==(strlen($conf["inputStr"])-strlen($conf["keyWord"]))){#設置在結尾$result["tail"]="true";#設置有找到關鍵字$result["found"]="true";}#if end#反之else{#設置不在結尾$result["tail"]="false";}#else end#如果關鍵字在字串中間if(($keyWordAddr>0 && $keyWordAddr<(strlen($conf["inputStr"])-strlen($conf["keyWord"])))||($result["head"]=="true" && $result["tail"]=="true")){#設置在中間$result["center"]="true";#設置有找到關鍵字$result["found"]="true";}#if end#反之else{#設置不在中間$result["center"]="false";}#else end#儲存關鍵字的開始位置$result["indexS"]=$keyWordAddr;#儲存關鍵字結束的位置$result["indexE"]=$result["indexS"]+strlen($conf["keyWord"]);#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findKeyWordPosition end/*#函式說明:#取得多個關鍵字在字串的哪個位置(字首,字尾,中間)#回傳結果:#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["argu"],傳入的參數.#$result["head"][i],第i個關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.#$result["tail"][i],第i個關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.#$result["center"][i],第i個關鍵字是否在字串的中間,"true"代表是,"false"代表不是.#$result["indexS"][i],第i個關鍵字在被搜尋字串的哪個位置開始.#$result["indexE"][i],第i個關鍵字在被搜尋字串的哪個位置結束.#必填參數:#$conf["inputStr"],字串,被搜尋的字串.$conf["inputStr"]="";#$conf["keyWords"],字串陣列,要搜尋的多個關鍵字$conf["keyWords"]=array("");#可省略參數:#無.#參考資料:#http://php.net/manual/en/function.strpos.php#備註:#無.*/public static function findKeyWordsPosition(&$conf){#初始化要回傳的內容$result=array();#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#如果 $conf 不為陣列if(gettype($conf)!="array"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"][]="\$conf變數須為陣列形態";#如果傳入的參數為 nullif($conf==null){#設置執行錯誤訊息$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";}#if end#回傳結果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("inputStr","keyWords");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.#$conf["variadble::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["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["passed"]=="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#針對每個關鍵字foreach($conf["keyWords"] as $keyWord){#函式說明:#取得關鍵字在字串的哪個位置(字首,字尾,中間)#回傳結果:#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["argu"],傳入的參數.#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.#必填參數:#$conf["inputStr"],字串,被搜尋的字串.$conf["search::findKeyWordPosition"]["inputStr"]=$conf["inputStr"];#$conf["keyWord"],字串,關鍵字.$conf["search::findKeyWordPosition"]["keyWord"]=$keyWord;#可省略參數:#無.#參考資料:#http://php.net/manual/en/function.strpos.php#備註:#無.$findKeyWordPosition=search::findKeyWordPosition($conf["search::findKeyWordPosition"]);unset($conf["search::findKeyWordPosition"]);#如果檢查失敗if($findKeyWordPosition["status"]=="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$findKeyWordPosition;#回傳結果return $result;}#if end#取得head的結果$result["head"][]=$findKeyWordPosition["head"];#取得center的結果$result["center"][]=$findKeyWordPosition["center"];#取得tail的結果$result["tail"][]=$findKeyWordPosition["tail"];#取得indexS的結果$result["indexS"][]=$findKeyWordPosition["indexS"];#取得indexE的結果$result["indexE"][]=$findKeyWordPosition["indexE"];}#foreach end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findKeyWordsPosition end/*#函式說明:#取得兩關鍵字中的內容.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["content"],兩關鍵字中的內容.#$result["argu"],所使用的參數.#必填參數:#$conf["input"],字串,要解析的字串.$conf["input"]="";#$conf["leftKeyWord"],字串,左邊的關鍵字.$conf["leftKeyWord"]="";#$conf["rightKeyWord"],字串,右邊的關鍵字.$conf["rightKeyWord"]="";#可省略參數:#無#參考資料:#無.#備註:#無.*/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變數須為陣列形態";#如果傳入的參數為 nullif($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","leftKeyWord","rightKeyWord");#$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["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["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["warning"],警告訊息鎮列.#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.#$result["function"],當前執行的函數名稱.#$result["oriStr"],要處理的原始字串內容.#$result["content"],處理好的的字串內容.#必填參數:$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];#要處理的字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["leftKeyWord"];#特定字串.$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"]="false";#設置執行錯誤訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end#取得處理好的字串$parsedStr=$delStrBeforeKeyWord["content"];#函式說明:#將字串特定關鍵字與其後面的內容剔除#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["warning"],警告訊息鎮列.#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.#$result["function"],當前執行的函數名稱.#$result["oriStr"],要處理的原始字串內容.#$result["content"],處理好的的字串內容.#必填參數:$conf["stringProcess::delStrAfterKeyWord"]["stringIn"]=$parsedStr;#要處理的字串.$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$conf["rightKeyWord"];#特定字串.$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);unset($conf["stringProcess::delStrAfterKeyWord"]);#如果移除關鍵字後的內容失敗if($delStrAfterKeyWord["status"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#如果沒有指定關鍵字if($delStrAfterKeyWord["founded"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#取得處理好的字串$parsedStr=$delStrAfterKeyWord["content"];#取得中間的內容$result["content"]=$parsedStr;#設置執行正常$result["status"]="true";#回傳結果return $result;}#function getContentBetweenKeyWord end/*#函式說明:#尋找檔案裡面有無關鍵字存在,取得其所在列數與內容.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.#$result["content"],符合的列數與內容.#$result["content"][$i]["LN"],第$i+1個符合條件的列數.#$result["content"][$i]["LC"],第$i+1個符合條件的列內容.#必填參數:#$conf["fileAddr"],字串,檔案的路徑與名稱.$conf["fileAddr"]="";#$conf["keyWord"],字串,要搜尋的關鍵字.$conf["keyWord"]="";#$conf["fileArgu"],字串,__FILE__的內容$conf["fileArgu"]=__FILE__;#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function findKeyWordInFile(&$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變數須為陣列形態";#如果傳入的參數為 nullif($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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileAddr","keyWord","fileArgu");#$conf["variableCheck::checkArguments"]["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["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("username","password","port","title","fullScreen","spicePassword");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();$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["status"],"true"爲建立成功,"false"爲建立失敗.#$result["error"],錯誤訊息陣列.#$result["function"],函數名稱.#$result["content"],網址,若是在命令列執行,則為"null".#$result["webPathFromRoot"],相對於網頁根目錄的路徑.#$result["fileSystemAbsoulutePosition"],針對伺服器端的絕對位置,亦即從網頁「/」目錄開始的路徑.#$result["fileSystemRelativePosition"],針對伺服器檔案系統的相對位置.#必填參數:#$conf["address"],字串,檔案的相對位置,若為絕對位置則會自動轉換成相對位置.$conf["fileAccess::getInternetAddress"]["address"]=$conf["fileAddr"];#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.$conf["fileAccess::getInternetAddress"]["fileArgu"]=$conf["fileArgu"];#可省略參數:#$conf["userDir"],字串,網頁是否置放於家目錄底下,"true"為是,"false"為不是,預設為"true".#$conf["userDir"]="true";#備註:#在命令列執行,所得的路徑是錯誤的。$getInternetAddress=fileAccess::getInternetAddress($conf["fileAccess::getInternetAddress"]);unset($conf["fileAccess::getInternetAddress"]);#如果解析檔案位置失敗if($getInternetAddress["status"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤$result["error"]=$getInternetAddress;#回傳結果return $result;}#if end#取得檔案的相對位置$fileRelativeAddr=$getInternetAddress["fileSystemRelativePosition"];#取得檔案的絕對位置$fileAbsolute=$getInternetAddress["fileSystemAbsoulutePosition"];#讀取檔案內容#函式說明:#依據行號分隔抓取檔案的內容,結果會回傳一個陣列#回傳的變數說明:#$result["status"],執行是否成功,"true"代表成功;"fasle"代表失敗.#$result["error"],錯誤訊息提示.#$result["warning"],警告訊息.#$result["function"],當前執行的函數名稱.#$result["fileContent"],爲檔案的內容陣列.#$result["lineCount"],爲檔案內容總共的行數.#$result["fullContent"],為檔案的完整內容.#必填參數:#$conf["filePositionAndName"],字串,爲檔案的位置以及名稱.$conf["fileAccess::getFileContent"]["filePositionAndName"]=$fileAbsolute;#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑$conf["fileAccess::getFileContent"]["fileArgu"]=$conf["fileArgu"];#參考資料:#file(),取得檔案內容的行數.#file=>http:#php.net/manual/en/function.file.php#rtrim(),剔除透過file()取得每行內容結尾的換行符號.#filesize=>http://php.net/manual/en/function.filesize.php$getFileContent=fileAccess::getFileContent($conf["fileAccess::getFileContent"]);unset($conf["fileAccess::getFileContent"]);#如果讀取檔案內容失敗if($getFileContent["status"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤$result["error"]=$getInternetAddress;#回傳結果return $result;}#if end#設置沒有找到關鍵字$result["founded"]="false";#針對每列內容foreach($getFileContent["fileContent"] as $LN=>$LC){#搜尋含有關鍵字的列數$searchResult=strpos($LC,$conf["keyWord"]);#如果有搜尋到內容if($searchResult!==false){#記錄列數$res["LN"]=$LN;#記錄內容$res["LC"]=$LC;#儲存到要回傳的內容$result[]=$res;#設置有找到關鍵字$result["founded"]="true";}#if end}#foreach end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findKeyWordInFile end/*#函式說明:#尋找字串是否存在對應的關鍵字,且符合的最常關鍵字為何?#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.#$result["content"],最符合的字串完整內容.#必填參數:#$conf["input"],字串,要比對的字串.$conf["input"]="";#$conf["keyWord"],字串陣列,要搜尋的關鍵字.$conf["keyWord"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function findLikelyStr(&$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變數須為陣列形態";#如果傳入的參數為 nullif($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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input","keyWord");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");#$conf["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("username","password","port","title","fullScreen","spicePassword");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();$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#暫存符合的關鍵字$tmp="";#初始化未找到符合的關鍵字$result["found"]="false";#真對每個關鍵字foreach($conf["keyWord"] as $keyWord){#如果關鍵字為 ""if($keyWord===""){#跳過continue;}#if end#如果有符合的開頭關鍵字.if(strpos($conf["input"],$keyWord)===0){#如果 $keyWord 大於已符合的關鍵字if(strlen($keyWord)>strlen($tmp)){#記錄起來$tmp=$keyWord;#設置有找到關鍵字$result["found"]="true";}#if end}#if end}#foreach end#設置找到的關鍵字$result["content"]=$tmp;#設置執行正常$result["status"]="true";#回傳結果return $result;}#function find LikelyStr end/*#函式說明:#尋找陣列中有無符合的key#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.#必填參數:#$conf["key"],字串,要尋找的key.$conf["key"]="";#$conf["array"],陣列,要被搜尋的陣列.$conf["array"]=array();#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function findKeyInArray(&$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變數須為陣列形態";#如果傳入的參數為 nullif($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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("key","array");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");#$conf["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("username","password","port","title","fullScreen","spicePassword");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();$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#初始設置沒有找到對應的key$result["founded"]="false";#針對每個陣列元素foreach($conf["array"] as $key=>$val){#debug#var_dump($key);var_dump($conf["key"]);#如果找到相同的keyif((string)$key===$conf["key"]){#設置有找到對應的key$result["founded"]="true";#結束執行break;}#if end}#foreach ebd#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findKeyInArray end/*#函式說明:#判斷字串是否都為同一內容組成.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["equal"],判斷是否字串是都為同一字串組成,"true"代表是,"false"代表不是.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["input"]="";#$conf["keyWord"],字串,要判斷為什麼相同的字串組成.$conf["keyWord"]="";#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function checkStrEqual(&$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變數須為陣列形態";#如果傳入的參數為 nullif(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("input","keyWord");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.#$conf["canBeEmptyString"]="false";#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.#$conf["canNotBeEmpty"]=array();#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.#$conf["canBeEmpty"]=array();#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.#$conf["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["variableCheck::checkArguments"]);#如果執行失敗if($checkArguments["status"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if 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["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.$conf["stringProcess::delStrBeforeKeyWord"]["recursive"]="true";#$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#預設沒有符合$result["equal"]="false";#如果有找到關鍵字if($delStrBeforeKeyWord["founded"]==="true"){#若處理好的內容為"",則代表變數名稱是否都為 "$conf["keyWord"]" 所組成if($delStrBeforeKeyWord["content"]===""){#設置有符合$result["equal"]="true";}#if end}#if end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function checkStrEqual end/*#函式說明:#尋找字串中是否含有符合格式的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.#$result["parsedVar"][varName],陣列,解析好的變數陣列,varName為${}中的內容.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["input"]="";#$conf["format"],格式字串,要尋找的格式字串.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.$conf["format"]="";#可省略參數:#$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");#參考資料:#無.#備註:#無.*/public static function findSpecifyStrFormat(&$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變數須為陣列形態";#如果傳入的參數為 nullif(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("input","format");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.#$conf["canBeEmptyString"]="false";#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.#$conf["canNotBeEmpty"]=array();#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.#$conf["canBeEmpty"]=array();#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.#$conf["skipableVariableCanNotBeEmpty"]=array();#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("varEqual","varCon");#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","array");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);#$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["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("varEqual","varCon");#參考資料:#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["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#初始化儲存解析好的變數資訊陣列$result["parsedVar"]=array();#另存一份input$modifiedInput=$conf["input"];#預設分段的關鍵字為空$keyWordPart=array();#預設該行的變數為空$varPart=array();#關鍵字行的結構順序$OderOfPartInLine=array();#無窮回圈,解析格式字串while(true){#判斷 format 是否含有 "${"、"}" 關鍵字#函式說明:#檢查一個字串裡面是否有多個關鍵字#回傳結果:#$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["string"],字串,要被搜尋的字串內容.$conf["search::findManyKeyWords"]["string"]=$conf["format"];#可省略參數:#$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#如果有 "${"、"}" 存在if($findManyKeyWords["foundedAll"]==="true"){#debug#var_dump(__LINE__,$findManyKeyWords);#取得 ${... 前面的部分#函式說明:#將字串特定關鍵字與其後面的內容剔除#回傳結果:#$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"]=$conf["format"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]="\${";#可省略參數:#$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].#$conf["deleteLastRepeatedOne"]="";#參考資料:#無.#備註:#無.$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);unset($conf["stringProcess::delStrAfterKeyWord"]);#debug#var_dump(__LINE__,$delStrAfterKeyWord);#如果執行失敗if($delStrAfterKeyWord["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#如果要有關鍵字找不到if($delStrAfterKeyWord["founded"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#如果前面有內容if($delStrAfterKeyWord["content"]!==""){#儲存該行的關鍵字之一$keyWordPart[]=$delStrAfterKeyWord["content"];#暫存的關鍵字資訊$tmp=array("name"=>"keyWordPart","index"=>count($keyWordPart)-1,"value"=>$keyWordPart[count($keyWordPart)-1]);#設置順序資訊$OderOfPartInLine[]=$tmp;}#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"]=$delStrAfterKeyWord["deleted"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]="}";#可省略參數:#$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].#$conf["deleteLastRepeatedOne"]="";#參考資料:#無.#備註:#無.$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);unset($conf["stringProcess::delStrAfterKeyWord"]);#debug#var_dump(__LINE__,$delStrAfterKeyWord);#如果執行失敗if($delStrAfterKeyWord["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#如果要有關鍵字找不到if($delStrAfterKeyWord["founded"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#var_dump($delStrAfterKeyWord["content"]."}");#儲存該行的變數名稱之一$varPart[]=$delStrAfterKeyWord["content"]."}";#移除 "}" 其面的內容#函式說明:#將字串特定關鍵字與其前面的內容剔除#回傳結果:#$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["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["format"];#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]="}";#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.#$conf["recursive"]="true";#$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"]="false";#設置錯誤訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end#debug#var_dump(__LINE__,$delStrBeforeKeyWord);#取得剩下的格式字串部分$conf["format"]=$delStrBeforeKeyWord["content"];#暫存的關鍵字資訊$tmp=array("name"=>"varPart","index"=>count($varPart)-1,"value"=>$varPart[count($varPart)-1]);#設置順序資訊$OderOfPartInLine[]=$tmp;}#if end#反之else{#若有剩下的內容if(!empty($conf["format"])){#儲存剩下的內容為關鍵字之一$keyWordPart[]=$conf["format"];#暫存的關鍵字資訊$tmp=array("name"=>"keyWordPart","index"=>count($keyWordPart)-1,"value"=>$keyWordPart[count($keyWordPart)-1]);#設置順序資訊$OderOfPartInLine[]=$tmp;}#if end#結束格式字串的解析break;}#else end}#while end#如果沒有解析出格式字串,代表關鍵字為空字串.if($OderOfPartInLine===array()){#儲存剩下的內容為關鍵字之一$keyWordPart[]=$conf["format"];#暫存的關鍵字資訊$tmp=array("name"=>"keyWordPart","index"=>0,"value"=>$conf["format"]);#設置順序資訊$OderOfPartInLine[]=$tmp;}#if end#debug#var_dump(__LINE__,$OderOfPartInLine);#如果有關鍵字片段與變數的順序存在if( count($OderOfPartInLine)>0 ){#debug#var_dump(__LINE__,$OderOfPartInLine);#預設一開始 varPart 的計數為 0$varPartCount=0;#針對每個資訊foreach($OderOfPartInLine as $index=>$condition){#debug#var_dump(__LINE__,$index,$condition);#判斷資訊switch($condition["name"]){#如果是 "keyWordPart"case "keyWordPart":#確認是否開頭有符號#函式說明:#取得關鍵字在字串的哪個位置(字首,字尾,中間)#回傳結果:#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["found"],是否有關鍵字存在,若為"true",代表存在;反之為"false".#$result["argu"],傳入的參數.#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.#必填參數:#$conf["inputStr"],字串,被搜尋的字串.$conf["search::findKeyWordPosition"]["inputStr"]=$modifiedInput;#$conf["keyWord"],字串,關鍵字.$conf["search::findKeyWordPosition"]["keyWord"]=$condition["value"];#可省略參數:#無.#參考資料:#http://php.net/manual/en/function.strpos.php#備註:#無.$findKeyWordPosition=search::findKeyWordPosition($conf["search::findKeyWordPosition"]);unset($conf["search::findKeyWordPosition"]);/*#debugif($condition["value"]===""){#debugvar_dump(__LINE__,$findKeyWordPosition);}#if end*/#如果執行失敗if($findKeyWordPosition["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$findKeyWordPosition;#回傳結果return $result;}#if end#如果沒有符合if($findKeyWordPosition["found"]==="false"){#設置執行正常$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if end#如果關鍵字不在開頭if($findKeyWordPosition["head"]==="false"){#設置執行正常$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if 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["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$modifiedInput;#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$condition["value"];#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.#$conf["recursive"]="true";#$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則會改回傳該內容.#$conf["lastResult"]=$delStrBeforeKeyWord;#參考資料:#無.#備註:#無.$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);unset($conf["stringProcess::delStrBeforeKeyWord"]);/*#debugif($condition["value"]===" "){#debugvar_dump(__LINE__,$delStrBeforeKeyWord);}#if end*/#如果執行失敗if($delStrBeforeKeyWord["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end#如果沒有符合if($delStrBeforeKeyWord["founded"]==="false"){#設置錯誤識別$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if end#執行到這邊代表有符合#取得剩下未判斷是否符合的項目$modifiedInput=$delStrBeforeKeyWord["content"];#換找下個資訊有無符合continue 2;#結束 switchbreak;#如果是 "varPart"case "varPart":#計數第幾個 varPart$varPartCount++;#取得變數名稱,亦即去掉開頭的 "${" 跟結尾的 "}"$varName=substr($OderOfPartInLine[($index)]["value"],2,strlen($OderOfPartInLine[($index)]["value"])-3);#如果後面沒有 $OderOfPartInLine 了if(!isset($OderOfPartInLine[($index+1)])){#取得變數的數值$varVal=$modifiedInput;/*#代表有符合所有條件#設置解析好的變數$result["content"][]=$modifiedInput;#設置執行正常的識別$result["status"]="true";#設置有符合格式$result["found"]="true";#回傳結果return $result;*/}#if end#執行到這邊代表後面還有 $OderOfPartInLineelse{#debug#var_dump(__LINE__,$OderOfPartInLine[($index+1)]);#如果後面的內容不是 keyWordPartif($OderOfPartInLine[($index+1)]["name"]!=="keyWordPart"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"][]="multi continued varName not supported";#回傳結果return $result;}#if end#執行到這邊代表為 varPart#函式說明:#取得關鍵字在字串的哪個位置(字首,字尾,中間)#回傳結果:#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["found"],是否有關鍵字存在,若為"true",代表存在;反之為"false".#$result["argu"],傳入的參數.#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.#必填參數:#$conf["inputStr"],字串,被搜尋的字串.$conf["search::findKeyWordPosition"]["inputStr"]=$modifiedInput;#$conf["keyWord"],字串,關鍵字.$conf["search::findKeyWordPosition"]["keyWord"]=$OderOfPartInLine[($index+1)]["value"];#可省略參數:#無.#參考資料:#http://php.net/manual/en/function.strpos.php#備註:#無.$findKeyWordPosition=search::findKeyWordPosition($conf["search::findKeyWordPosition"]);unset($conf["search::findKeyWordPosition"]);#debug#var_dump(__LINE__,$findKeyWordPosition);#如果執行失敗if($findKeyWordPosition["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$findKeyWordPosition;#回傳結果return $result;}#if end#如果沒有符合if($findKeyWordPosition["found"]==="false"){#設置執行狀態識別$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if 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["stringProcess::delStrAfterKeyWord"]["stringIn"]=$modifiedInput;#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$OderOfPartInLine[($index+1)]["value"];#可省略參數:#$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].#$conf["deleteLastRepeatedOne"]="";#參考資料:#無.#備註:#無.$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);unset($conf["stringProcess::delStrAfterKeyWord"]);#如果執行失敗if($delStrAfterKeyWord["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrAfterKeyWord;#回傳結果return $result;}#if end#如果沒有符合if($delStrAfterKeyWord["founded"]==="false"){#設置執行狀態識別$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if end#另存變數的數值$varVal=$delStrAfterKeyWord["content"];}#else end#如果有設置 $conf["varEqual"]if(isset($conf["varEqual"])){#debug#var_dump(__LINE__,$conf["varEqual"]);#debug#var_dump(__LINE__,$varPartCount);#若有設置該變數的條件if(isset($conf["varEqual"][$varPartCount-1])){#取得之$varEqual=$conf["varEqual"][$varPartCount-1];#如果條件不為 null,代表變數的數值要等於 $varEqual 才算符合if($varEqual!==null){#如果數值不符合if($varVal!==$varEqual){#設置執行狀態識別$result["status"]="true";#設置沒有符合格式$result["found"]="false";#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#回傳結果return $result;}#if end}#if end#反之 $varVal 現階段可為任意數值else{#如果有設置額外條件if(isset($conf["varCon"])){#取得其額外條件$varCon=$conf["varCon"][$varPartCount-1];#如果有設置額外條件if($varCon!==null){#檢查額外條件參數#函式說明:#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.#回傳結果:#$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"]=&$varCon;#$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["skipableVariableCanNotBeEmpty"]=array();#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("head","no_head","tail","no_tail");#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["skipableVarDefaultValue"]=array("");#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".#$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="";#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".#$conf["disallowAllSkipableVarIsEmptyArray"]="";#$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".$conf["variableCheck::checkArguments"]["disallowAllSkipableVarNotExist"]="true";#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["arrayCountEqualCheck"][]=array();#參考資料:#array_keys=>http://php.net/manual/en/function.array-keys.php#備註:#無.$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);unset($conf["variableCheck::checkArguments"]);#如果執行失敗if($checkArguments["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#針對每個額外條件foreach($varCon as $con => $cVal){#判斷額外條件switch($con){#如果是 "head"case "head":#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$varVal;#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["frontWord"]=$cVal;#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.#$conf["tailWord"]="";#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);#如果執行失敗if($getMeetConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetConditionsString;#回傳結果return $result;}#if end#如果沒有需要的關鍵字if($getMeetConditionsString["founded"]==="false"){#設置執行正常識別$result["status"]="true";#設置錯誤訊息$result["found"]="false";#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#回傳結果return $result;}#if end#跳出 switchbreak;#如果是 "no_head"case "no_head":#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$varVal;#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["frontWord"]=$cVal;#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.#$conf["tailWord"]="";#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);#如果執行失敗if($getMeetConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetConditionsString;#回傳結果return $result;}#if end#如果有不需要的關鍵字if($getMeetConditionsString["founded"]==="true"){#設置執行正常識別$result["status"]="true";#設置錯誤訊息$result["found"]="false";#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#回傳結果return $result;}#if end#跳出 switchbreak;#如果是 "tail"case "tail":#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$varVal;#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.#$conf["search::getMeetConditionsString"]["frontWord"]=$cVal;#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["tailWord"]=$cVal;#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);#如果執行失敗if($getMeetConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetConditionsString;#回傳結果return $result;}#if end#如果無需要的關鍵字if($getMeetConditionsString["founded"]==="false"){#設置執行正常識別$result["status"]="true";#設置錯誤訊息$result["found"]="false";#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#回傳結果return $result;}#if end#跳出 switchbreak;#如果是 "no_tail"case "no_tail":#函式說明:#取得符合特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容。#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetConditionsString"]["checkString"]=$varVal;#可省略參數:#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.#$conf["search::getMeetConditionsString"]["frontWord"]=$cVal;#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.$conf["search::getMeetConditionsString"]["tailWord"]=$cVal;#參考資料:#str_spilt(),可以將字串依照字母分割成一個個陣列字串。#備註:#無.$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);unset($conf["search::getMeetConditionsString"]);#如果執行失敗if($getMeetConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetConditionsString;#回傳結果return $result;}#if end#如果有無需要的關鍵字if($getMeetConditionsString["founded"]==="true"){#設置執行正常識別$result["status"]="true";#設置錯誤訊息$result["found"]="false";#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#回傳結果return $result;}#if end#跳出 switchbreak;#若是其他額外條件default:#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"][]="not supported condition \"".$con."\"";#設置錯誤訊息$result["error"][]=$checkArguments;#回傳結果return $result;}#switch end}#foreach end}#if end}#if end}#else end}#if end}#if end#設置解析好的變數$result["content"][]=$varVal;#用變數名稱來儲存$result["parsedVar"][$varName][]=$varVal;#若後面還有特定關鍵字if(isset($OderOfPartInLine[($index+1)]["value"])){#函式說明:#將字串特定關鍵字與其前面的內容剔除#回傳結果:#$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["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$modifiedInput;#$conf["keyWord"],字串,特定字串.$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$OderOfPartInLine[($index+1)]["value"];#可省略參數:#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.#$conf["recursive"]="true";#$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則會改回傳該內容.#$conf["lastResult"]=$delStrBeforeKeyWord;#參考資料:#無.#備註:#無.$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);unset($conf["stringProcess::delStrBeforeKeyWord"]);#debug#var_dump(__LINE__,$delStrBeforeKeyWord);#如果執行失敗if($delStrBeforeKeyWord["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$delStrBeforeKeyWord;#回傳結果return $result;}#if end#如果該存在的關鍵字不在if($delStrBeforeKeyWord["founded"]==="false"){#設置錯誤識別$result["status"]="true";#設置沒有符合格式$result["found"]="false";#回傳結果return $result;}#if end#取得剩下未判斷是否符合的項目$modifiedInput=$OderOfPartInLine[($index+1)]["value"].$delStrBeforeKeyWord["content"];#debug#var_dump(__LINE__,$modifiedOriLineContent);}#if end#換找下個資訊有無符合continue 2;break;#其他狀況default:#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"][]="unexpected name value";#設置錯誤訊息$result["error"][]=$condition;#回傳結果return $result;}#switch end}#foreach end#執行到這邊代表該行有符合關鍵字的結構#設置執行正常識別$result["status"]="true";#設置有符合格式$result["found"]="true";#回傳結果return $result;}#if end#format參數有問題else{#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"][]="not supported format:".$conf["format"];#回傳結果return $result;}#else end}#function findSpecifyStrFormat end/*#尋找連續的多行字串是否依順含有符合格式的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的連續字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,每段符合格式的段落資訊.#$result["content"][$i]["lineS"],字串,為第 $i+1 個符合格式的段落起始行數.#$result["content"][$i]["ori"],字串,為第 $i+1 個符合格式的段落每行原始內容資訊.#$result["content"][$i]["deletedHead"],字串,為第 $i+1 個符合格式的段落每行原始內容被剔除的開頭資訊.#$result["content"][$i]["new"],字串,為第 $i+1 個符合格式的段落每行關鍵字內容.#$result["content"][$i]["vars"],陣列,為第 $i+1 個符合格式的段落每行變數解析的結果.#必填參數:#$conf["input"],字串陣列,要檢查的每行字串.$conf["input"]=array("");#$conf["format"],格式字串陣列,要尋找的每行格式字串集合.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.$conf["formats"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#回傳結果 $result["content"][$i]["ori"][$j]=array("index"=>$oriLineIndex,"value"=>$oriLineContent) 代表第 $i+1 個符合格式的段落中第 $j+1 個原始內容對應的行數($oriLineIndex+1),其原始內容為 $oriLineContent.*/public static function findConMatchStrs(&$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變數須為陣列形態";#如果傳入的參數為 nullif(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("input","formats");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.#$conf["canBeEmptyString"]="false";#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.#$conf["canNotBeEmpty"]=array();#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.#$conf["canBeEmpty"]=array();#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.#$conf["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["variableCheck::checkArguments"]);#如果執行失敗if($checkArguments["status"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#關鍵字行搜尋的索引預設數值為0$keyWordLineIndex=0;#針對每行原始內容for($oriLineContentIndex=0;$oriLineContentIndex<count($conf["input"]);$oriLineContentIndex++){#取得原始內容行$oriLineContent=$conf["input"][$oriLineContentIndex];#預設調整後的原始內容跟原本一樣$modifiedOriLineContent=$oriLineContent;#debug#var_dump(__LINE__,$modifiedOriLineContent);#初始化儲存移除的開頭內容$deletedOriHead="";#無窮迴圈while(true){#嘗試移除開頭的 空格 跟 \t#函式說明:#取得符合多個特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容.#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetMultiConditionsString"]["checkString"]=$modifiedOriLineContent;#$conf["keyWord"],字串陣列,用來檢查字首、字尾應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.$conf["search::getMeetMultiConditionsString"]["keyWord"]=array(array("front"=>" "),array("front"=>"\t"));#可省略參數:#無.#參考資料:#無.#備註:#無.$getMeetMultiConditionsString=search::getMeetMultiConditionsString($conf["search::getMeetMultiConditionsString"]);unset($conf["search::getMeetMultiConditionsString"]);#debug#var_dump(__LINE__,$getMeetMultiConditionsString);#如果執行失敗if($getMeetMultiConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetMultiConditionsString;#回傳結果return $result;}#if end#如果有關鍵字存在if($getMeetMultiConditionsString["founded"]==="true"){#取得已經移開頭空格跟\t後的內容$modifiedOriLineContent=$getMeetMultiConditionsString["content"];#另存符合且剔除的內容$meetConditions=$getMeetMultiConditionsString["meetConditions"]["front"];#串接開頭剔除的內容$deletedOriHead=$deletedOriHead.$meetConditions;#繼續檢查continue;}#if end#到這表代表已經移除開頭的 空格 跟 \t#結束 whilebreak;}#while end#debug#var_dump(__LINE__,$modifiedOriLineContent);#取得關鍵字行的內容$keyWordLine=$conf["formats"][$keyWordLineIndex];#調整過的關鍵字內容行預設跟原始關鍵行內容一樣$modifiedKeyWordLine=$keyWordLine;#初始化關鍵字前面的內容(可能有為多個空格或tab)$keyWordContentOfHead="";#無窮迴圈while(true){#嘗試剔除開頭的 空格 跟 "\t"#函式說明:#取得符合多個特定字首與字尾的字串#回傳結果:#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。#$result["content"],符合條件的字串,去掉字首字尾後的結果.#$result["returnString"],爲符合字首字、尾條件的字串內容.#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.#$result["argu"],使用的參數.#必填參數:#$conf["checkString"],字串,要檢查的字串.$conf["search::getMeetMultiConditionsString"]["checkString"]=$modifiedKeyWordLine;#$conf["keyWord"],字串陣列,用來檢查字首、字尾應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.$conf["search::getMeetMultiConditionsString"]["keyWord"]=array(array("front"=>" "),array("front"=>"\t"));#可省略參數:#無.#參考資料:#無.#備註:#無.$getMeetMultiConditionsString=search::getMeetMultiConditionsString($conf["search::getMeetMultiConditionsString"]);unset($conf["search::getMeetMultiConditionsString"]);#debug#var_dump(__LINE__,$getMeetMultiConditionsString);#如果執行失敗if($getMeetMultiConditionsString["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$getMeetMultiConditionsString;#回傳結果return $result;}#if end#如果有關鍵字存在if($getMeetMultiConditionsString["founded"]==="true"){#取得移除開頭 空格 跟 \t 後的內容$modifiedKeyWordLine=$getMeetMultiConditionsString["content"];#取得關鍵字前面的內容$keyWordContentOfHead=substr($keyWordLine,0,strlen($keyWordLine)-strlen($modifiedKeyWordLine));#繼續檢查continue;}#if end#到這表代表已經移除開頭的 空格 跟 \t#解析關鍵字字串#函式說明:#尋找字串中是否含有符合格式的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.#$result["parsedVar"][varName],陣列,解析好的變數陣列,varName為${}中的內容.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["search::findSpecifyStrFormat"]["input"]=$modifiedOriLineContent;#$conf["format"],格式字串,要尋找的格式字串.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.$conf["search::findSpecifyStrFormat"]["format"]=$modifiedKeyWordLine;#可省略參數:#$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"]);#debug#var_dump(__LINE__,$findSpecifyStrFormat);#如果執行異常if($findSpecifyStrFormat["status"]==="false"){#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$findSpecifyStrFormat;#回傳結果return $result;}#if end#如果沒有找到符合的格式if($findSpecifyStrFormat["found"]==="false"){#重新尋找第一個關鍵字串$keyWordLineIndex=0;}#if end#反之有找到符合的格式else if($findSpecifyStrFormat["found"]==="true"){#$result["content"][$i]["lineS"],字串,為第 $i+1 個符合格式的段落起始行數.#$result["content"][$i]["ori"],陣列,為第 $i+1 個符合格式的段落每行原始內容資訊.#$result["content"][$i]["ori"][$j]=array("index"=>$oriLineIndex,"value"=>$oriLineContent),代表第 $i+1 個符合格式的段落中第 $j+1 個原始內容對應的行數($oriLineIndex+1),其原始內容為 $oriLineContent.#$result["content"][$i]["new"],陣列,為第 $i+1 個符合格式的段落每行關鍵字內容.#$result["content"][$i]["vars"],陣列,為第 $i+1 個符合格式的段落每行變數解析的結果.#如果第一個關鍵字串有符合if($keyWordLineIndex===0){#初始化暫存符合的行數資訊$matchInfo=array();#記錄符合的行數$matchInfo["lineS"]=$oriLineContentIndex;}#if end#記錄符合的原始字串行$matchInfo["ori"][]=array("index"=>$oriLineContentIndex,"value"=>$modifiedOriLineContent,"deletedHead"=>$deletedOriHead);#記錄符合的關鍵字字串行$matchInfo["new"][]=$modifiedKeyWordLine;#記錄解析出來的變數結果$matchInfo["vars"][]=$findSpecifyStrFormat["parsedVar"];#如果後面還有關鍵字串if(isset($conf["formats"][$keyWordLineIndex+1])){#看下一個要判斷的關鍵字串$keyWordLineIndex++;}#if end#反之else{#記錄符合的結果資訊$result["content"][]=$matchInfo;#下次要再從第一個關鍵字字串看起$keyWordLineIndex=0;}#else end}#else end#不應該執行到這邊else{#設置錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"][]="unexpected error";#設置錯誤訊息$result["error"][]=$findSpecifyStrFormat;#回傳結果return $result;}#else end#結束 whilebreak;}#while end}#for end#預設沒有找到符合的字串區段$result["found"]="false";#如果有比對到的結果if(!empty($result["content"])){#設置有找到符合的字串區段$result["found"]="true";}#if end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findConMatchStrs end/*#函式說明:#尋找字串中是否含有符合多個格式之一的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["input"]="";#$conf["format"],格式字串陣列,要尋找的可能格式字串集合.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.$conf["formats"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function findSpecifyStrFormats(&$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變數須為陣列形態";#如果傳入的參數為 nullif(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("input","formats");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","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["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["variableCheck::checkArguments"]);#如果執行失敗if($checkArguments["status"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#初始化符合的格式$result["content"]=array();#預設沒有符合的格式$result["found"]="false";#針對每個格式foreach($conf["formats"] as $format){#函式說明:#尋找字串中是否含有符合格式的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["search::findSpecifyStrFormat"]["input"]=$conf["input"];#$conf["format"],格式字串,要尋找的格式字串.格式為固定的字串("fixedStr format")與變數(${keyWordVarName})組成.$conf["search::findSpecifyStrFormat"]["format"]=$format;#可省略參數:#無.#參考資料:#無.#備註:#無.$findSpecifyStrFormat=search::findSpecifyStrFormat($conf["search::findSpecifyStrFormat"]);unset($conf["search::findSpecifyStrFormat"]);#如果執行失敗if($findSpecifyStrFormat["status"]==="false"){#設置錯誤訊息$result["error"]=$findSpecifyStrFormat;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果有找到符合的格式if($findSpecifyStrFormat["found"]==="true"){#var_dump(__LINE__,$findSpecifyStrFormat);#設置符合的格式資訊$result["content"][]=$findSpecifyStrFormat["content"];#設置有符合的格式$result["found"]="true";}#if end}#foreach end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function findSpecifyStrFormats end/*#函式說明:#尋找多個字串中是否含有符合多個格式之一的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,key為lineNo者為inputs參數的索引;key為content者為符合的資訊,若為n個${*},則當found為"true"時,就會回傳n個元素.#必填參數:#$conf["inputs"],字串陣列,要檢查的字串集合.$conf["inputs"]=array("");#$conf["format"],格式字串陣列,要尋找的可能格式字串集合.格式為固定的字串("fixedStr format")與變數("${keyWordVarName}")組成.$conf["formats"]=array("");#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function getMatchFormatsStrings(&$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變數須為陣列形態";#如果傳入的參數為 nullif(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("inputs","formats");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null、any代表不指定變數形態.其中 resource也包含"resource (closed)".$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.#$conf["canBeEmptyString"]="false";#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.#$conf["canNotBeEmpty"]=array();#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.#$conf["canBeEmpty"]=array();#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.#$conf["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["variableCheck::checkArguments"]);#如果執行失敗if($checkArguments["status"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#如果檢查不通過if($checkArguments["passed"]==="false"){#設置錯誤訊息$result["error"]=$checkArguments;#設置執行錯誤$result["status"]="false";#回傳結果return $result;}#if end#初始化符合的格式$result["content"]=array();#預設沒有符合的格式$result["found"]="false";#針對每個要檢查的字串foreach($conf["inputs"] as $lineNo => $str){#函式說明:#尋找字串中是否含有符合多個格式之一的內容,且回傳解析好的變數數值.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["found"],是否有找到符合格式的字串內容,"true"代表有找到,"false"代表沒有找到.#$result["content"],陣列,若為n個${*},則當found為"true"時,就會回傳n個元素.#必填參數:#$conf["input"],字串,要檢查的字串.$conf["search::findSpecifyStrFormats"]["input"]=$str;#$conf["format"],格式字串陣列,要尋找的可能格式字串集合.格式為固定的字串("fixedStr format")與變數(${keyWordVarName})組成.$conf["search::findSpecifyStrFormats"]["formats"]=$conf["formats"];#可省略參數:#無.#參考資料:#無.#備註:#無.$findSpecifyStrFormats=search::findSpecifyStrFormats($conf["search::findSpecifyStrFormats"]);unset($conf["search::findSpecifyStrFormats"]);#如果執行失敗if($findSpecifyStrFormats["status"]==="false"){#設置錯誤訊息$result["error"]=$findSpecifyStrFormats;#設置執行錯誤$result["status"]="false";#回傳結果return $findSpecifyStrFormats;}#if end#如果有符合的格式if($findSpecifyStrFormats["found"]==="true"){#暫存的陣列$tmp=array();#設置行號$tmp["lineNo"]=$lineNo;#設置找到的結果$tmp["content"]=$findSpecifyStrFormats["content"];#儲存找到的結果$result["content"][]=$tmp;#設置有找到$result["found"]="true";}#if end}#foreach end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function getMatchFormatsStrings end/*#函式說明:#尋找字串中是否含有 shell 變數.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],所使用的參數.#$result["founded"],是否有找到shell變數,"true"代表有找到,"false"代表沒有找到..#必填參數:#$conf["input"],字串,要檢查的字串..$conf["input"]="";#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function findShellVar(&$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變數須為陣列形態";#如果傳入的參數為 nullif($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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["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("username","password","port","title","fullScreen","spicePassword");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();$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["status"],執行正常與否,"false"代表不正常,"true"代表正常.#$result["function"],當前執行的函式內容.#$result["error"],錯誤訊息陣列.#$result["content"],取得的內容.#$result["oriStr"],原始的內容.#$result["found"],是否有找到符合條件的內容.#必填參數:#$conf["input"],字串,要處理的字串.$conf["stringProcess::getContentBetweenKeyWord"]["input"]=$conf["input"];#$conf["startKeyWord"],字串,開頭的關鍵字.$conf["stringProcess::getContentBetweenKeyWord"]["startKeyWord"]="\${";#$conf["endKeyWord"],字串,結束的關鍵字.$conf["stringProcess::getContentBetweenKeyWord"]["endKeyWord"]="}";#可省略參數:#無.#參考資料:#無.#備註:#無.$getContentBetweenKeyWord=stringProcess::getContentBetweenKeyWord($conf["stringProcess::getContentBetweenKeyWord"]);unset($conf["stringProcess::getContentBetweenKeyWord"]);#如果執行失敗if($getContentBetweenKeyWord["status"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤$result["error"]=$getContentBetweenKeyWord;#回傳結果return $result;}#if end#如果沒有符合條件的內容if($getContentBetweenKeyWord["found"]==="false"){#設置執行正常$result["status"]="true";#設置沒有找到 shell 變數$result["founded"]="false";#回傳結果return $result;}#if end#函式說明:#檢查字串裡面有無指定的關鍵字#回傳結果:#$result["status"],"true"代表執行成功,"false"代表執行失敗。#$result["error"],錯誤訊息#$result["function"],當前執行的函數名稱.#$result["argu"],使用的參數.#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。#$result["keyWordCount"],找到的關鍵字數量.#必填參數:#$conf["keyWord"],字串,想要搜尋的關鍵字.$conf["search::findKeyWord"]["keyWord"]=" ";#$conf["string"],字串,要被搜尋的字串內容$conf["search::findKeyWord"]["string"]=$getContentBetweenKeyWord["content"];#可省略參數:#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。#$conf["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#如果有符合條件的內容if($findKeyWord["founded"]==="true"){#設置執行正常$result["status"]="true";#設置沒有找到 shell 變數$result["founded"]="false";#回傳結果return $result;}#if end#執行到這邊代表真的有 shell 變數存在#設置執行正常$result["status"]="true";#設置沒有找到 shell 變數$result["founded"]="true";#回傳結果return $result;}#function findShellVar end}#class search end?>