Rev 911 | 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) 2015~2024 Min-Jhin,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 table{/*#函式說明:#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.#回傳結果:#$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["content"],表格開始的語法#$result["function"],當前執行的函數#$result["error"],涵式錯誤訊息#必填參數:#$conf["class"],字串,爲表格的css樣式,若為"",則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$conf["class"]="";#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function start(&$conf){#初始化要回傳的內容$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#初始化表格開始的語法$result["content"]="";#如果 $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("class");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可省略參數:#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。$conf["variableCheck.checkArguments"]["canBeEmptyString"]="true";#$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("");$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);unset($conf["variableCheck.checkArguments"]);#如果檢查失敗if($checkResult["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$checkResult;#回傳結果return $result;}#if end#如果檢查不通過if($checkResult["passed"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$checkResult;#回傳結果return $result;}#if end#判斷 $conf["class"] 的內容switch($conf["class"]){#如果為 "__withBorder"case "__withBorder":#建立表格預設的 css 樣式 "__defaultTbaleCsssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withBorderTableCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("table-layout","word-break","width","border","border-color","border-style","margin-right","margin-left","font-size");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("fixed","break-all","100%","1px","#000000","solid","auto","auto","30px");#為屬性值,須為陣列值$css["createCssStyle"]=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["createCssStyle"]["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$css["createCssStyle"];#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["createCssStyle"]["content"];#則套用預設的css樣式$conf["class"]=" class = __withBorderTableCssStyle ";#跳出 switchbreak;#如果為 "__withoutBorder"case "__withoutBorder":#建立表格預設的 css 樣式 "__withoutBorderTableCssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withoutBorderTableCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("table-layout","word-break","width","border","border-color","border-style","margin-right","margin-left","font-size");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("fixed","break-all","97%","0px","#000000","solid","auto","auto","30px");#為屬性值,須為陣列值$css["createCssStyle"]=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["createCssStyle"]["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$css["createCssStyle"];#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["createCssStyle"]["content"];#則套用預設的css樣式$conf["class"]=" class = __withoutBorderTableCssStyle ";#跳出 switchbreak;#如果為 ""case "":#則不設定要套用的css類別樣式$conf["class"]="";#跳出 switchbreak;#如果不是以上內容default:#套用其指定的樣式$conf["class"]="class = ".$conf["class"];#跳出 switchbreak;}#switch end#放置表格的開頭語$result["content"]=$result["content"]."<table ".$conf["class"]." ><tbody>";#設置執行正常$result["status"]="true";#回傳結果return $result;}#function end/*#函式說明:#表格結束#回傳結果:#$result,表格結束的語法#必填參數:#無.#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function end(){return "</tbody></table>";}#function end/*#函式說明:#列開始#回傳結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],涵式錯誤訊息陣列.#$result["content"],列開始的語法.#$result["function"],當前執行的函式名稱.#必填參數:#$conf["class"],字串,爲tr的css樣式,若為""則為不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$conf["class"]="__noBorder";#可省略參數:#$conf["trTitle"],字串,該列要有什麼的提示字串.#$conf["trTitle"]="";#參考資料:#無.#備註:#無.*/public static function trStart(&$conf){#初始化要回傳的變數$result=array();#初始化要回傳的變數$result["content"]="";#初始化當前執行的函數名稱$result["funciton"]=__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"],每個參數設定的錯誤訊息#$result["argu"],字串陣列,目前輸入的參數名稱陣列.#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.#$result["notNeedVar"],字串陣列,多餘的參數名稱.#必填參數:#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("class");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";#可省略參數:#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("trTitle");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.#$conf["arrayCountEqualCheck"][]=array();#參考資料來源:#array_keys=>http://php.net/manual/en/function.array-keys.php$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);unset($conf["variableCheck::checkArguments"]);#如果檢查失敗if($checkResult["status"]=="false"){#設置執行不正常$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#如果檢查不通過if($checkResult["passed"]=="false"){#設置執行不正常$result["status"]="false";#設置錯誤訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#判斷 $conf["class"] 的內容switch($conf["class"]){#如果為 "__withBorder"case "__withBorder":#建立表格預設的 css 樣式 "__defaultTbaleCsssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withBorderTrCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("table-layout","word-break","width","border","border-color","border-style");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("fixed","break-all","100%","1px","#000000","solid");#為屬性值,須為陣列值$css=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["status"]=="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$css;#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["content"];#則套用預設的css樣式$conf["class"]=" class = __withBorderTrCssStyle ";#跳出 switchbreak;#如果為 "__withoutBorder"case "__withoutBorder":#建立表格預設的 css 樣式 "__defaultTbaleCssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withoutBorderTrCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("table-layout","word-break","width","border","border-color","border-style");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("fixed","break-all","100%","0px","#000000","solid");#為屬性值,須為陣列值$css=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["status"]=="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$css;#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["content"];#則套用預設的css樣式$conf["class"]=" class = __withoutBorderTrCssStyle ";#跳出 switchbreak;#如果為 ""case "":#則不設定要套用的css類別樣式$conf["class"]="";#跳出 switchbreak;#如果不是以上內容default:#套用其指定的樣式$conf["class"]="class = ".$conf["class"];#跳出 switchbreak;}#switch end#如果 $conf["trTitle"] 有設定if(isset($conf["trTitle"])){#設置提示字串$conf["trTitle"]="title=\"".$conf["trTitle"]."\"";}#if end#提示字串設為 ""else{$conf["trTitle"]="";}#else end#建立 tr 標籤與指派css樣式$result["content"]=$result["content"]." <tr ".$conf["class"]." ".$conf["trTitle"]."> ";#執行到這邊代表執行正常$result["status"]="true";#回傳結果return $result;}#function trStart end/*#函式說明:#列結束#回傳結果:#$result,列結束的語法#必填參數:#無.#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function trEnd(){return "</tr>";}#function trEnd end/*#函式說明:#行開始#回傳結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],涵式錯誤訊息陣列.#$result["content"],行開始的語法.#$result["function"],當前執行的函式名稱.#必填參數:#$conf["class"],字串,該 td 要套用套用的 css 樣式,若為""則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式.$conf["class"]="__withoutBorder";#可省略參數:#$conf["colspan"],整數字串,為欄位合併的數量.#$conf["colspan"]="2";#$conf["rowspan"],整數字串,為列合併的數量.#$conf["rowspan"]="2";#參考資料:#無.#備註:#無.*/public static function tdStart(&$conf){#初始化要回傳的變數$result=array();#初始化要回傳的變數$result["content"]="";#初始化當前執行的函數名稱$result["funciton"]=__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"],每個參數設定的錯誤訊息#$result["argu"],字串陣列,目前輸入的參數名稱陣列.#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.#$result["notNeedVar"],字串陣列,多餘的參數名稱.#必填參數:#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("class");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";#可省略參數:#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("colspan","rowspan");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");#$conf["variableCheck::checkArguments"]["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$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(!isset($conf["class"])){#回傳錯誤訊息return "\$conf[\"class\"]參數未設置";}#if end#判斷 $conf["class"] 的內容switch($conf["class"]){#如果為 "__withBorder"case "__withBorder":#建立表格預設的 css 樣式 "__defaultTbaleCssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withBorderTdCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("text-align","table-layout","word-break","width","border","border-color","border-style","margin");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("center","fixed","break-all","100%","1px","#000000","solid","0px");#為屬性值,須為陣列值$css=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["status"]=="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$css;#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["content"];#則套用預設的css樣式$conf["class"]=" class = __withBorderTdCssStyle ";#跳出 switchbreak;#如果為 "__withoutBorder"case "__withoutBorder":#建立表格預設的 css 樣式 "__defaultTbaleCssStyle"#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__withoutBorderTdCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("text-align","table-layout","word-break","width","border","border-color","border-style");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("center","fixed","break-all","100%","0px","#000000","solid");#為屬性值,須為陣列值$css=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#如果建立css樣式失敗if($css["status"]=="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤訊息$result["error"]=$css;#回傳結果return $result;}#if end#取得css樣式的設定字串$result["content"]=$result["content"].$css["content"];#則套用預設的css樣式$conf["class"]=" class = __withoutBorderTdCssStyle ";#跳出 switchbreak;#如果為 ""case "":#則不設定要套用的css類別樣式$conf["class"]="";#跳出 switchbreak;#如果不是以上內容default:#套用其指定的樣式$conf["class"]="class = ".$conf["class"];#跳出 switchbreak;}#switch end#如果 $conf["colspan"] 有設定if(isset($conf["colspan"])){#設定要合併的欄位數量$conf["colspan"]=" colspan = ".$conf["colspan"];}#if end#欄位合併的參數如果沒有設定if(!isset($conf["colspan"])){#則設定為""$conf["colspan"]="";}#if end#如果 $conf["rowspan"] 有設定if(isset($conf["rowspan"])){#設定要合併的列數量$conf["rowspan"]=" rowspan = ".$conf["rowspan"];}#if end#列合併的參數如果沒有設定if(!isset($conf["rowspan"])){#則設定為""$conf["rowspan"]="";}#if end#建立 td 標籤與指派css樣式$result["content"]=$result["content"]." <td ".$conf["class"]." ".$conf["colspan"]." ".$conf["rowspan"]." > ";#執行到這邊代表正常$result["status"]="true";#回傳結果return $result;}#function tdStart end/*#函式說明:#行結束#回傳結果:#$result,行結束的語法.#必填參數:#無.#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function tdEnd(){return "</td>";}#function tdEnd end/*#函式說明:#建立列的元素,以及指定裏面要放什麼內容#回傳結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["argu"],使用的參數.#$result["content"],建立列元素的語法.#必填參數:#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式.$conf["tdClass"]="__withoutBorder";#$conf["tdContent"],字串陣列,列裏面要放的元素是?如果要空一欄則可以輸array(" ").$conf["tdContent"]=array();#可省略參數:#$conf["tableStartClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式.#$conf["tableStartClass"]="__withoutBorder";#$conf["tableStart"],字串,爲是否要表格開始,"true"表示"是".#$conf["tableStart"]="true";#$conf["tableEnd"],字串,爲是否要表格結束,"true"表示"是".#$conf["tableEnd"]="true";#$conf["trTitle"],字串,該列是否要設定提示字串.#$conf["trTitle"]="";#$conf["formStart"],字串,是否要有表單的開始.#$conf["formStart"]="true";#$conf["formName"],字串,該表單的名稱.#$conf["formName"]="";#$conf["formAction"],字串,表單提交的目的地,若$conf["formStart"]有設置,則該參數也要設置.#$conf["formAction"]="";#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。#$conf["formTarget"]="_self";#$conf["formEnd"],字串,是否要有表單的結束.#$conf["formEnd"]="true";#參考資料:#無.#備註:#無.*/public static function printRow(&$conf){#設置要回傳的變數$result=array();#設置要回傳的語法$result["content"]="";#取得當前執行的函數名稱$result["function"]=__FUNCTION__;#取得使用的參數$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["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("trClass","tdClass","tdContent");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","array");#$conf["variableCheck::checkArguments"]["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("tableStartClass","tableStart","tableEnd","trTitle","formStart","formName","formAction","formTarget","formEnd");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array();#$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#如果 $conf["formStart"] 有設置if(isset($conf["formStart"])){#如果 $conf["formStart"] 等於 "true"if($conf["formStart"]=="true"){#如果 $conf$conf["formAction"] 沒有設置if(!isset($conf["formAction"])){#設置執行錯誤$result["error"]="\$conf[\"formAction\"]沒有設置!";#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#設置表單開始#函式說明:#表單開始#回傳結果:#$result,表單開始的語法#必填參數:$conf["form"]["start"]["action"]=$conf["formAction"];#爲要交給那個檔案處理該表單傳送的內容#可省略參數:#$conf["form"]["start"]["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。#$conf["form"]["start"]["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;#$conf["form"]["start"]["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。#如果有設置 $conf["formName"]if(isset($conf["formName"])){#函式說明:#處理字串避免網頁出錯#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["function"],當前執行的函數.#$result["content"],爲處理好的字串.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:$conf["stringProcess::correctCharacter"]["stringIn"]=$conf["formName"];#爲要處理的字串#可省略參數:$conf["stringProcess::correctCharacter"]["selectedCharacter"]=array(" ");#爲被選擇要處理的字串/字元,須爲陣列值。#若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").#特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔#$conf["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。$correctCharacter=stringProcess::correctCharacter($conf["stringProcess::correctCharacter"]);unset($conf["stringProcess::correctCharacter"]);#如果處理失敗if($correctCharacter["status"]==="false"){#設置執行失敗$result["status"]="false";#設置執行錯誤$result["error"]=$correctCharacter;#回傳結果return $result;}#if end#則設定其參數$conf["form"]["start"]["name"]=$correctCharacter["content"];#爲該表單的名稱}#if end#如果有設置 $conf["formTarget"]if(isset($conf["formTarget"])){#則設定其參數$conf["form"]["start"]["target"]=$conf["formTarget"];#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。}#if end#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是;#$conf["tableClass"]="";#表格要套用的css樣式,若省略的話,則預設爲 __defaultTbaleCsssStyle 其屬性爲 table-layout:fixed word-break:break-all width:100%$formStart=form::start($conf["form"]["start"]);unset($conf["form"]["start"]);#如果建議建立表單開始失敗if($formStart["status"]=="false"){#設置執行錯誤$result["error"]=$formStart;#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#串接表單開始$result["content"]=$result["content"].$formStart["content"];}#if end}#if end#如果 $conf["tableStart"] 存在if(isset($conf["tableStart"])){#如果 $conf["tableStart"] 等於 trueif($conf["tableStart"]=="true"){#如果表格開始的樣式沒有指定if(!isset($conf["tableStartClass"])){#則將其參數設為空值$conf["table"]["start"]["class"]="";}#if end#反之else{#套件指定的css樣式$conf["table"]["start"]["class"]=$conf["tableStartClass"];}#else end#函式說明:#表格開始,可以設定表格的厚度和位置#回傳結果:#$result,表格開始的語法#必填參數:#$conf["table"]["start"]["class"]="";#爲表格的css樣式$tableStart=table::start($conf["table"]["start"]);unset($conf["table"]["start"]);#如果表格開始失敗if($tableStart["status"]=="false"){#設置執行錯誤$result["error"]=$tableStart;#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#串接表格開始$result["content"]=$result["content"].$tableStart["content"];}#if end}#if end#函式說明:#列開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table::trStart"]["class"]=$conf["trClass"];#爲tr的css樣式,若為""則為不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。#可省略參數:#如果 $conf["trTitle"] 有設定if(isset($conf["trTitle"])){#設置提示字串的內容$conf["table::trStart"]["trTitle"]=$conf["trTitle"];#該列要有什麼的提示字串}#if end$trStart=table::trStart($conf["table::trStart"]);unset($conf["table::trStart"]);#如果列開始失敗if($trStart["status"]=="false"){#設置執行錯誤$result["error"]=$trStart;#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#串接列的開始$result["content"]=$result["content"].$trStart["content"];#透過foreach來建立列裏面的內容foreach($conf["tdContent"] as $key => $value){#函式說明:#行開始#必填參數:$conf_tdStart["class"]=$conf["tdClass"];#該 td 要套用套用的 css 樣式$tdStart=table::tdStart($conf_tdStart);unset($conf_tdStart);#如果欄開始失敗if($tdStart["status"]=="false"){#設置執行錯誤$result["error"]=$tdStart;#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#串接欄開始$result["content"]=$result["content"].$tdStart["content"];#放置內容$result["content"]=$result["content"].$value;#函式說明:#行結束$result["content"]=$result["content"].table::tdEnd();}#foreach end#函式說明:#列結束$result["content"]=$result["content"].table::trEnd();#如果 $conf["tableEnd"] 存在if(isset($conf["tableEnd"])){#如果 $conf["tableIEnd"] 等於 trueif($conf["tableEnd"]=="true"){#函式說明:#表格結束$result["content"]=$result["content"].table::end();}#if end}#if end#如果 $conf["formEnd"] 有設置if(isset($conf["formEnd"])){#如果 $conf["formEnd"] 等於 "true"if($conf["formEnd"]=="true"){#設置表單結束#函式說明:#表單結束#回傳結果:#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$resutl["function"],當前執行的涵式名稱.#$result["content"],表單結束的語法.#必填參數:$conf["form"]["end"]["tableEnd"]="false";#爲該表單是否要以</table>結尾。"true"爲是;"false"爲否。$formEnd=form::end($conf["form"]["end"]);unset($conf["form"]["end"]);#如果表單結束失敗if($formEnd["status"]=="false"){#設置執行錯誤$result["error"]=$formEnd;#設置執行失敗$result["status"]="false";#回傳錯誤訊息return $result;}#if end#串接表單結束$result["content"]=$result["content"].$formEnd["content"];}#if end}#if end#執行到這邊代表執行成功$result["status"]="true";#回傳結果return $result;}#function printRow end/*#函式說明:#建立欄的元素,以及指定裏面要放什麼內容#回傳結果:#$result["content"],建立欄元素的語法#$result["status"],"true"代表執行成功;"false"代表執行失敗。#$result["error"],錯誤訊息陣列#$result["function"],當前執行的函數名稱.#必填參數:#$conf["trClass"],字串,列的樣式,"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式.$conf["tdClass"]="__withoutBorder";#$conf["tdContent"],字串陣列,列裏面要放的元素是?如果要空一列則可以輸array(" "),如果要放置表單元素,請用<p> </p>或<br> </br>來連接表單元素合成一個元素.$conf["tdContent"]=array();#可省略參數:#$conf["formData"],字串,$conf["tdContent"]裡面要放的元素是否含有表單,"true"代表有,"false"代表沒有,預設為"false".#$conf["formData"]="false";#$conf["tableStartClass"],字串,列的樣式,預設為"__withoutBorder"爲沒有框線的樣式;__withBorder爲有框線的樣式#$conf["tableStartClass"]="__withoutBorder";#$conf["tableStart"],字串,爲是否要表格開始,"true"表示"是",預設為"false".#$conf["tableStart"]="true";#$conf["tableEnd"],字串,爲是否要表格結束,"true"表示"是",預設為"false".#$conf["tableEnd"]="true";#$conf["formStart"],字串,是否要有表單的開始,預設為"false".#$conf["formStart"]="true";#$conf["formName"],字串,該表單的名稱.#$conf["formName"]="";#$conf["formAction"],字串,表單提交的目的地,若$conf["formStart"]有設置,則該參數也要設置.#$conf["formAction"]="";#$conf["formTarget"],字串,為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。#$conf["formTarget"]="_self";#$conf["formEnd"],字串,是否要有表單的結束,預設為"false".#$conf["formEnd"]="true";#$conf["spaceBlockAferPerElement"],字串,是否每個欄元素(除了最後一個元素)後面都要空一列。"true"代表要空一列.預設是不空一列.#$conf["spaceBlockAferPerElement"]="true";#參考資料:#無.#備註:#無.*/public static function printColumn(&$conf){#設置要回傳的變數$result=array();#設置要回傳的語法$result["content"]="";#取得當前執行的函數名稱$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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("trClass","tdClass","tdContent");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","array");#$conf["variableCheck::checkArguments"]["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("tableStartClass","tableStart","tableEnd","formStart","formName","formAction","formTarget","formEnd","spaceBlockAferPerElement","formData");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("__withoutBorder","false","false","false",null,null,"_self","false","false","false");#$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#如果要放置的欄元素內容含有表單資料if($conf["formData"]=="true"){#把表格的表單開始與結束取消$conf["formStart"]="false";$conf["formEnd"]="false";}#if end#如果 $conf["formStart"] 等於 "true"if($conf["formStart"]=="true"){#函式說明:#表單開始#回傳結果:#$result["status"],執行正常與否,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$resutl["function"],當前執行的涵式名稱.#$result["content"],表單開始的語法.#必填參數:$conf["form::start"]["action"]=$conf["formAction"];#爲要交給那個檔案處理該表單傳送的內容#可省略參數:#$conf["legend"]="";#顯示表單的標題#如果 $conf["formName"] 有設置if(isset($conf["formName"])){$conf["form::start"]["name"]=$conf["formName"];#爲該表單的名稱,id也跟$conf["name"]一樣.}#if end#$conf["method"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。#如果 $conf["formTarget"] 有設置if(isset($conf["formTarget"])){$conf["form::start"]["target"]=$conf["formTarget"];#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。}#if end#$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是,"false"為否,預設為"false".#$conf["tableClass"]="";#表格要套用的css樣式,預設爲"__withoutBorder"無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。#$conf["showFieldsetBorder"]="false";#是否要顯示表單區域的框線,預設為"false"不顯示,"true"代表要顯示.#參考資料來源:#http://www.w3schools.com/html/html_forms.asp#http://www.w3schools.com/tags/tag_fieldset.asp$start=form::start($conf["form::start"]);unset($conf["form::start"]);#如果表單開始失敗if($start["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$start;#回傳結果return $result;}#if end#串接表單開始的語法$result["content"]=$result["content"].$start["content"];}#if end#如果 $conf["tableStart"] 為 "true"if($conf["tableStart"]=="true"){#函式說明:#表格開始,可以設定表格的厚度和位置#回傳結果:#$result,表格開始的語法#必填參數:$conf["table"]["start"]["class"]=$conf["tableStartClass"];#爲表格的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$tableStart=table::start($conf["table"]["start"]);unset($conf["table"]);#如果表格建立失敗if($tableStart["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$tableStart;#回傳結果return $result;}#if end#串接表格開始$result["content"]=$result["content"].$tableStart["content"];}#if end#如果 $conf["spaceBlockAferPerElement"] 等於 "true"if($conf["spaceBlockAferPerElement"]=="true"){#函式說明:#將一陣列每個元素間插入一個特定的元素#回傳結果:#$result["status"],執行是否成功,"true"為執行成功;"false"為執行失敗#$result["error"],錯誤訊息陣列.#$result["content"],插入完元素的新陣列.#必填的參數:#$conf["inputArray"],字串變數,要處理的陣列變數.$conf["arrays"]["insertElementBetweenElements"]["inputArray"]=$conf["tdContent"];#$conf["insertElement"],字串,要加入的元素.$conf["arrays"]["insertElementBetweenElements"]["insertElement"]=" ";#可省略參數:#無$newArray=arrays::insertElementBetweenElements($conf["arrays"]["insertElementBetweenElements"]);unset($conf["arrays"]["insertElementBetweenElements"]);#如果 $newArray["status"] 等於 "false"if($newArray["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$newArray;#回傳結果return $result;}#if end#置換原始的 $conf["spaceBlockAferPerElement"] 陣列$conf["tdContent"]=$newArray["content"];}#if end#函式說明:#列開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table"]["trStart"]["class"]=$conf["trClass"];#爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$trStart=table::trStart($conf["table"]["trStart"]);unset($conf["table"]["trStart"]);#如果列開始失敗if($trStart["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$trStart;#回傳結果return $result;}#if end#串接列開始$result["content"]=$result["content"].$trStart["content"];#函式說明:#行開始#回傳結果:#$result,行開始的語法#必填參數:$conf["table"]["tdStart"]["class"]=$conf["tdClass"];#該 td 要套用套用的 css 樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$tdStart=table::tdStart($conf["table"]["tdStart"]);unset($conf["table"]["tdStart"]);#如果欄位的開始失敗if($tdStart["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$tdStart;#回傳結果return $result;}#if end#傳接欄位的開始$result["content"]=$result["content"].$tdStart["content"];#針對欄上的每個數值for($i=0;$i<count($conf["tdContent"]);$i++){#串接欄位的內容$result["content"]=$result["content"].$conf["tdContent"][$i];#如果不是最後一個元素if($i!=count($conf["tdContent"])-1){#加上跳列$result["content"]=$result["content"]."<br>";}#if end}#foreach end#函式說明:#欄位的結束#回傳結果:#$result,行結束的語法$result["content"]=$result["content"].table::tdEnd();#函式說明:#列結束#回傳結果:#$result,列結束的語法$result["content"]=$result["content"].table::trEnd();#如果有設定表格結束if(isset($conf["tableEnd"])){#如果 $conf["tableEnd"] 為 "true"if($conf["tableEnd"]=="true"){#函式說明:#表格結束#回傳結果:#表格結束的語法$result["content"]=$result["content"].table::end();}#if end}#if end#如果 $conf["formEnd"] 等於 "true"if($conf["formEnd"]=="true" ){#函式說明:#表單結束#回傳結果:#$result,表單結束的語法#必填參數:$conf["form"]["end"]["tableEnd"]="false";#爲該表單是否要以</table>結尾。"true"爲是;"false"爲否。$formEnd=form::end($conf["form"]["end"]);unset($conf["form"]["end"]);#如果表單結束失敗if($formEnd["status"]=="false"){#設置錯誤訊息$result["status"]="false";#設置錯誤提示$result["error"]=$formEnd;#回傳結果return $result;}#if end#串接表單結束$result["content"]=$result["content"].$formEnd["content"];}#if end#設置執行成功訊息$result["status"]="true";#回傳結果return $result;}#function printColumn end/*#函式說明:#表格形式的空一列#回傳結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["content"],表格形式空一列的語法.#必填參數:#$conf["default"],字串,是否採用預設值,"true"爲是;"false"爲否.$conf["default"]="true";#可省略參數:#$conf["bgcolor"],字串,該空一列的空間底色要用設麼顏色,預設是不指定。如果該涵式是介於<table>與</table>之間,則其設定才會生效。#$conf["bgcolor"]="whilte";#$conf["tableStart"],字串,爲是否要表格開始,"true"表示"是".#$conf["tableStart"]="true";#$conf["tableClass"],字串,爲tr的css樣式類別名稱,預設為"__spaceTrTdRowDefauleTableCssStyle".#$conf["tableClass"]="true";#$conf["tableEnd"],字串,爲是否要表格結束,"true"表示"是".#$conf["tableEnd"]="true";#參考資料:#無.#備註:#無.*/public static function spaceTrTdRow(&$conf){#設置要回傳的變數$result=array();#設置要回傳的語法$result["content"]="";#取得當前執行的函數名稱$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["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("default");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";#可省略參數:#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("bgcolor","tableStart","tableClass","tableEnd");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string");#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"__spaceTrTdRowDefauleTableCssStyle",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#建立預設的表格css樣式#函式說明:#創建 css 樣式#必填參數:$conf_createCssStyle["cssStyleName"]="__spaceTrTdRowDefauleTableCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf_createCssStyle["attributes"]=array("word-break","table-layout","margin-left","margin-right","border","border-width");#為屬性名稱,須為陣列值$conf_createCssStyle["content"]=array("break-all","fixed","auto","auto","0px","100%");#為屬性值,須為陣列值$css=css::createCssStyle($conf_createCssStyle);unset($conf_createCssStyle);#串接css樣式$result["content"]=$result["content"].$css["content"];#判斷變數 $conf["default"]switch($conf["default"]){#如果其值爲 truecase "true":#空一列$result["content"]=$result["content"]."<tr><td> </td></tr>";#結束break;#如果其值爲 falsecase "false":#如果 $conf["tableStart"] 存在if(isset($conf["tableStart"])){#如果 $conf["tableStart"] 爲 "true"if($conf["tableStart"]=="true"){#如果 $conf["tableClass"] 存在if(isset($conf["tableClass"])){#則設定其要套用的css樣式$conf_tableStart["class"]=$conf["tableClass"];}#if end#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["content"],表格開始的語法#$result["function"],當前執行的函數#$result["error"],涵式錯誤訊息#必填參數:#$conf["class"]="";#爲表格的css樣式,若為"",則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["content"]=$result["content"].table::start($conf_tableStart)["content"];unset($conf_tableStart);}#if end}#if end#如果有設定背景顏色if(isset($conf["bgcolor"])){#套用顏色設定值$bgColor="bgcolor=".$conf["bgcolor"];}#if end#如果沒有設定背景顏色else{#將其設定值設爲空$bgColor="";}#else end#空一列$result["content"]=$result["content"]."<tr><td ".$bgColor." > </td></tr>";#如果 $conf["tableEnd"] 存在if(isset($conf["tableEnd"])){#如果 $conf["tableEnd"] 爲 "true"if($conf["tableEnd"]=="true"){#放置表格的結尾$result["content"]=$result["content"].table::end();}#if end}#if end#結束break;}#switch end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function end/*#函式說明:#表格形式的文字描述:#回傳結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],涵式錯誤訊息陣列.#$result["content"],表格形式文字描述的語法.#$result["function"],當前執行的函式名稱.#必填參數:#$conf["outputString"],字串,要印出來的文字.$conf["outputString"]="";#可省略參數:#$conf["tableStart"],字串,是否要表格開始<table>,"true"代表是.#$conf["tableStart"]="true";#$conf["tableClass"],字串,為表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder"#$conf["tableClass"]="__withoutBorder";#$conf["trStart"],字串,爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始.#$conf["trStart"]="true";#$conf["trClass"],字串,爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder"#$conf["trClass"]="__withoutBorder";#$conf["tdStart"],字串,爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始.#$conf["tdStart"]="true";#$conf["tdClass"],字串,該 td 要套用套用的 css 樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder"#$conf["tdClass"]="__withoutBorder";#$conf["tdEnd"],字串,爲是否要以</td>結尾,"true"表示"是".也可以看成列裏面的元素結束.#$conf["tdEnd"]="true";#$conf["trEnd"],字串,爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束.#$conf["trEnd"]="true";#$conf["tableEnd"],字串,是否要表格結束</table>,"true"代表是.#$conf["tableEnd"]="true";#參考資料:#無.#備註:#無.*/public static function text(&$conf){#初始化要回傳的內容$result=array();#設置當前執行的函數$result["function"]=__FUNCTION__;#初始化表格開始的語法$result["content"]="";#如果 $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("outputString");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";#可省略參數:#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="true";#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("tableStart","tableClass","trStart","trClass","tdStart","tdClass","tdEnd","trEnd","tableEnd");#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string");#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false","__withoutBorder","false","__withoutBorder","false","__withoutBorder","false","false","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#如果 $conf["tableStart"] 為 "true"if($conf["tableStart"]=="true"){#函式說明:#表格開始,可以設定表格的厚度和位置#回傳結果:#$result,表格開始的語法#必填參數:#套用樣式$conf["table"]["start"]["class"]=$conf["tableClass"];#爲表格的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$tableStart=table::start($conf["table"]["start"]);unset($conf["table"]);#如果表格開始失敗if($tableStart["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$tableStart;#回傳結果return $result;}#if end#串接表格開始的語法$result["content"]=$result["content"].$tableStart["content"];}#if end#如果 $conf["trStart"] 爲 "true"if($conf["trStart"]=="true"){#函式說明:#列開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table"]["trStart"]["class"]=$conf["trClass"];#爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$trStart=table::trStart($conf["table"]["trStart"]);unset($conf["table"]);#如果列開始失敗if($trStart["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$trStart;#回傳結果return $result;}#if end#串接列開始$result["content"]=$result["content"].$trStart["content"];}#if end#如果 $conf["tdStart"] 爲 "true"if($conf["tdStart"]=="true"){#函式說明:#行開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table"]["tdStart"]["class"]=$conf["tdClass"];#爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$tdStart=table::tdStart($conf["table"]["tdStart"]);unset($conf["table"]["tdStart"]);#如果欄開始失敗if($tdStart["status"]=="false"){#設置執行不正常$result["status"]="false";#程式停止執行$result["error"]=$tdStart;#回傳結果return $result;}#if end#串接欄$result["content"]=$result["content"].$tdStart["content"];}#if end#串接提示文字$result["content"]=$result["content"].$conf["outputString"];#如果其值爲 trueif($conf["tdEnd"]=="true"){#串接欄結束$result["content"]=$result["content"]."</td>";}#if end#如果 $conf["trtdEnd"] 爲 "true"if($conf["trEnd"]=="true"){#串接列結束$result["content"]=$result["content"]."</tr>";}#if end#如果 $conf["tableEnd"] 等於 "true"if($conf["tableEnd"]=="true"){#設置表格結束的語法#函式說明:#表格結束#回傳結果:#表格結束的語法$result["content"]=$result["content"].table::end();}#if end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function text end/*#函式說明:#依據類別的名稱、裡面的函式存限制、函式名稱、函式參數、函式回傳型態來建立類別圖表格#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["classDiagramTable"],類別圖的網頁code#必填參數:#$conf["className"],字串,類別的名稱.$conf["className"]="";#$conf["functionOpenAccessType"],字串陣列,函式存取的限制,每個元素代表一個函式的設定,"+"代表開放存取.#$conf["functionOpenAccessType"]=array();#$conf["functionName"],字串陣列,各函式的名稱,每個元素代表一個函式的名稱.#$conf["functionName"]=array();#$conf["functionArgv"],字串陣列,各函式的傳入參數型態,每個元素代表一個函式的入參數型態,""代表沒有傳入參數.#$conf["functionArgv"]=array();#$conf["functionReturnType"],字串陣列,各函式回傳的型態,每個元素代表一個函式回傳的型態,"void"代表沒有回傳變數.#$conf["functionReturnType"]=array();#可省略參數:#無.#參考資料:#無.#備註:#無.*/public static function classDiagramTable(&$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#初始化類別圖表格產生的html程式$result["classDiagramTable"]="";#參數檢查#檢查參數#函式說明:#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。#回傳結果:#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確#必填參數:$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("className","functionOpenAccessType","functionName","functionArgv","functionReturnType");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");#可省略參數:$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","array","array","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="true";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);unset($conf["variableCheck"]["isexistMuti"]);#如果 $checkResult["status"] 為 "fasle"if($checkResult["status"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#如果 $checkResult["passed"] 為 "fasle"if($checkResult["passed"]==="false"){#設置執行錯誤的識別$result["status"]="false";#設置執行錯誤的訊息$result["error"]=$checkResult;#回傳結果return $result;}#if end#建立類別名圖表格的css樣式#函式說明:#創建 css 樣式#回傳結果:#$result["css"],css設定內容#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤#必填參數:$conf["css"]["createCssStyle"]["cssStyleName"]="classDiagramClassNameCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf["css"]["createCssStyle"]["attributes"]=array("border","border-style","border-color","text-align");#為屬性名稱,須為陣列值$conf["css"]["createCssStyle"]["content"]=array("1px","solid","#000000","center");#為屬性值,須為陣列值$css=css::createCssStyle($conf["css"]["createCssStyle"]);unset($conf["css"]["createCssStyle"]);$result["classDiagramTable"]=$result["classDiagramTable"].$css["content"];#建立類別名圖表格的css樣式#函式說明:#創建 css 樣式#回傳結果:#$result["css"],css設定內容#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤#必填參數:$conf["css"]["createCssStyle"]["cssStyleName"]="classDiagramCssStyle";#為該 css 樣式的名稱,不能以數字開頭。$conf["css"]["createCssStyle"]["attributes"]=array("border","border-style","border-color");#為屬性名稱,須為陣列值$conf["css"]["createCssStyle"]["content"]=array("1px","solid","#000000");#為屬性值,須為陣列值$css=css::createCssStyle($conf["css"]["createCssStyle"]);unset($conf["css"]["createCssStyle"]);$result["classDiagramTable"]=$result["classDiagramTable"].$css["content"];#類別圖的表格開始#函式說明:#表格開始,可以設定表格的厚度和位置#回傳結果:#$result,表格開始的語法#必填參數:$conf["table"]["start"]["class"]="classDiagramCssStyle";#爲表格的css樣式,若為"",則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["classDiagramTable"]=$result["classDiagramTable"].table::start($conf["table"]["start"])["content"];unset($conf["table"]["start"]);#列的開始#函式說明:#列開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table"]["trStart"]["class"]="classDiagramCssStyle";#爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["classDiagramTable"]=$result["classDiagramTable"].table::trStart($conf["table"]["trStart"])["content"];unset($conf["table"]["trStart"]);#欄開始的語法#函式說明:#行開始#回傳結果:#$result,行開始的語法#必填參數:$conf["table"]["tdStart"]["class"]="classDiagramClassNameCssStyle";#該 td 要套用套用的 css 樣式,若為""則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。#可省略參數:$conf["table"]["tdStart"]["colspan"]="2";#為欄位合併的數量#$conf["table"]["tdStart"]["rowspan"]="2";#為列合併的數量$result["classDiagramTable"]=$result["classDiagramTable"].table::tdStart($conf["table"]["tdStart"])["content"];unset($conf["table"]["tdStart"]);#放置類別名稱$result["classDiagramTable"]=$result["classDiagramTable"].$conf["className"];#欄結束的語法#函式說明:#行結束#回傳結果:#$result,行結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::tdEnd();#列結束的語法#函式說明:#列結束#回傳結果:#$result,列結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::trEnd();#debug#var_dump($conf["functionName"]);#exit;#針對每個函式for($i=0;$i<count($conf["functionName"]);$i++){#列的開始#函式說明:#列開始#回傳結果:#$result,列開始的語法#必填參數:$conf["table"]["trStart"]["class"]="classDiagramCssStyle";#爲tr的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["classDiagramTable"]=$result["classDiagramTable"].table::trStart($conf["table"]["trStart"])["content"];unset($conf["table"]["trStart"]);#欄開始的語法#函式說明:#行開始#回傳結果:#$result,行開始的語法#必填參數:$conf["table"]["tdStart"]["class"]="classDiagramCssStyle";#該 td 要套用套用的 css 樣式,若為""則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["classDiagramTable"]=$result["classDiagramTable"].table::tdStart($conf["table"]["tdStart"])["content"];unset($conf["table"]["tdStart"]);#若無指定 public or privateif(!isset($conf["functionOpenAccessType"][$i])){#預設為public$conf["functionOpenAccessType"][$i]="public";}#if end#如果存在if(isset($conf["functionOpenAccessType"][$i])){#放置函式存取限制$result["classDiagramTable"]=$result["classDiagramTable"].$conf["functionOpenAccessType"][$i];}#if end#欄結束的語法#函式說明:#行結束#回傳結果:#$result,行結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::tdEnd();#欄開始的語法#函式說明:#行開始#回傳結果:#$result,行開始的語法#必填參數:$conf["table"]["tdStart"]["class"]="classDiagramCssStyle";#該 td 要套用套用的 css 樣式,若為""則代表不套用css樣式;若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式。$result["classDiagramTable"]=$result["classDiagramTable"].table::tdStart($conf["table"]["tdStart"])["content"];unset($conf["table"]["tdStart"]);#放置函式名稱、參數型態、回傳型態$result["classDiagramTable"]=$result["classDiagramTable"].$conf["functionName"][$i]["content"]."(".$conf["functionArgv"][$i]."):".$conf["functionReturnType"][$i];#欄結束的語法#函式說明:#行結束#回傳結果:#$result,行結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::tdEnd();#列結束的語法#函式說明:#列結束#回傳結果:#$result,列結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::trEnd();}#for end#類別圖的表格結束#函式說明:#表格結束#回傳結果:#表格結束的語法$result["classDiagramTable"]=$result["classDiagramTable"].table::end();#執行到這邊代表執行成功#設置執行成功的識別$result["status"]="true";#回傳結果return $result;}#function classDiagramTable end/*#函式說明:#建立div表格#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["content"],表格的html內容.#必填參數:#無.#可省略參數:#$conf["defaulBorderStyleName"],字串,預設的表格框線css類別樣式名稱,預設為"__qbpwcf_border",樣式為{border:1px solid;}#$conf["defaulBorderStyleName"]="__qbpwcf_border";#$conf["id.table"],字串,table的id.#$conf["id.table"]="tableId";#$conf["class.table"],陣列,最外層div要套用的css類別樣式#$conf["class.table"]=array();#$conf["class.table.head"],陣列,表格標題最外層div要套用的css類別樣式#$conf["class.table.head"]=array();#$conf["class.table.head.th"],陣列,<th>要套用的css類別樣式#$conf["class.table.head.th"]=array();#$conf["class.table.head.th.td"],陣列,標題欄位內容標籤<td>要套用的css類別樣式#$conf["class.table.head.th.td"]=array();#$conf["class.table.body"],陣列,表格內容最外圍div要套用的css類別樣式#$conf["class.table.body"]=array();#$conf["class.table.body.tr"],陣列,<tr>要套用的css類別樣式#$conf["class.table.body.tr"]=array();#$conf["class.table.body.tr.td"],陣列,內容欄位標籤<td>要套用的css類別樣式#$conf["class.table.body.tr.td"]=array();#$conf["titleRow"],陣列,表格內個欄位的標題內容.#$conf["titleRow"]=array();#$conf["titleId"],字串,抬頭的id.#$conf["titleId"]="titleId";#$conf["content"],二維陣列,每一列各欄位的內容.#$conf["content"]=array(array());#參考資料:#無.#備註:#無.*/public static function div(&$conf){#初始化要回傳的變數$result=array();#記錄當前執行的函數名稱$result["function"]=__FUNCTION__;#初始化表格的html語法$result["content"]="";#如果 $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#如果沒有指定預設的框線css類別樣式名稱if(!isset($conf["defaulBorderStyleName"])){#預設為 "__qbpwcf_border"$conf["defaulBorderStyleName"]="__qbpwcf_border";}#if end#檢查參數#函式說明:#檢查一包含數個可省略變數的陣列變數,其型態是否正確,省略掉的陣列變數可以直接給定預設值。#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函式名稱.#$result["passed"],參數是否都通過檢查,"true",代表有通過檢查,"false"代表沒有通過檢查。#必填參數:#$conf["checkedVar"],陣列,要檢查的變數陣列名稱為?$conf["variableCheck::checkSkipableVarType"]["checkedVar"]=$conf;#$conf["sikpableVarNameArray"],字串陣列,要檢查型態是否設定正確的變數名稱陣列.$conf["variableCheck::checkSkipableVarType"]["sikpableVarNameArray"]=array("titleId","id.table","defaulBorderStyleName","class.table","class.table.head","class.table.head.th","class.table.head.th.td","class.table.body","class.table.body.tr","class.table.body.tr.td","titleRow","content");#$argu,要直接存取的陣列變數名稱,變數前面加上「&」,如果要在別的函式裡面使用本函式,請記得將變動過結果($argu)給使用該函式的設定變數(通常是$conf=$argu).$argu=&$conf;#可省略參數:#$conf["skipableVarTypeArray"],字串陣列,要檢查的每個變數,其型態應該要為何,null代表不指定變數形態.$conf["variableCheck::checkSkipableVarType"]["skipableVarTypeArray"]=array("string","string","string","array","array","array","array","array","array","array","array");#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的變數要初始化為什麼,null代表不指定.$conf["variableCheck::checkSkipableVarType"]["skipableVarDefaultValue"]=array("","","__border",array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),array($conf["defaulBorderStyleName"]),null,null);$checkSkipableVarType=variableCheck::checkSkipableVarType($conf["variableCheck::checkSkipableVarType"],$argu);unset($conf["variableCheck::checkSkipableVarType"]);$conf=$argu;#如果檢查可省略參數失敗if($checkSkipableVarType["status"]=="false"){#設置執行錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkSkipableVarType;#回傳結果return $result;}#if end#初始化設定要套用class屬性的 $class 變數$class="";#如果有設置 $conf["class.table"]if(isset($conf["class.table"])){#如果其元素數量大於0if(count($conf["class.table"])>0){#class屬性的開始$class="class=\"";#針對每個要套用的 classforeach($conf["class.table"] as $className){#如果不是第一個 classif($class!=="class=\""){#加上" "$class=$class." ";}#if end#設定套用之$class=$class.$className;}#foreach end#class屬性的結束$class=$class."\"";}#if end}#if end#反之else{#設置預設的樣式$class="class='__qbpwcf_border'";}#else#如果 $conf["id.table"] 不等於 ""if($conf["id.table"]!==""){#設置table的id$conf["id.table"]="id=\"".$conf["id.table"]."\"";}#if end#將div轉換成table的語法$result["content"]=$result["content"]."<div style=\"display:table;margin:auto;\" ".$class." ".$conf["id.table"]." >";#如果 $conf["titleRow"] 存在if(isset($conf["titleRow"])){#初始化要套用的<thead>類別樣式$table_head="";#如果 $conf["class.table.head"] 存在if(isset($conf["class.table.head"])){#class屬性的開始$table_head="class=\"";#針對每個要套用的 classforeach($conf["class.table.head"] as $className){#設定套用之$table_head=$table_head." ".$className;}#foreach end#class屬性的結束$table_head=$table_head."\"";}#if end#反之else{#設置預設的樣式$table_head="class='__qbpwcf_border'";}#else#初始化要套用的<th>類別樣式$table_th="";#如果有設置 $conf["class.table.head.th"]if(isset($conf["class.table.head.th"])){#class屬性的開始$table_th="class=\"";#針對每個要套用的 classforeach($conf["class.table.head.th"] as $className){#設定套用之$table_th=$table_th." ".$className;}#foreach end#class屬性的結束$table_th=$table_th."\"";}#if end#反之else{#設置預設的樣式$table_th="class='__qbpwcf_border'";}#else#初始化要套用在<th>裡面<td>的css類別樣式$table_th_td="";#如果有設置 $conf["class.table.head.th.td"]if(isset($conf["class.table.head.th.td"])){#class屬性的開始$table_th_td="class=\"";#針對每個要套用的 classforeach($conf["class.table.head.th.td"] as $className){#設定套用之$table_th_td=$table_th_td." ".$className;}#foreach end#class屬性的結束$table_th_td=$table_th_td."\"";}#if end#反之else{#設置預設的樣式$table_th_td="class='__qbpwcf_border'";}#else#如果標題列id有設置if(isset($conf["titleId"])){#設置標題的id$conf["titleId"]="id=\"".$conf["titleId"]."\"";}#if end#反之else{#不設置id$conf["titleId"]="";}#else end#表格標題的開始$result["content"]=$result["content"]."<div ".$conf["titleId"]." style=\"display:table-header-group\" $table_head ><div style=\"display:table-row\" ".$table_th." >";#針對每個標題欄位foreach($conf["titleRow"] as $key=>$value){#放置其內容$result["content"]=$result["content"]."<div style=\"display:table-cell\" ".$table_th_td." >".$value."</div>";}#foreach end#表格標題的結束$result["content"]=$result["content"]."</div></div>";}#if end#初始化要套用的<tbody>類別樣式$table_body="";#如果 $conf["class.table.body"] 存在if(isset($conf["class.table.body"])){#class屬性的開始$table_body="class=\"";#針對每個要套用的 classforeach($conf["class.table.body"] as $className){#設定套用之$table_body=$table_body." ".$className;}#foreach end#class屬性的結束$table_body=$table_body."\"";}#if end#反之else{#設置預設的樣式$table_body="class='__qbpwcf_border'";}#else#初始化要套用的<tbody>中<tr>的css類別樣式$table_body_tr="";#如果 $conf["class.table.body.tr"] 存在if(isset($conf["class.table.body.tr"])){#class屬性的開始$table_body_tr="class=\"";#針對每個要套用的 classforeach($conf["class.table.body.tr"] as $className){#設定套用之$table_body_tr=$table_body_tr." ".$className;}#foreach end#class屬性的結束$table_body_tr=$table_body_tr."\"";}#if end#反之else{#設置預設的樣式$table_body_tr="class='__qbpwcf_border'";}#else#初始化要套用的<tbody>中<tr>中<td>的css類別樣式$table_body_tr_td="";#如果 $conf["class.table.body.tr.td"] 存在if(isset($conf["class.table.body.tr.td"])){#class屬性的開始$table_body_tr_td="class=\"";#針對每個要套用的 classforeach($conf["class.table.body.tr.td"] as $className){#設定套用之$table_body_tr_td=$table_body_tr_td." ".$className;}#foreach end#class屬性的結束$table_body_tr_td=$table_body_tr_td."\"";}#if end#反之else{#設置預設的樣式$table_body_tr_td="class='__qbpwcf_border'";}#else#如果 $conf["content"] 存在if(isset($conf["content"])){#表格內容的開始$result["content"]=$result["content"]."<div style=\"display:table-row-group\" ".$table_body." >";#針對每列foreach($conf["content"] as $row){#表格內容欄的開始$result["content"]=$result["content"]."<div style=\"display:table-row\" ".$table_body_tr." >";#針對每個欄位foreach($row as $key=>$value){#放置其內容$result["content"]=$result["content"]."<div style=\"display:table-cell\" ".$table_body_tr_td." >".$value."</div>";}#foreach end#表格內容欄的結束$result["content"]=$result["content"]."</div>";}#foreach end#表格內容的結束$result["content"]=$result["content"]."</div></div>";}#if end#div表格結束$result["content"]=$result["content"]."</div>";#設定執行正常$result["status"]="true";#回傳結果return $result;}#function div end/*#函式說明:#建立div表格,並具備翻頁功能,從ajax取得新資料.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["content"],表格的html內容.$result["argu"],使用的參數.$result["argued"],參數檢查後使用的參數.#必填參數:#$conf["dataUrl"],字串,取得資料的url.$conf["dataUrl"]="";#可省略參數:#$conf["defaulBorderStyleName"],字串,預設的表格框線css類別樣式名稱,預設為"__qbpwcf_border",樣式為{border:1px solid;}#$conf["defaulBorderStyleName"]="__qbpwcf_border";#$conf["id.table"],字串,table的id.#$conf["id.table"]="tableId";#$conf["class.table"],陣列,最外層div要套用的css類別樣式#$conf["class.table"]=array();#$conf["class.table.head"],陣列,表格標題最外層div要套用的css類別樣式#$conf["class.table.head"]=array();#$conf["class.table.head.th"],陣列,<th>要套用的css類別樣式#$conf["class.table.head.th"]=array();#$conf["class.table.head.th.td"],陣列,標題欄位內容標籤<td>要套用的css類別樣式#$conf["class.table.head.th.td"]=array();#$conf["class.table.body"],陣列,表格內容最外圍div要套用的css類別樣式#$conf["class.table.body"]=array();#$conf["class.table.body.tr"],陣列,<tr>要套用的css類別樣式#$conf["class.table.body.tr"]=array();#$conf["class.table.body.tr.odd"],陣列,奇數<tr>要套用的css類別樣式.#$conf["class.table.body.tr.odd"]=array();#$conf["class.table.body.tr.even"],陣列,偶數<tr>要套用的css類別樣式.#$conf["class.table.body.tr.even"]=array();#$conf["class.table.body.tr.td"],陣列,內容欄位標籤<td>要套用的css類別樣式#$conf["class.table.body.tr.td"]=array();#$conf["titleRow"],字串陣列,表格內個欄位的標題內容.#$conf["titleRow"]=array();#$conf["titleId"],字串,抬頭的id.#$conf["titleId"]="titleId";#參考資料:#https://www.w3.org/Style/css2-updates/css2/tables.html#備註:#無.*/public static function divAjax(&$conf){#初始化要回傳的變數$result=array();#記錄當前執行的函數名稱$result["function"]=__FUNCTION__;#初始化表格的html語法$result["content"]="";#如果 $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;#參數清單$argu=array();$argu[]="defaulBorderStyleName";$argu[]="id.table";$argu[]="class.table";$argu[]="class.table.head";$argu[]="class.table.head.th";$argu[]="class.table.head.th.td";$argu[]="class.table.body";$argu[]="class.table.body.tr";$argu[]="class.table.body.tr.odd";$argu[]="class.table.body.tr.even";$argu[]="lass.table.body.tr.td";$argu[]="titleRow";$argu[]="titleId";#可省略參數若有設置,不能為空值.$skipableVariableCanNotBeEmpty=$argu;#可省略的參數名稱$skipableVariableName=$argu;#可省略變數的形態$skipableVariableType=array();$skipableVariableType[]="string";$skipableVariableType[]="string";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="array";$skipableVariableType[]="string";#可省略變數的預設值$skipableVarDefaultValue=array();$skipableVarDefaultValue[]="__qbpwcf_border";$skipableVarDefaultValue[]="tableId";$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=array("__qbpwcf_border","__qbpwcf_bold","__qbpwcf_alignCenter");$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=array("__qbpwcf_odd");$skipableVarDefaultValue[]=array("__qbpwcf_even");$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=null;$skipableVarDefaultValue[]=null;#檢查參數#函式說明:#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],設置給予的參數.#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.#$result["argu"],字串陣列,目前輸入的參數名稱陣列.#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.#$result["notNeedVar"],字串陣列,多餘的參數名稱.#必填參數:#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variable::checkArguments"]["varInput"]=&$conf;#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variable::checkArguments"]["referenceVarKey"]="variable::checkArguments";#可以省略的參數:#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variable::checkArguments"]["mustBeFilledVariableName"]=array("dataUrl");#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.$conf["variable::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.$conf["variable::checkArguments"]["canBeEmptyString"]="false";#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.#$conf["canNotBeEmpty"]=array();#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.#$conf["canBeEmpty"]=array();#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.$conf["variable::checkArguments"]["skipableVariableCanNotBeEmpty"]=$skipableVariableCanNotBeEmpty;#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");$conf["variable::checkArguments"]["skipableVariableName"]=$skipableVariableName;#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");$conf["variable::checkArguments"]["skipableVariableType"]=$skipableVariableType;#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".$conf["variable::checkArguments"]["skipableVarDefaultValue"]=$skipableVarDefaultValue;#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".$conf["variable::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".$conf["variable::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";#$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["variable::checkArguments"]);unset($conf["variable::checkArguments"]);#如果檢查參數失敗if($checkArguments["status"]==="false"){#設置執行錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#如果檢查參數不通過if($checkArguments["passed"]==="false"){#設置執行錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$checkArguments;#回傳結果return $result;}#if end#取得參數檢查後使用的參數$result["argued"]=$conf;#初始化設定要套用class屬性的 $class 變數$class="";#如果有設置 $conf["class.table"]if(isset($conf["class.table"])){#如果其元素數量大於0if(count($conf["class.table"])>0){#class屬性的開始$class="class=\"";#針對每個要套用的 classforeach($conf["class.table"] as $className){#如果不是第一個 classif($class!=="class=\""){#加上" "$class=$class." ";}#if end#設定套用之$class=$class.$className;}#foreach end#class屬性的結束$class=$class."\"";}#if end}#if end#反之else{#設置預設的樣式$class="class='__qbpwcf_border'";}#else#如果 $conf["id.table"] 不等於 ""if($conf["id.table"]!==""){#設置table的id$conf["id.table"]="id=\"".$conf["id.table"]."\"";}#if end#將div轉換成table的語法$result["content"]=$result["content"]."<div style=\"display:table;margin:auto;width:90%;border-left:1px solid;border-right:1px solid;\" ".$class." ".$conf["id.table"]." >";#如果 $conf["titleRow"] 存在if(isset($conf["titleRow"])){#初始化要套用的<thead>類別樣式$table_head="";#如果 $conf["class.table.head"] 存在if(isset($conf["class.table.head"])){#class屬性的開始$table_head="class=\"";#針對每個要套用的 classforeach($conf["class.table.head"] as $className){#設定套用之$table_head=$table_head." ".$className;}#foreach end#class屬性的結束$table_head=$table_head."\"";}#if end#反之else{#設置預設的樣式$table_head="class='__qbpwcf_border'";}#else#初始化要套用的<th>類別樣式$table_th="";#如果有設置 $conf["class.table.head.th"]if(isset($conf["class.table.head.th"])){#class屬性的開始$table_th="class=\"";#針對每個要套用的 classforeach($conf["class.table.head.th"] as $className){#設定套用之$table_th=$table_th." ".$className;}#foreach end#class屬性的結束$table_th=$table_th."\"";}#if end#反之else{#設置預設的樣式$table_th="class='__qbpwcf_border'";}#else#初始化要套用在<th>裡面<td>的css類別樣式$table_th_td="";#如果有設置 $conf["class.table.head.th.td"]if(isset($conf["class.table.head.th.td"])){#class屬性的開始$table_th_td="class=\"";#針對每個要套用的 classforeach($conf["class.table.head.th.td"] as $className){#設定套用之$table_th_td=$table_th_td." ".$className;}#foreach end#class屬性的結束$table_th_td=$table_th_td."\"";}#if end#反之else{#設置預設的樣式$table_th_td="class='__qbpwcf_border'";}#else#如果標題列id有設置if(isset($conf["titleId"])){#設置標題的id$conf["titleId"]="id=\"".$conf["titleId"]."\"";}#if end#反之else{#預設的ID為資料表id+"_title"$conf["titleId"]="id=\"".$result["argued"]["id.table"]."_title\"";}#else end#表格標題的開始$result["content"]=$result["content"]."<div ".$conf["titleId"]." style=\"display:table-header-group\" $table_head ><div style=\"display:table-row\" ".$table_th." >";#針對每個標題欄位foreach($conf["titleRow"] as $key=>$value){#放置其內容$result["content"]=$result["content"]."<div style=\"display:table-cell\" ".$table_th_td." >".$value."</div>";}#foreach end#表格標題的結束$result["content"]=$result["content"]."</div></div>";}#if end#初始化要套用的<tbody>類別樣式$table_body="";#如果 $conf["class.table.body"] 存在if(isset($conf["class.table.body"])){#class屬性的開始$table_body="class=\"";#針對每個要套用的 classforeach($conf["class.table.body"] as $className){#設定套用之$table_body=$table_body." ".$className;}#foreach end#class屬性的結束$table_body=$table_body."\"";}#if end#反之else{#設置預設的樣式$table_body="class=\"__qbpwcf_border\"";}#else#初始化要套用的<tbody>中<tr>的css類別樣式$table_body_tr="";#如果 $conf["class.table.body.tr"] 存在if(isset($conf["class.table.body.tr"])){#class屬性的開始$table_body_tr="class=\"";#針對每個要套用的 classforeach($conf["class.table.body.tr"] as $className){#設定套用之$table_body_tr=$table_body_tr." ".$className;}#foreach end#class屬性的結束$table_body_tr=$table_body_tr."\"";}#if end#反之else{#設置預設的樣式$table_body_tr="class=\"__qbpwcf_border\"";}#else#初始化要套用的<tbody>中奇數<tr>的css類別樣式$table_body_tr_odd="";#如果 $conf["class.table.body.tr.odd"] 存在if(isset($result["argued"]["class.table.body.tr.odd"])){#class屬性的開始$table_body_tr_odd="";#針對每個要套用的 classforeach($result["argued"]["class.table.body.tr.odd"] as $className){#設定套用之$table_body_tr_odd=$table_body_tr_odd." ".$className;}#foreach end}#if end#初始化要套用的<tbody>中偶數<tr>的css類別樣式$table_body_tr_even="";#如果 $conf["class.table.body.tr.even"] 存在if(isset($result["argued"]["class.table.body.tr.even"])){#針對每個要套用的 classforeach($result["argued"]["class.table.body.tr.even"] as $className){#設定套用之$table_body_tr_even=$table_body_tr_even." ".$className;}#foreach end}#if end#初始化要套用的<tbody>中<tr>中<td>的css類別樣式$table_body_tr_td="";#如果 $conf["class.table.body.tr.td"] 存在if(isset($conf["class.table.body.tr.td"])){#class屬性的開始$table_body_tr_td="class=\"";#針對每個要套用的 classforeach($conf["class.table.body.tr.td"] as $className){#設定套用之$table_body_tr_td=$table_body_tr_td." ".$className;}#foreach end#class屬性的結束$table_body_tr_td=$table_body_tr_td."\"";}#if end#反之else{#設置預設的樣式$table_body_tr_td="class=\"__qbpwcf_border\"";}#else#table row group => tbody$tableRowGroup="<div style=\"display:table-row-group;\" ".$table_body." qbpwcfAttr=\"tbody\"></div>";#串接空的tbody$result["content"]=$result["content"].$tableRowGroup;#table row => tr$tableRow="<div style=\"display:table-row\" ".$table_body_tr." ></div>";#table cell => td$tableCell="<div style=\"display:table-cell\" ".$table_body_tr_td." ></div>";#div表格結束$result["content"]=$result["content"]."</div>";#最外層用div包住$result["content"]="<div id=\"".$result["argued"]["id.table"]."_outer_div\">".$result["content"]."</div>";#javaScript to get data#函式說明:#將要執行的script語法透過該函式執行(會在程式外層用<script></script>包起來).#回傳結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列#$result["function"],當前執行的函數名稱#$result["content"],要執行的javaScript語法#必填參數:#$conf["script"],字串,要執行的javaScript語法.$conf["javaScript::toScript"]["script"]="//抓取表格var ".$result["argued"]["id.table"]."=document.getElementById('".$result["argued"]["id.table"]."');//抓取初始資料/*設置 window.qbpwcf.ajax 函數說明:傳送ajax,指定傳送前要做什麼事情,傳送後要做什麼事情.參數:params={};params.method='POST' or 'GET';params.headers={name:value};params.url='url to request';params.resType='json';params.preAc='function name to call before send request';params.aftAc='function name to call after send request';params.data='data to contain','key1=encodeURIComponent(val1)&key2=encodeURIComponent(val2)';if no data please use {};*/params={};params.table=".$result["argued"]["id.table"].";params.method='POST';params.url='".$conf["dataUrl"]."';params.resType='json';params.preAc=function(){//取得 tbodyvar tbody=params.table.querySelector('div[qbpwcfAttr=tbody]');//清空表單內容tbody.innerHTML='';//建立處理中的divvar div=document.createElement('div');div.style.display='table-row';//顯示處理中div.innerText='Processing...';tbody.appendChild(div);}params.aftAc=function(res){//如果沒有資料if(res.meta===undefined){//提示錯誤訊息console.error('lost meta data');//結束執行return false;}//if end//取得 tbodyvar tbody=params.table.querySelector('div[qbpwcfAttr=tbody]');//結束處理中的效果tbody.innerHTML='';//針對每筆資料for(var i=0;i<res.data.length;i++){//解析html tr字串var parser = new DOMParser();var divTr = parser.parseFromString('".$tableRow."', 'text/html');divTr = divTr.children[0].children[1].children[0];//初始化儲存class的字串var classStr='';//針對tr每個既有的classfor(var j=0;j<divTr.classList.length;j++){//串接classclassStr=classStr+divTr.classList[j];}//for edn//如果是奇數欄位if(i%2===1){//套用 __qbpwcf_odd classdivTr.className=classStr+' ".$table_body_tr_odd."';}//if end//反之是偶數欄位else{//套用 __qbpwcf_evendivTr.className=classStr+' ".$table_body_tr_even."';}//else end//針對每個欄位for(var j=0;j<res.data[i].length;j++){//解析html td字串var parser = new DOMParser();var divTd = parser.parseFromString('".$tableCell."', 'text/html');divTd = divTd.children[0].children[1].children[0];//放置內容divTd.innerHTML=res.data[i][j];//放置 tddivTr.appendChild(divTd);}//for end//放置 trtbody.appendChild(divTr);}//for end//如果已經有 表格下方的root div,if(document.getElementById('".$result["argued"]["id.table"]."-rootBottomDiv')!==null){//移除之document.getElementById('".$result["argued"]["id.table"]."-rootBottomDiv').remove();}//if end//表格下方的root divvar rootBottomDiv=document.createElement('div');rootBottomDiv.id='".$result["argued"]["id.table"]."-rootBottomDiv';rootBottomDiv.style.margin='auto';rootBottomDiv.style.fontSize='1.8em';rootBottomDiv.style.width=getComputedStyle(document.getElementById('".$result["argued"]["id.table"]."')).width;//當畫面寬度變動的時候window.addEventListener('resize', function(e){//重新套用頁尾資訊寬度rootBottomDiv.style.width=getComputedStyle(document.getElementById('".$result["argued"]["id.table"]."')).width;});//取得第幾頁var pageNumber=res.meta.pageNumber;//取得一頁的資料上限var numberPerPage=res.meta.numberPerPage;//取得該頁筆數var currentNumber=res.meta.currentNumber;//取得總共資料筆數var total=res.meta.total;//資料開始點var startPoint=(parseInt(pageNumber)-1)*parseInt(numberPerPage)+1;//資料結束點var endPoint=(parseInt(pageNumber)-1)*parseInt(numberPerPage)+(parseInt(currentNumber));//描述資料狀況var desc=startPoint+'~'+endPoint+'/'+total;descDiv=document.createElement('div');descDiv.style.display='inline';descDiv.innerText=desc;//換頁按鈕區塊var changePageDiv=document.createElement('div');changePageDiv.style.display='inline';changePageDiv.style.float='right';//換前頁的區塊var prePageDiv=document.createElement('div');prePageDiv.style.display='inline';var prePageA=document.createElement('a');prePageA.style.cursor='pointer';prePageA.innerHTML='←';prePageA.pageNumber=pageNumber;prePageA.params=params;prePageA.addEventListener('click',function(e){//如果當前頁碼大於等於2if(prePageA.pageNumber>=2){//頁碼減少一prePageA.pageNumber--;}//if end//更新要求的頁碼prePageA.params.data='pageNumber='+encodeURIComponent(prePageA.pageNumber);//遞迴呼叫return window.qbpwcf.ajax.call(this,prePageA.params);});prePageDiv.appendChild(prePageA);//換後頁的區塊var nextPageDiv=document.createElement('div');nextPageDiv.style.display='inline';var nextPageA=document.createElement('a');nextPageA.style.cursor='pointer';nextPageA.innerHTML='→';nextPageA.pageNumber=pageNumber;nextPageA.params=params;nextPageA.addEventListener('click',function(e){//新增頁碼nextPageA.pageNumber++;//更新要求的頁碼nextPageA.params.data='pageNumber='+encodeURIComponent(nextPageA.pageNumber);//遞迴呼叫return window.qbpwcf.ajax.call(this,nextPageA.params);});nextPageDiv.appendChild(nextPageA);//放置上一頁與下一頁的linkchangePageDiv.appendChild(prePageDiv);changePageDiv.appendChild(nextPageDiv);//放置資料描述rootBottomDiv.appendChild(descDiv);//放置換頁區塊rootBottomDiv.appendChild(changePageDiv);//放置表格下方的root divparams.table.parentNode.appendChild(rootBottomDiv);}params.data='pageNumber='+encodeURIComponent(1);window.qbpwcf.ajax.call(this,params);";#可省略參數:#$conf["onReady"],字串,是否要在網頁完全載入後再執行,"false"為不等載入完就先執行,預設為"true"要等載入完再執行.#$conf["onReady"]="true";#$conf["globalJs"],字串陣列,為要放入<script>標籤的js全域變數.#$conf["globalJs"]=array();#$conf["jsFunciton"],字串陣列,為要放入<script>標籤的js函數.#$conf["jsFunciton"]=array();#參考資料:#http://stackoverflow.com/questions/9899372/pure-javascript-equivalent-to-jquerys-ready-how-to-call-a-function-when-the$toScript=javaScript::toScript($conf["javaScript::toScript"]);unset($conf["javaScript::toScript"]);#如果執行失敗if($toScript["status"]==="false"){#設置執行錯誤識別$result["status"]="false";#設置錯誤訊息$result["error"]=$toScript;#回傳結果return $result;}#if end#串接js語法$result["content"]=$result["content"].$toScript["content"];#設定執行正常$result["status"]="true";#回傳結果return $result;}#function divAjax end/*#函式說明:#建立<thead></thead>標籤,裡面放置表格的標題.#回傳結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],涵式錯誤訊息陣列.#$result["content"],thead的語法.#$result["function"],當前執行的函式名稱.#必填參數:#$conf["content"],陣列,要放到thead裡面的內容.$conf["content"]=array();#可省略參數:#無#參考資料:#無.#備註:#無.*/public static function head(&$conf){#初始化要回傳的變數$result=array();#初始化要回傳的變數$result["content"]="";#初始化當前執行的函數名稱$result["funciton"]=__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"],每個參數設定的錯誤訊息#$result["argu"],字串陣列,目前輸入的參數名稱陣列.#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.#$result["notNeedVar"],字串陣列,多餘的參數名稱.#必填參數:#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("content");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";#可省略參數:#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("colspan","rowspan");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");#$conf["variableCheck::checkArguments"]["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$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#串接用thead將內容包起來的內容$result["content"]=$result["content"]."<thead>".$conf["content"]."</thead>";#設置執行正常$result["status"]="true";#回傳結果return $result;}#function head end/*#函式說明:#建立多個tbody.#回傳結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],涵式錯誤訊息陣列.#$result["content"],tbody的語法.#$result["eachBody"],每個tbody的內容.#$result["function"],當前執行的函式名稱.#必填參數:#$conf["content"],陣列,要放到tbody裡面的內容.#$conf["content"]=array();#可省略參數:#無.#參考資料:#無.#備註:#一個<table></table>裡面可以有多個<tbody></tbody>*/public static function body(&$conf){#初始化要回傳的變數$result=array();#初始化要回傳的變數$result["content"]="";#初始化當前執行的函數名稱$result["funciton"]=__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"],每個參數設定的錯誤訊息#$result["argu"],字串陣列,目前輸入的參數名稱陣列.#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.#$result["notNeedVar"],字串陣列,多餘的參數名稱.#必填參數:#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。$conf["variableCheck::checkArguments"]["varInput"]=&$conf;#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("content");#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array");#$conf["variableCheck::checkArguments"]["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("colspan","rowspan");#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");#$conf["variableCheck::checkArguments"]["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$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#有幾個 $content 就執行幾次foreach($conf["content"] as $tbodyCon){#用tboby將內容包起來$result["eachBody"][]="<tbody>".$tbodyCon."</tbody>";#串接用tboby將內容包起來的內容$result["content"]=$result["content"]."<tbody>".$tbodyCon."</tbody>";}#foreach end#設置執行正常$result["status"]="true";#回傳結果return $result;}#function tbody end}#class end?>