Subversion Repositories php-qbpwcf

Rev

Rev 207 | 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,Chen

    This file is part of QBPWCF.

    QBPWCF is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    QBPWCF is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

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

*/
namespace qbpwcf;

/*
類別說明:
輸出各種用途文字的類別.
備註:
無.
*/
class text{

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$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

        /*
        #函式說明:
        #顯示html的註解.
        #回傳的結果:
        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["output"],我們所要的內容.
        #必填的參數:
        #$conf["contentArray"],陣列型態,代表每一行的註解內容.
        $conf["contentArray"]=array("");
        #可省略的參數:
        #無.
        #參考資料:
        #w3c HTML <!--...--> Tag,http://www.w3schools.com/tags/tag_comment.asp.
        #備註:
        #\r與\n代表換行.
        */
        static function htmlComment(&$conf){
                
                #初始化要回傳的結果
                $result=array();

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

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

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

                        #回傳結果
                        return $result;
        
                        }#if end
        
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("contentArray");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("customSettings");
                #$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);
                #$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["output"]="";
                                                
                #初始化要輸出的註解標籤開頭
                $result["output"]=$result["output"]."<!-- \r\n";
                        
                #執行到這邊代表參數正確
                #針對每個 $conf["contentArray"]
                foreach($conf["contentArray"] as $lineContent){
                        
                        #串接要輸出的註解內容
                        $result["output"]=$result["output"].$lineContent."\r\n";
                        
                        }#foreach end
                
                #加上要輸出的註解標籤結束
                $result["output"]=$result["output"]." --> \r\n";
                
                #執行到這邊代表執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function htmlComment end
                
