Blame | Last modification | View Log | RSS feed
<?php#宣告指派命名空間namespace qbpwcf;#匯入外部套件include("../allInOne.php");#測試用的整數陣列$intArray=array(1,2,3,4,5,6,7,8,9,10);#測試用的整數陣列$intArray2=array(2,4,6,8,10,12,14,16,18,20);#測試用的整數陣列$intArray3=array(1,19,6,8,10,1,14,16,7,20);#測試用的整數陣列$intArrayOutlier=array(1,2,3,400,5,6,7,8,9,10);#測試用的整數陣列$intArrayOutlier2=array(1,2,3,4,5,6,7,8,9,10);#測試用的證書陣列$intArrayForAbs=array(10,-20,30,-40,50,-60,70,-80,90,-100);/*#說明正在測試的內容echo"<hr>math::computeSum - testCase 1<br>";#涵式說明:#計算總和,結果會回傳一個數值。#必填的參數:$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列var_dump(math::computeSum($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::computeMean - testCase 1<br>";#涵式說明:#計算平均數,結果會回傳一數值。#必填的參數:$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列var_dump(math::computeMean($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::computeStandardDeviation - testCase 1<br>";#涵式說明:#計算標準差,結果會回傳標準差#必填的參數:$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列var_dump(math::computeStandardDeviation($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::zScoreNormalization - testCase 1<br>";#涵式說明:#將數值透過 z-score normalization(zero-mean normalization) 進行正規化,結果會回傳一個陣列 。#回傳的結果:#$result["newValue"][0]爲第1個數字經過正規化後的結果,$result["newValue"][1]爲第2個數字經過正規化後的結果。#$result["oldValue"][0]爲第1個數字的原始內容,$result["oldValue"][1]爲第2個數字的原始內容。#必填的參數:$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列。var_dump(math::zScoreNormalization($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::computeCorrelationCoefficientForNumbericData - testCase 1<br>";#涵式說明:#求算相關係數(皮爾森係數),結果會回傳1數值。#回傳結果:#$result["status"],執行是否成功的識別,"true"代表執行正常,"false"代表執行不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["content"],相關係數(皮爾森係數).#必填的參數:$conf["rawDataArrayA"]=$intArray;#爲第1組數據,元素數量須與$rawDataArray["B"]一樣。$conf["rawDataArrayB"]=$intArray2;#爲第2組數據,元素數量須與$rawDataArray["A"]一樣。var_dump(math::computeCorrelationCoefficientForNumbericData($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getMaxValue - testCase 1<br>";#涵式說明:#找最大值,結果會回傳最大值#回傳的結果#$result["key"],最大值原先的key.#$result["value"],最大值的數字#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據var_dump(math::getMaxValue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getMinValue - testCase 1<br>";#涵式說明#找最小值,結果會回傳最小值#回傳的內容#陣列裏面最小的數值#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據var_dump(math::getMinValue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::computeCovarianceOfNumericData - testCase 1<br>";#涵式說明:#計算兩組數字數據的共變異數,結果會回傳一個#必填的參數:$conf["rawDataArrayA"]=$intArray;#爲第1組數據$conf["rawDataArrayB"]=$intArray3;#爲第2組數據var_dump(math::computeCovarianceOfNumericData($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::arrangeNum - testCase 1<br>";#涵式說明:#排列一組數字#回傳的結果:#經過排序後依照遞增或遞減順序排列的數字陣列#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["key"][$i],過排序後依照遞增或遞減順序排列的數字陣列的第$i-1個元素的key#$result["value"][$i],過排序後依照遞增或遞減順序排列的數字陣列的第$i-1個元素的value#$resutt["content"],過排序後依照遞增或遞減順序排列的數字陣列.#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#要排序的數字陣列#可省略的參數:#$conf["asc"]="true";#如果爲"true"則排序順變爲從小到大,若為"false"則為從大到小,預設為"false".var_dump(math::arrangeNum($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getMedianNum - testCase 1<br>";#涵式說明:#計算一組數據的中間數值#回傳的結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["content"],最一組數據的中間數值.#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#要進行計算的數據陣列var_dump(math::getMedianNum($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getQuartile - testCase 1<br>";#涵式說明:#取得Q1、Q2、Q3(四分位數)#回傳的結果:#$result["Q1"],Q1值#$result["Q2"],Q2值#$result["Q3"],Q3值#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#要求算四分位的數據#參考資料:#https://zh.wikipedia.org/zh-tw/%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0var_dump(math::getQuartile($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::findOutlier - testCase 1<br>";#涵式說明:#此函式還在debug中....#判斷在常態分佈的條件下針對單一變量會有那些 outlier(異常值),結果會回傳一個陣列。#回傳的結果:#一個含有離羣值的陣列,若爲false則爲沒有異常數值。#必填的參數:$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據的陣列#參考資料來源:#http://zhidao.baidu.com/question/252394894.htmlvar_dump(math::findOutlier($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::findOutlier - testCase 2<br>";#涵式說明:#此函式還在debug中....#判斷在常態分佈的條件下針對單一變量會有那些 outlier(異常值),結果會回傳一個陣列。#回傳的結果:#一個含有離羣值的陣列,若爲false則爲沒有異常數值。#必填的參數:$conf["rawDataArray"]=$intArrayOutlier2;#爲原始數據的陣列#參考資料來源:#http://zhidao.baidu.com/question/252394894.htmlvar_dump(math::findOutlier($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getMaxAbsoluteValue - testCase 1<br>";#涵式說明#找絕對值後的最大值,結果會回傳最大值#回傳的結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["key"],絕對值後的最大值原先的key.#$result["value"],絕對值前的最大值數字.#$result["absValue"],絕對值後的最大值數字.#必填的參數:$conf["rawDataArray"]=$intArrayForAbs;#爲原始數據var_dump(math::getMaxAbsoluteValue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::getMinAbsoluteValue - testCase 1<br>";#涵式說明:#找絕對值後的最小值#回傳的結果:#$result["status"],執行是否正常,"true"為正常,"false"為不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["key"],絕對值後的最小值原先的key.#$result["value"],絕對值前的最小值數字.#$result["absValue"],絕對值後的最小值數字.#必填的參數:$conf["rawDataArray"]=$intArrayForAbs;#爲原始數據var_dump(math::getMinAbsoluteValue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::minMaxNormalization - testCase 1<br>";#涵式說明:#使用 min-max normalization 來正規化一組數據,結果會回傳一組正規化後的數據,$newDataArray[$i]爲該筆資料的第i筆經過正規化後的數值。#回傳的結果:#$result["original"] 爲回傳後的原始數據陣列,$result爲回傳後給與的變數名稱,可自行改變。#$result["normalizationed"] 爲正規化後的陣列數據#必填的參數:$conf["rawDataArray"]=$intArray2;#爲傳入的原始數據參數var_dump(math::minMaxNormalization($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::findJvalue - testCase 1<br>";#涵式說明:#求算該值需要10的幾次方去除才會最接近1,但小於1。#回傳的內容:#Jvalue,n值需要10的幾次方去除才會最接近1,但小於1。#必填的參數:$conf["num"]="10";#爲輸入的數值var_dump(math::findJvalue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::computeDecimalScaling - testCase 1<br>";#涵式說明:#透過 Decimal scaling 來縮放原始數據#回傳的結果:#經過Decimal scaling縮放後的數據陣列#必填的參數:$conf["rawDataArray"]=$intArray2;#爲傳入的原始數據參數var_dump(math::computeDecimalScaling($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::add2Var<br>";#該程序會跑很久...所以先註解掉#涵式說明:#讀取csv檔案的內容#回傳得結果:#$csvFileContent["line"]["第幾行"]["第幾個欄位"]#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]#必填的參數:#$conf["csvFilePositionAndName"]="smallSample.csv";#csv檔案的位置$conf["csvFilePositionAndName"]="已踢除特定欄位含有0的樣本.csv";#csv檔案的位置$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)#參考資料來源:#http://www.php.net/manual/en/function.str-split.php#參考資料來源#http://chuangmaster.pixnet.net/blog/post/33560606-%5B%E8%BD%89%E8%B2%BC%5D%E9%97%9C%E6%96%BC%E5%9B%9E%E8%BB%8A(%5Cr)%E8%88%87%E6%8F%9B%E8%A1%8C(%5Cn)$csvFileContent=csv::loadCsvFile($conf);unset($conf);#如果讀取csv檔案失敗if($csvFileContent["status"]=="false"){#印出訊息var_dump($csvFileContent);#結束執行exit;}#if end#涵式說明:#從原始的陣列中將一個變數分成兩個變數,並且新增在原始的陣列中#回傳的結果:#經過增加兩個欄位(統計學上的變數)後的陣列變數#$result[n1][n2],爲第n1行的n2欄位數值內容#必填的參數:$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數#$conf["addFromVar"]=array("\"A0\"","\"A1\"","\"A3\"","\"A5\"","\"C1\"","\"B1\"","\"B3\"","\"B5\"","\"B6\"","\"B7\"","\"B9\"","\"B11\"","\"B12\"","\"B13\"","\"A7\"","\"A9\"","\"A11\"");#要從哪些元素來產生要新的變數內容$conf["addFromVar"]=array("A0","A1","A3","A5","C1","B1","B3","B5","B6","B7","B9","B11","B12","B13","A7","A9","A11");#要從哪些元素來產生要新的變數內容$conf["newVarName"]="停留的地點名稱";#要新增的變數(欄位)名稱#$conf["newVarValue"]=array("\"A0展廳\"","\"A1展廳\"","\"A3展廳\"","\"A5展廳\"","\"C1展廳\"","\"B1展廳\"","\"B3展廳\"","\"B5展廳\"","\"B6展廳\"","\"B7展廳\"","\"B9展廳\"","\"B11展廳\"","\"B12展廳\"","\"B13展廳\"","\"A7展廳\"","\"A9展廳\"","\"A11展廳\"");#要增加變數的數值內容陣列,須與$conf["addFromVar"]的元素數量相同。$conf["newVarValue"]=array("A0展廳","A1展廳","A3展廳","A5展廳","C1展廳","B1展廳","B3展廳","B5展廳","B6展廳","B7展廳","B9展廳","B11展廳","B12展廳","B13展廳","A7展廳","A9展廳","A11展廳");#要增加變數的數值內容陣列,須與$conf["addFromVar"]的元素數量相同。$conf["sameValueColumnName"]="停留的時間";#要新增的變數(欄位)名稱#可省略的參數:$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)$addedCsvFile=analyse::add2Var($conf);unset($conf);#如果將一個變數分成兩個變數失敗if($addedCsvFile["status"]=="false"){#印出訊息var_dump($addedCsvFile);#結束執行exit;}#if end#涵式說明:#快速建立一個csv檔案,並且要求使用者下載。#回傳的結果:#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置#必填的參數:$conf["dataArray"]=$addedCsvFile;#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["csvFilePathAndName"]="csvT/98問卷與定位資料整合擴充版(已踢除展廳停留時間爲0者)";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置$create=csv::create($conf);unset($conf);#如果建立csv檔案失敗if($create["status"]=="false"){#印出訊息var_dump($create);#結束程式exit;}#if end#debugvar_dump($create);*//*#說明正在測試的內容echo"<hr>math::eraseContainZeroData - testCase 1<br>";#涵式說明:#讀取csv檔案的內容#回傳得結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["csvFileContent"],csv檔案內容的陣列.#$result["csvFileContent"]["$i"]["$j"]代表第$i+1列第$j+1欄位的內容.#如果 $conf["firstLineVarName"]爲"true"的話則會多回傳 $result["csvFileContent"]["第幾列"]["第一列各個欄位的名稱"]#$result["lineArray"],csv檔案逐列內容的陣列.#$result["lineArrayCount"],總共幾列資料.#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]#必填的參數:$conf["csvFilePositionAndName"]="mathT/欄位含有0的簡單樣本.csv";#csv檔案的位置$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)#參考資料來源:#http://www.php.net/manual/en/function.str-split.php#參考資料來源#http://chuangmaster.pixnet.net/blog/post/33560606-%5B%E8%BD%89%E8%B2%BC%5D%E9%97%9C%E6%96%BC%E5%9B%9E%E8%BB%8A(%5Cr)%E8%88%87%E6%8F%9B%E8%A1%8C(%5Cn)$csvFileContent=csv::loadCsvFile($conf);unset($conf);#如果取得csv檔案的內容失敗if($csvFileContent["status"]=="false"){#印出相關資訊var_dump($csvFileContent);#停止程式exit;}#if end#涵式說明:#將用於統計分析的原始陣列裏面,每筆資料的特定欄位爲0的時候,將該筆樣本踢除#回傳的結果:#$result[lineNumber]["columnName"],lineNumber爲第幾行;columnName爲欄位的名稱,若沒有標題列將會以數字的0、1、2、3~n去排列#必填的參數:$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數#$conf["checkedColumn"]=array("\"A0\"","\"A1\"","\"A3\"","\"A5\"","\"C1\"","\"B1\"","\"B3\"","\"B5\"","\"B6\"","\"B7\"","\"B9\"","\"B11\"","\"B12\"","\"B13\"","\"A7\"","\"A9\"","\"A11\"");#要檢測是否含有0的欄位名稱;亦即 $conf["varArray"]["columnName"] 的 columnName 爲何。如果原始陣列沒有特別指定,則會以數字的0、1、2、3~n去排列$conf["checkedColumn"]=array("A1","A2","A3");#要檢測是否含有0的欄位名稱;亦即 $conf["varArray"]["columnName"] 的 columnName 爲何。如果原始陣列沒有特別指定,則會以數字的0、1、2、3~n去排列#可省略的參數:$cleanedData=math::eraseContainZeroData($conf);unset($conf);#如果清理失敗if($cleanedData["status"]=="false"){#印出相關資訊var_dump($cleanedData);#停止程式exit;}#if end#涵式說明:#快速建立一個csv檔案,並且要求使用者下載。#回傳的結果:#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置#必填的參數:$conf["dataArray"]=$cleanedData["content"];#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["csvFilePathAndName"]="mathT/已踢除特定欄位含有0的簡單樣本";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置$create=csv::create($conf);unset($conf);#如果建立csv檔失敗if($create["status"]=="false"){#印出相關資訊var_dump($create);#停止程式exit;}#if end#涵式說明:#放置超鏈結#回傳的結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息#$result["content"],語法#$result["function"],當前執行的函數名稱#必填的參數:#$conf["position"],字串,爲要連結到的位置,若留空,將回自動變成"#",則可以搭配ajax傳值.$conf["position"]=$create["content"];#$conf["linkName",字串,爲連結的顯示名稱$conf["linkName"]="輸出的csv檔案";#可省略的參數:#$conf["method"],字串,爲點選連結後,新畫面要如何呈現,可省略預設爲"_self",可用的選項有 _top(覆蓋目前的視窗來顯現新內容) _parent _self _blank(跳新視窗)$conf["method"]="_blank";#$conf["class"],字串,爲要套用的css超連節樣式,可省略.#$conf["class"]="";#$conf["id"],字串,超連結的id.#$conf["id"]="";#$conf["no_outline"],字串,是否要取消連結的框線,"false為不取消,"true"代表要取消,預設為"false".#$conf["no_outline"]="";$show_link=link::show_link($conf);unset($conf);#如果建立超聯結失敗if($show_link["status"]=="false"){#印出訊息var_dump($show_link);#終止程式exit;}#if end#印出超聯結echo $show_link["content"];*//*#說明正在測試的內容echo"<hr>math::eraseContainZeroData - testCase 2<br>";#涵式說明:#讀取csv檔案的內容#回傳得結果:#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["csvFileContent"],csv檔案內容的陣列.#$result["csvFileContent"]["$i"]["$j"]代表第$i+1列第$j+1欄位的內容.#如果 $conf["firstLineVarName"]爲"true"的話則會多回傳 $result["csvFileContent"]["第幾列"]["第一列各個欄位的名稱"]#$result["lineArray"],csv檔案逐列內容的陣列.#$result["lineArrayCount"],總共幾列資料.#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]#必填的參數:$conf["csvFilePositionAndName"]="mathT/98問卷填寫與定位資訊(需要將展廳停留時間爲0的樣本踢除)-小樣本版.csv";#csv檔案的位置$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)#參考資料來源:#http://www.php.net/manual/en/function.str-split.php#參考資料來源#http://chuangmaster.pixnet.net/blog/post/33560606-%5B%E8%BD%89%E8%B2%BC%5D%E9%97%9C%E6%96%BC%E5%9B%9E%E8%BB%8A(%5Cr)%E8%88%87%E6%8F%9B%E8%A1%8C(%5Cn)$csvFileContent=csv::loadCsvFile($conf);unset($conf);#如果取得csv檔案的內容失敗if($csvFileContent["status"]=="false"){#印出相關資訊var_dump($csvFileContent);#停止程式exit;}#if end#涵式說明:#將用於統計分析的原始陣列裏面,每筆資料的特定欄位爲0的時候,將該筆樣本踢除#回傳的結果:#$result[lineNumber]["columnName"],lineNumber爲第幾行;columnName爲欄位的名稱,若沒有標題列將會以數字的0、1、2、3~n去排列#必填的參數:$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數$conf["checkedColumn"]=array("A0","A1","A3","A5","C1","B1","B3","B5","B6","B7","B9","B11","B12","B13","A7","A9","A11");#要檢測是否含有0的欄位名稱;亦即 $conf["varArray"]["columnName"] 的 columnName 爲何。如果原始陣列沒有特別指定,則會以數字的0、1、2、3~n去排列#可省略的參數:$cleanedData=math::eraseContainZeroData($conf);unset($conf);#如果清理失敗if($cleanedData["status"]=="false"){#印出相關資訊var_dump($cleanedData);#停止程式exit;}#if end#涵式說明:#快速建立一個csv檔案,並且要求使用者下載。#回傳的結果:#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置#必填的參數:$conf["dataArray"]=$cleanedData["content"];#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。$conf["fileArgu"]=__FILE__;#可省略的參數:$conf["csvFilePathAndName"]="mathT/已踢除特定欄位含有0的樣本";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置$create=csv::create($conf);unset($conf);#如果建立csv檔失敗if($create["status"]=="false"){#印出相關資訊var_dump($create);#停止程式exit;}#if end#涵式說明:#放置超鏈結#回傳的結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息#$result["content"],語法#$result["function"],當前執行的函數名稱#必填的參數:#$conf["position"],字串,爲要連結到的位置,若留空,將回自動變成"#",則可以搭配ajax傳值.$conf["position"]=$create["content"];#$conf["linkName",字串,爲連結的顯示名稱$conf["linkName"]="輸出的csv檔案";#可省略的參數:#$conf["method"],字串,爲點選連結後,新畫面要如何呈現,可省略預設爲"_self",可用的選項有 _top(覆蓋目前的視窗來顯現新內容) _parent _self _blank(跳新視窗)$conf["method"]="_blank";#$conf["class"],字串,爲要套用的css超連節樣式,可省略.#$conf["class"]="";#$conf["id"],字串,超連結的id.#$conf["id"]="";#$conf["no_outline"],字串,是否要取消連結的框線,"false為不取消,"true"代表要取消,預設為"false".#$conf["no_outline"]="";$show_link=link::show_link($conf);unset($conf);#如果建立超聯結失敗if($show_link["status"]=="false"){#印出訊息var_dump($show_link);#終止程式exit;}#if end#印出超聯結echo $show_link["content"];*//*#說明正在測試的內容echo"<hr>math::changeToIntValue - testCase 1<br>";#函式說明:#將陣列裡面小於等於自己的正整數或大於等於自己的負整數#回傳的結果:#$result["status"],執行是否成功的識別,"true"代表執行正常,"false"代表執行不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["content"],處理好的整數陣列.#必填的參數:#$conf["inputArray"],字串陣列,要取整數的數字陣列.$conf["inputArray"]=array("-0.003","3.3","9.7","-10.5","0.23");#可省略的參數:#無#餐考資料來源:#http://tw2.php.net/manual/en/function.round.phpvar_dump(math::changeToIntValue($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::randomFromArray - testCase 1<br>";#測試用於產出亂數的陣列$randomArray=array("0","1","2","3","4","5","6","7","8","9");#函式說明:#亂數產生特定陣列裡面的內容#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["content"]["name"],產生的元素在$conf["randomArray"]裡面的key是?#$result["content"]["value"],產生的元素內容.#必填參數:#$conf["randomArray"],字串陣列,要隨機產生的元素.$conf["randomArray"]=$randomArray;#可省略參數:#無var_dump(math::randomFromArray($conf));unset($conf);*//*#說明正在測試的內容echo"<hr>math::key2value - testCase 1<br>";#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeF[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.#$conf["rangeT"]=array();#備註:#建構中.$key2value=math::key2value($conf);unset($conf);#如果執行失敗if($key2value["status"]==="false"){#印出結果var_dump($key2value);#結束執行exit;}#if end#印出結果var_dump($key2value);*//*#說明正在測試的內容echo"<hr>math::key2value - testCase 2<br>";#跑 101 次for($i=0;$i<=100;$i++){#設置左手範圍$rangeF[]=$i;}#for end#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeT[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.$conf["rangeT"]=$rangeT;#備註:#建構中.$key2value=math::key2value($conf);unset($conf);#如果執行失敗if($key2value["status"]==="false"){#印出結果var_dump($key2value);#結束執行exit;}#if end#印出結果var_dump($key2value);*//*#說明正在測試的內容echo"<hr>math::key2value - testCase 3<br>";#跑 255 次for($i=0;$i<=254;$i++){#設置左手範圍$rangeF[]=$i;}#for end#跑100次for($i=1;$i<=100;$i++){#設置左手範圍$rangeT[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.$conf["rangeT"]=$rangeT;#備註:#建構中.$key2value=math::key2value($conf);unset($conf);#如果執行失敗if($key2value["status"]==="false"){#印出結果var_dump($key2value);#結束執行exit;}#if end#印出結果var_dump($key2value);*//*#說明正在測試的內容echo"<hr>math::value2key - testCase 1<br>";#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeF[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.#$conf["rangeT"]=array();#備註:#建構中.$key2value=math::key2value($conf);unset($conf);#如果執行失敗if($key2value["status"]==="false"){#印出結果var_dump($key2value);#結束執行exit;}#if end#函式說明:#數值對應的key#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["value"],浮點數,要尋找對應的數值.$conf["value"]=(double)(57);#$conf["reference"],整數陣列,透過math::key2value產生的對照表.$conf["reference"]=$key2value["content"];#可省略參數:#無$value2key=math::value2key($conf);unset($conf);#如果執行失敗if($value2key["status"]==="false"){#印出結果var_dump($value2key);#結束執行exit;}#if end#印出結果var_dump($value2key);*//*#說明正在測試的內容echo"<hr>math::value2key - testCase 2<br>";#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeF[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.#$conf["rangeT"]=array();#備註:#建構中.$key2value=math::key2value($conf);unset($conf);#如果執行失敗if($key2value["status"]==="false"){#印出結果var_dump($key2value);#結束執行exit;}#if end#針對每個可能的數值for($i=0;$i<=100;$i++){#函式說明:#數值對應的key#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["value"],浮點數,要尋找對應的數值.$conf["value"]=(double)($i);#$conf["reference"],整數陣列,透過math::key2value產生的對照表.$conf["reference"]=$key2value["content"];#可省略參數:#無$value2key=math::value2key($conf);unset($conf);#如果執行失敗if($value2key["status"]==="false"){#印出結果var_dump($value2key);#結束執行exit;}#if end#印出結果echo $i."<=>".$value2key["content"]."<br>";}#for enb*//*#說明正在測試的內容echo"<hr>math::value2key - testCase 3<br>";#跑 101 次for($i=0;$i<=100;$i++){#設置左手範圍$rangeF[]=$i;}#for end#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeT[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.$conf["rangeT"]=$rangeT;#備註:#建構中.$f100t255=math::key2value($conf);unset($conf);#如果執行失敗if($f100t255["status"]==="false"){#印出結果var_dump($f100t255);#結束執行exit;}#if end#0~100對應0~255的表$f100t255=$f100t255["content"];#初始化$rangeF=array();#跑 256 次for($i=0;$i<=255;$i++){#設置左手範圍$rangeF[]=$i;}#for end#函式說明:#左方數值範圍要對應的右方數值範圍#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["rangeF"],整數陣列,要產生對應表的左手方$conf["rangeF"]=$rangeF;#可省略參數:#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.#$conf["rangeT"]=array();#備註:#建構中.$f255t100=math::key2value($conf);unset($conf);#如果執行失敗if($f255t100["status"]==="false"){#印出結果var_dump($f255t100);#結束執行exit;}#if end#0~255對應0~100的表$f255t100=$f255t100["content"];#跑100次,修正轉換誤差.for($i=0;$i<=100;$i++){#函式說明:#數值對應的key#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["value"],浮點數,要尋找對應的數值.$conf["value"]=(double)($i);#$conf["reference"],整數陣列,透過math::key2value產生的對照表.$conf["reference"]=$f255t100;#可省略參數:#無$value2key=math::value2key($conf);unset($conf);#如果執行失敗if($value2key["status"]==="false"){#印出結果var_dump($value2key);#結束執行exit;}#if end#fix 轉換誤差$f100t255[$i]=$value2key["content"];}#for end#fix 轉換誤差#$f100t255[70]=178;#var_dump($f100t255);#var_dump($f255t100);#exit;#設定 70%,對應0~256的哪邊#函式說明:#數值對應的key#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["value"],浮點數,要尋找對應的數值.$conf["value"]=(double)(70);#$conf["reference"],整數陣列,透過math::key2value產生的對照表.$conf["reference"]=$f255t100;#可省略參數:#無$value2key=math::value2key($conf);unset($conf);#如果執行失敗if($value2key["status"]==="false"){#印出結果var_dump($value2key);#結束執行exit;}#if end#儲存結果$num255=$value2key["content"];#提示轉換的結果echo "70%=>".$num255."<br>";#設定 $value2key["content"],對應0~100的哪邊#函式說明:#數值對應的key#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#必填參數:#$conf["value"],浮點數,要尋找對應的數值.$conf["value"]=(double)($num255);#$conf["reference"],整數陣列,透過math::key2value產生的對照表.$conf["reference"]=$f100t255;#可省略參數:#無$value2key=math::value2key($conf);unset($conf);#如果執行失敗if($value2key["status"]==="false"){#印出結果var_dump($value2key);#結束執行exit;}#if end#儲存結果$num100=$value2key["content"];#提示轉換的結果echo "$num255=>".$num100."%<br>";*//*#說明正在測試的內容echo"<hr>math::fixedKeyToValueReversed - testCase 1<br>";#函式說明:#建立一對一的數值對照表,左右都對應到整數值.#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#$result["content"],由左至右的數值對應表#必填參數#$conf["rangeF"],整數陣列,要產生對應表的左手方範圍,$conf["rangeF"]["s"]為左手邊的起始範圍,$conf["rangeF"]["e"]為左手邊的結束範圍.$conf["rangeF"]=array("s"=>0,"e"=>100);#$conf["rangeT"],整數陣列,要產生對應表的右手方範圍,$conf["rangeT"]["s"]為右手邊的起始範圍,$conf["rangeT"]["e"]為右手邊的結束範圍.$conf["rangeT"]=array('s'=>0,"e"=>255);#可省略參數:#無.$fixedKeyToValueReversed=math::fixedKeyToValueReversed($conf);unset($conf);#如果建立失敗if($fixedKeyToValueReversed["status"]==="false"){#印出結果var_dump($fixedKeyToValueReversed);#結束執行exit;}#if end#印出對照表var_dump($fixedKeyToValueReversed["content"]);*//*#說明正在測試的內容echo"<hr>math::fixedKeyToValueReversed - testCase 2<br>";#函式說明:#建立一對一的數值對照表,左右都對應到整數值.#回傳的結果:#$result["status"],執行正常與否,"true"為正常,"false"為不正常.#$result["function"],當前執行的函數名稱.#$result["error"],錯誤訊息陣列.#$result["argu"],使用的參數.#$result["content"],由左至右的數值對應表#必填參數#$conf["rangeF"],整數陣列,要產生對應表的左手方範圍,$conf["rangeF"]["s"]為左手邊的起始範圍,$conf["rangeF"]["e"]為左手邊的結束範圍.$conf["rangeF"]=array("s"=>129,"e"=>191);#$conf["rangeT"],整數陣列,要產生對應表的右手方範圍,$conf["rangeT"]["s"]為右手邊的起始範圍,$conf["rangeT"]["e"]為右手邊的結束範圍.$conf["rangeT"]=array('s'=>1,"e"=>63);#可省略參數:#無.$fixedKeyToValueReversed=math::fixedKeyToValueReversed($conf);unset($conf);#如果建立失敗if($fixedKeyToValueReversed["status"]==="false"){#印出結果var_dump($fixedKeyToValueReversed);#結束執行exit;}#if end#印出對照表var_dump($fixedKeyToValueReversed["content"]);*//*#說明正在測試的內容echo"<hr>math::getExp - testCase 1<br>";#函式說明:get Euler's number#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#無#可省略參數:#$conf["pow"],整數字串,次方,預設為1,代表e的1次方.#$conf["pow"]="1";#參考資料:#https://www.runoob.com/php/func-math-exp.html#https://en.wikipedia.org/wiki/E_(mathematical_constant)$conf=array();$getExp=math::getExp($conf);unset($conf);#印出結果var_dump($getExp);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 1<br>";#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="0EC9292348234E74";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 2<br>";#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="5EC92923C8234E74";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 3<br>";#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="24.8064291,121.0273396";#可省略參數:#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.$conf["reverse"]="true";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 4<br>";#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="-69.0241571,-155.7757044";#可省略參數:#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.$conf["reverse"]="true";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 5<br>";#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="52488046B9B2F8E8";#可省略參數:#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.#$conf["reverse"]="true";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*//*#說明正在測試的內容echo"<hr>math::raw2gps - testCase 6<br>";google map 地圖 urlhttps://www.google.com.tw/maps/@41.2435841,123.1843184,17z?hl=zh-TW#函式說明:#將16進位的16位數,轉換為小數點後到7位的gp表示方法.#回傳結果:#$result["status"],執行正常("true")與否("false").#$result["content"],回傳數學常數(e).#$reuslt["argu"],使用的參數.#必填參數:#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.$conf["rawGps"]="41.243584114494,123.18431835648";$conf["rawGps"]="41.2435841,123.1843183";#可省略參數:#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.$conf["reverse"]="true";#可省略參數:#無.$raw2gps=math::raw2gps($conf);unset($conf);#印出結果var_dump($raw2gps);*/?>