        /*
        #函式說明:
        #顯示一行文字,太長會自動省略.
        #回傳的結果:
        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],語法.
        #必填參數:
        #$conf["string"],字串
        $conf["string"]="";
        #可省略參數:
        #$conf["class"],字串,要使用的css樣式名稱,預設為"__qbpwcf_divFontCssStyle".
        #$conf["class"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */              
        static function oneLine(&$conf){

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

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

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

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

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

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

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #設置要顯示的字串
                $result["content"]=$result["content"].$conf["string"];
        
                #設置文字要用的css樣式
                #涵式說明:
                #<div>區塊,裡面可以指定css的class樣式,可以指定提示文字.
                #$result["status"],字串,執行否正常,"true"代表正常,"false"代表不正常.
                #$result["functin"],字串,當前函數的名稱.
                #$result["error"],陣列,錯訊訊息.
                #$result["content"],字串,含有<div>標籤的內容.
                #必填參數:
                #$conf["contentArray"],字串陣列,要放入的內容陣列.
                $conf["css::divSection"]["contentArray"]=array($result["content"]);
                #可省略參數
                #$conf["class"],字串,div區段要套用的css樣式.
                $conf["css::divSection"]["class"]=$conf["class"];
                #$conf["title"],陣列,滑鼠移到上面時要顯示的內容,每個元素代表一列內容
                $conf["css::divSection"]["title"]=array($conf["string"]);
                $divSection=css::divSection($conf["css::divSection"]);
                
                #如果建立div區塊失敗
                if($divSection["status"]=="false"){
                        
                        #設置執行失敗識別
                        $result["status"]="false";

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

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

                #取得套用css樣式後的字串
                $result["content"]=$divSection["content"];

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

                #回傳結果
                return $result;

                }#function oneLine end
                
        /*
        #函式說明:
        #顯示一行文字,太長會自動省略,後面不段行.
        #回傳的結果:
        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],語法.
        #必填參數:
        #$conf["string"],字串
        $conf["string"]="";
        #可省略參數:
        #$conf["class"],字串,要使用的css樣式名稱,預設為"__defaultTextStyle"
        #$conf["class"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */              
        static function oneLineNotEnd(&$conf){

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

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

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

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

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

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

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]==="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #設置要顯示的字串
                $result["content"]=$result["content"].$conf["string"];
        
                #如果是採用預設樣式
                if($conf["class"]==="__defaultTextStyle"){
                        
                        #設置預設的css樣式
                        #涵式說明: 
                        #創建 css 樣式
                        #回傳的結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["css"],css設定內容
                        #$result["function"],當前執行的函數
                        #$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤 
                        #必填的參數:
                        $conf["css::createCssStyle"]["cssStyleName"]="__defaultTextStyle";#為該 css 樣式的名稱,不能以數字開頭。
                        $conf["css::createCssStyle"]["attributes"]=array("font-size","margin-left","margin-right","margin-top","margin-bottom","white-space","overflow","text-overflow","width");#為屬性名稱,須為陣列值
                        $conf["css::createCssStyle"]["content"]=array("30px","auto","auto","auto","auto","nowrap","hidden","ellipsis","100%");#為屬性值,須為陣列值
                        $createCss=css::createCssStyle($conf["css::createCssStyle"]);
                        unset($conf["css::createCssStyle"]);
                        
                        #如果建立預設css樣式失敗
                        if($createCss["status"]=="false"){
                                
                                #設置執行失敗識別
                                $result["status"]="false";

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

                                #回傳結果
                                return $result;

                                }#if end
                                
                        #串聯css樣式
                        $result["content"]=$createCss["content"].$result["content"];
                        
                        }#if end
                        
                #設置文字要用的css樣式
                #涵式說明:
                #<div>區塊,裡面可以指定css的class樣式,可以指定提示文字.
                #$result["status"],字串,執行否正常,"true"代表正常,"false"代表不正常.
                #$result["functin"],字串,當前函數的名稱.
                #$result["error"],陣列,錯訊訊息.
                #$result["content"],字串,含有<div>標籤的內容.
                #必填參數:
                #$conf["contentArray"],字串陣列,要放入的內容陣列.
                $conf["css::divSection"]["contentArray"]=array($result["content"]);
                #可省略參數
                #$conf["class"],字串,div區段要套用的css樣式.
                $conf["css::divSection"]["class"]=$conf["class"];
                #$conf["title"],陣列,滑鼠移到上面時要顯示的內容,每個元素代表一列內容
                $conf["css::divSection"]["title"]=array($conf["string"]);
                $divSection=css::spanSection($conf["css::divSection"]);
                
                #如果建立div區塊失敗
                if($divSection["status"]=="false"){
                        
                        #設置執行失敗識別
                        $result["status"]="false";

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

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

                #取得套用css樣式後的字串
                $result["content"]=$divSection["content"];

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

                #回傳結果
                return $result;

                }#function oneLineNotEnd end
                
        /*
        #函式說明:
        #顯示多行文字.
        #回傳的結果:
        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["content"],語法.
        #必填參數:
        #$conf["string"],字串陣列,要放置的內容.
        $conf["string"]=array();
        #可省略參數:
        #$conf["class"],字串,要使用的css樣式名稱,預設為"__defaultTextStyle"
        #$conf["class"]="";
        #$conf["type"],字串,要用"div"或"span"或"br"或"p"或"EOL"或"textarea"來段行,預設為"EOL".
        #$conf["type"]="EOL";
        #參考資料:
        #無.
        #備註:
        #無.
        */              
        static function multiLine(&$conf){

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

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

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

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

                        #回傳結果
                        return $result;
        
                        }#if end
                        
                #初始化要回傳的語法
                $result["content"]="";

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

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]=="false"){

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

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

                        #回傳結果
                        return $result;

                        }#if end

                #判斷 $conf["type"]
                switch($conf["type"]){
                        
                        #如果是 "div"
                        case "div":
                        
                                #針對每行
                                foreach($conf["string"] as $line){
                                        
                                        #函式說明:
                                        #顯示一行文字,太長會自動省略.
                                        #回傳的結果:
                                        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
                                        #$result["error"],錯誤訊息陣列.
                                        #$result["function"],當前執行的函數名稱.
                                        #$result["content"],語法.
                                        #必填的參數:
                                        #$conf["string"],字串
                                        $conf["self::oneLine"]["string"]=$line;
                                        #可省略的參數:
                                        
                                        #如果有設置 $conf["class"]
                                        if(isset($conf["class"])){
                                                
                                                #$conf["class"],字串,要使用的css樣式名稱,預設為"__defaultTextStyle"
                                                $conf["self::oneLine"]["class"]=$conf["class"];
                                                
                                                }#if end
                                        
                                        $oneLine=self::oneLine($conf["self::oneLine"]);
                                        unset($conf["self::oneLine"]);
                                        
                                        #如果執行失敗
                                        if($oneLine["status"]==="false"){
                                                
                                                #設置執行失敗識別
                                                $result["status"]="false";

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

                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                                
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$oneLine["content"];
                                        
                                        }#foreach end
                        
                                #跳出 switch
                                break;
                        
                        #如果是 "span"
                        case "span":
        
                                #針對每行
                                foreach($conf["string"] as $line){
                                        
                                        #函式說明:
                                        #顯示一行文字,太長會自動省略.
                                        #回傳的結果:
                                        #$result["status"],執行是否正常,"true"為正常,"false"為不正常.
                                        #$result["error"],錯誤訊息陣列.
                                        #$result["function"],當前執行的函數名稱.
                                        #$result["content"],語法.
                                        #必填的參數:
                                        #$conf["string"],字串
                                        $conf["self::oneLine"]["string"]=$line;
                                        #可省略的參數:
                                        
                                        #如果有設置 $conf["class"]
                                        if(isset($conf["class"])){
                                                
                                                #$conf["class"],字串,要使用的css樣式名稱,預設為"__defaultTextStyle"
                                                $conf["self::oneLine"]["class"]=$conf["class"];
                                                
                                                }#if end
                                        
                                        $oneLine=self::oneLineNotEnd($conf["self::oneLine"]);
                                        unset($conf["self::oneLine"]);
                                        
                                        #如果執行失敗
                                        if($oneLine["status"]==="false"){
                                                
                                                #設置執行失敗識別
                                                $result["status"]="false";

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

                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                                
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$oneLine["content"];
                                        
                                        }#foreach end
                        
                                #跳出 switch
                                break;
                        
                        #如果是 "p"
                        case "p":
                        
                                #針對每行
                                foreach($conf["string"] as $line){
                                        
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$line."<p>";
                                        
                                        }#foreach end
                        
                                #跳出 switch
                                break;
                        
                        #如果是 "br"
                        case "br":
                        
                                #針對每行
                                foreach($conf["string"] as $line){
                                        
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$line."<br>";
                                        
                                        }#foreach end
                        
                                #跳出 switch
                                break;
                                
                        #如果是 "EOL"
                        case "EOL":
                        
                                #針對每行
                                foreach($conf["string"] as $line){
                                        
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$line.PHP_EOL;
                                        
                                        }#foreach end
                        
                                #跳出 switch
                                break;
                        
                        #如果是 "textarea"
                        case "textarea":
                        
                                #函式說明:
                                #建立不會重複的class名稱.
                                #回傳結果:
                                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                                #$result["error"],錯誤訊息.
                                #$result["function"],當前執行的函數名稱.
                                #$result["content"],語法.
                                #必填參數:
                                #無.
                                #可省略參數:
                                #無.
                                #參考資料:
                                #無.
                                #備註:
                                #無.
                                $uuidClassName=css::uuidClassName();
                                
                                #如果執行失敗
                                if($uuidClassName["status"]==="false"){
                                        
                                        #設置執行失敗識別
                                        $result["status"]="false";

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

                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                        
                                #設置要用的不會重複 class 名稱
                                $classNameForText_multi_line="text_multi_line_".$uuidClassName["content"];      
                                
                                #函式說明:
                                #創建針對html標籤的立即css樣式或限定套用類型的css樣式.
                                #回傳結果:
                                #$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.
                                #$result["error"],涵式錯誤訊息陣列
                                #$result["content"],css語法
                                #$result["function"],當前執行的函式名稱.
                                #$result["argu"],所使用的參數.
                                #必填參數:
                                #$conf["htmlTagName"],字串陣列,為多個要套用樣式的html標籤名稱,若有階層請用「>」表示,ex:「a:hover」代表在<a></a>上滑過去時的樣式;若有從上而下的層級關係,則請用「>」表示,ex:「div>span>img」,就是針對有div標籤裡面的span標籤裡面的img標籤內容的樣式;也可以針對使用特定類別的html標籤來套用css樣式,ex:「div.pink」,就是針對套用pink類別的div標籤來套用css樣式;可以指定擁有特定屬性的標籤與class的元素來套用css樣式,ex:「div['data-selected=true'].specifyClassName」。
                                $conf["css::createApplyCssStyle"]["htmlTagName"]=array("input[type='text'].".$classNameForText_multi_line);
                                #$conf["attributes"],字串陣列,為屬性名稱
                                $conf["css::createApplyCssStyle"]["attributes"]=array("font-size","width","border-width","overflow","text-overflow");
                                #$conf["content"],字串陣列,為屬性值
                                $conf["css::createApplyCssStyle"]["content"]=array("30px","100%","0px","hidden","ellipsis");
                                #可省略參數:
                                #無.
                                #參考資料:
                                #無.
                                #備註:
                                #無.
                                $createApplyCssStyle=css::createApplyCssStyle($conf["css::createApplyCssStyle"]);
                                unset($conf["css::createApplyCssStyle"]);
                                
                                #如果執行失敗
                                if($createApplyCssStyle["status"]==="false"){
                                        
                                        #設置執行失敗識別
                                        $result["status"]="false";

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

                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #串接css樣式
                                $result["content"]=$result["content"].$createApplyCssStyle["content"];
                                
                                #針對每行
                                foreach($conf["string"] as $lineNo=>$line){
                                        
                                        #設置用於識別行的變數
                                        $lineId="lineNo_".$lineNo;
                                        
                                        #設置用於設別行div的變數
                                        $lineDivId="div_".$lineId;
                                        
                                        #函式說明:
                                        #可以輸入文字的表單
                                        #回傳結果:
                                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                                        #$result["function"],當前執行的函數.
                                        #$result["error"],錯誤訊息陣列.
                                        #$result["content"],按鈕語法.
                                        #必填參數:
                                        #$conf["name"],字串,爲該文字輸入框的名稱,用於讓接收頁面讀取的名稱。
                                        $conf["form::inputText"]["name"]=$lineId;
                                        #$conf["readOnly"],字串,爲該文字框是否可以填寫資料,若要只能觀看不能填寫,那麼就必須將其值設爲"true",反之要設爲"false".
                                        $conf["form::inputText"]["readOnly"]="true";
                                        #可省略參數:
                                        #$conf["width"]="";#爲文字框的外觀長度,預設為"100%".
                                        #$conf["maxInputLength"]="";#爲可輸入的最大位元長度,預設不限制。
                                        #$conf["autoFocus"]="true";#是否為將填寫的指標移到該表單,"true"代表要,預設為"false".
                                        $conf["form::inputText"]["value"]=$line;#爲該文字框預設要顯示的文字,預設爲""。
                                        $conf["form::inputText"]["class"]=$classNameForText_multi_line;#爲要套用的css樣式,若省略,則會套用預設的 "__qbpwcf_inputTextCssStyle" 樣式,其屬性爲 "width:100%","font-size:30px"
                                        #$conf["form::inputText"]["jsActivitor"]="onfocus";#爲觸發js的條件,可以是"onChange"(已改變內容時)、"onClick"(按下按鈕時)、"onkeyup"(當鍵盤按下放開後)、"onmouseover"(當滑鼠移過去的時候)...,須搭配$conf["jsSubmitActionTarget"]參數。
                                        #$conf["form::inputText"]["jsAction"]="'return false;'";#爲該js是要做什麼,可以是"document.testForm.submit()"(傳送名爲testForm的表單內容)...,須搭配$conf["jsActivitor"]參數。
                                        #$conf["trStart"]="true";#爲是否要以<tr>開頭,"true"表示"是"。也可以看作新的一列開始,預設為"false".
                                        #$conf["tdStart"]="true";#爲是否要以<td>開頭,"true"表示"是"。也可以看成列裏面的元素開始,預設為"false".
                                        #$conf["formStart"]="true";#爲是否要以<form>開頭,"true"表示"是",也可以看成表單的開始,預設為"false".
                                        #$conf["formAction"]="";#表單遞交的目的地,若$conf["formStart"]為"true",則該參數不能省略.
                                        #$conf["formName"]="";#爲該表單的名稱
                                        #$conf["formMethod"]="";#爲傳輸的方法,若沒設定則預設爲post,其他可用的參數爲get。
                                        #$conf["formTarget"]="";#為顯示的方式,若沒設定則預設爲"_self",其他可用的參數爲 "_blank"、"_parent"、"_top",也可以是iframe的名稱。
                                        #$conf["tableStart"]="true";#爲該表單是否要以<table>開始。"true"爲是,預設為"false".
                                        #$conf["tableClass"]="";#表格要套用的css樣式,若爲"__withoutBorder"的話則套用無框線的預設樣式;若爲"__withBorder"的話,則爲有框線的預設樣式,預設為"__withoutBorder".
                                        #$conf["formEnd"]="true";#爲是否要以<form>結尾,"true"表示"是",也可以看成表單的結束,預設為"false".
                                        #$conf["tdEnd"]="true";#爲是否要以</td>結尾,"true"表示"是"。也可以看成列裏面的元素結束,預設為"false".
                                        #$conf["trEnd"]="true";#爲是否要以</tr>結尾,"true"表示"是"。也可以看作該列結束,預設為"false".
                                        #$conf["tableEnd"]="true";#爲該表單是否要以</table>結尾,"true"爲是,預設為"false".
                                        #$conf["autocomplete"],字串,是否依據使用者過往輸入的記錄來提示可能要的輸入內容,"on"為啟用,"off"為停用,預設為"on".
                                        #$conf["autocomplete"]="off";
                                        #$conf["required"],字串,該欄位是否必填,"true"為必填,"false"為可留空,預設為"false".
                                        #$conf["required"]="true";
                                        #$conf["comment"],字串,輸入方框上面要放哪些註解文字,亦即用label來呈現,同時指定"for"屬性的數值為當前"input"標籤的id,意即參數"name"的內容.
                                        #$conf["comment"]="";
                                        #$conf["placeholder"],字串,當沒有內容時要顯示的內容.
                                        #$conf["placeholder"]="";
                                        #$conf["br"],字串,"true"代表最後要換行,預設為"false".
                                        #$conf["br"]="true";
                                        #$conf["p"],字串,"true"代表最後要空一行,預設為"false".
                                        #$conf["p"]="true";
                                        #$conf["id"],字串,該元素的id,預設不使用.
                                        $conf["form::inputText"]["id"]=$lineId;
                                        #$conf["dataFormId"],字串,提供用於識別哪一張表單的data屬性名稱.
                                        #$conf["dataFormId"]="";
                                        #參考資料:
                                        #input=>http://www.w3schools.com/tags/tag_input.asp
                                        #備註:
                                        #無.
                                        $inputText=form::inputText($conf["form::inputText"]);
                                        unset($conf["form::inputText"]);

                                        #如果執行失敗
                                        if($inputText["status"]==="false"){
                                                
                                                #設置執行失敗識別
                                                $result["status"]="false";

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

                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #函式說明:
                                        #<div>區塊,裡面可以指定css的class樣式,可以指定提示文字.
                                        #$result["status"],字串,執行否正常,"true"代表正常,"false"代表不正常.
                                        #$result["functin"],字串,當前函數的名稱.
                                        #$result["error"],陣列,錯訊訊息.
                                        #$result["content"],字串,含有<div>標籤的內容.
                                        #必填參數:
                                        #$conf["contentArray"],字串陣列,要放入的內容陣列.
                                        $conf["css::divSection"]["contentArray"]=array($inputText["content"]);
                                        #可省略參數
                                        #$conf["id"],字串,div區塊的id.
                                        $conf["css::divSection"]["id"]=$lineDivId;
                                        #$conf["styleAttr"],字串陣列,給div區段要套用的style樣式屬性.
                                        #$conf["styleAttr"]=array();
                                        #$conf["styleVal"],字串陣列,給div區段要套用的style樣式數值.
                                        #$conf["styleVal"]=array();
                                        #$conf["class"],字串,div區段要套用的css樣式.
                                        $conf["css::divSection"]["class"]=$classNameForText_multi_line;
                                        #$conf["title"],陣列,滑鼠移到上面時要顯示的內容,每個元素代表一列內容.
                                        #$conf["title"]=array();
                                        #$conf["oneScreenSize"],字串,div區塊是否要占一個螢幕的大小,預設為"false"不設定,"true"為設定成一個螢幕的大小.
                                        #$conf["oneScreenSize"]="false";
                                        #$conf["textAlignCenter"],字串,div區塊是否要置中,預設為$conf["oneScreenSize"]的值,"false"為不置中,"true"代表要置中.
                                        #$conf["textAlignCenter"]="";
                                        #$conf["data"],字串陣列,每個要設置的屬性data內容,例如array("option1"=>"A","option2"=>"B"),預設不使用.
                                        #$conf["data"]=array();
                                        #參考資料:
                                        #無.
                                        #備註:
                                        #無.
                                        $divSection=css::divSection($conf["css::divSection"]);
                                        unset($conf["css::divSection"]);
                                        
                                        #如果執行失敗
                                        if($divSection["status"]==="false"){
                                                
                                                #設置執行失敗識別
                                                $result["status"]="false";

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

                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #串接要印出的內容
                                        $result["content"]=$result["content"].$divSection["content"];
                                        
                                        }#foreach end
                                
                                #跳出 switch
                                break;
                        
                        #其他類型
                        default:
                        
                                #設置類型未 EOL
                                $conf["type"]="EOL";
                                
                                #從頭執行 switch
                                #continue;
                                break;
                        
                        }#switch end
                                        
                #設置執行成功的識別
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function multiLine end
                
        /*
        #函式說明:
        #echo函式的加強版,變數存在才會印出來.
        #回傳內容:
        #無.
        #必填參數:
        #$conf["var"],變數位址.
        $conf["var"]=&;
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function vecho(&$conf){
        
                #如果變數存在
                if(isset($conf["var"])){
                
                        #印出變數
                        echo $conf["var"];
                
                        }#if end
        
                }#function vecho end

        }#class text end

?>