Subversion Repositories php-qbpwcf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 liveuser 1
<?php
2
 
3
#宣告指派命名空間
4
namespace qbpwcf;
5
 
6
#匯入外部套件
7
include("../allInOne.php");
8
 
9
#測試用的整數陣列
10
$intArray=array(1,2,3,4,5,6,7,8,9,10);
11
 
12
#測試用的整數陣列
13
$intArray2=array(2,4,6,8,10,12,14,16,18,20);
14
 
15
#測試用的整數陣列
16
$intArray3=array(1,19,6,8,10,1,14,16,7,20);
17
 
18
#測試用的整數陣列
19
$intArrayOutlier=array(1,2,3,400,5,6,7,8,9,10);
20
 
21
#測試用的整數陣列
22
$intArrayOutlier2=array(1,2,3,4,5,6,7,8,9,10);
23
 
24
#測試用的證書陣列
25
$intArrayForAbs=array(10,-20,30,-40,50,-60,70,-80,90,-100);
26
 
27
/*
28
 
29
#說明正在測試的內容
30
echo"<hr>math::computeSum - testCase 1<br>";
31
 
32
#涵式說明:
33
#計算總和,結果會回傳一個數值。
34
#必填的參數:
35
$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列
36
var_dump(math::computeSum($conf));
37
unset($conf);
38
 
39
*/
40
 
41
/*
42
 
43
#說明正在測試的內容
44
echo"<hr>math::computeMean - testCase 1<br>";
45
 
46
#涵式說明:
47
#計算平均數,結果會回傳一數值。
48
#必填的參數:
49
$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列
50
var_dump(math::computeMean($conf));
51
unset($conf);
52
 
53
*/
54
 
55
/*
56
 
57
 
58
#說明正在測試的內容
59
echo"<hr>math::computeStandardDeviation - testCase 1<br>";
60
 
61
#涵式說明:
62
#計算標準差,結果會回傳標準差
63
#必填的參數:
64
$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列
65
var_dump(math::computeStandardDeviation($conf));
66
unset($conf);
67
 
68
*/
69
 
70
/*
71
 
72
#說明正在測試的內容
73
echo"<hr>math::zScoreNormalization - testCase 1<br>";
74
 
75
#涵式說明:
76
#將數值透過 z-score normalization(zero-mean normalization) 進行正規化,結果會回傳一個陣列 。
77
#回傳的結果:
78
#$result["newValue"][0]爲第1個數字經過正規化後的結果,$result["newValue"][1]爲第2個數字經過正規化後的結果。
79
#$result["oldValue"][0]爲第1個數字的原始內容,$result["oldValue"][1]爲第2個數字的原始內容。
80
#必填的參數:
81
$conf["rawDataArray"]=$intArray;#爲原始資料的一維陣列。
82
var_dump(math::zScoreNormalization($conf));
83
unset($conf);
84
 
85
*/
86
 
87
/*
88
 
89
#說明正在測試的內容
90
echo"<hr>math::computeCorrelationCoefficientForNumbericData - testCase 1<br>";
91
 
92
#涵式說明:
93
#求算相關係數(皮爾森係數),結果會回傳1數值。
94
#回傳結果:
95
#$result["status"],執行是否成功的識別,"true"代表執行正常,"false"代表執行不正常.
96
#$result["error"],錯誤訊息陣列.
97
#$result["function"],當前執行的函數名稱.
98
#$result["content"],相關係數(皮爾森係數).
99
#必填的參數:
100
$conf["rawDataArrayA"]=$intArray;#爲第1組數據,元素數量須與$rawDataArray["B"]一樣。
101
$conf["rawDataArrayB"]=$intArray2;#爲第2組數據,元素數量須與$rawDataArray["A"]一樣。
102
var_dump(math::computeCorrelationCoefficientForNumbericData($conf));
103
unset($conf);
104
 
105
*/
106
 
107
/*
108
 
109
#說明正在測試的內容
110
echo"<hr>math::getMaxValue - testCase 1<br>";
111
 
112
#涵式說明:
113
#找最大值,結果會回傳最大值
114
#回傳的結果
115
#$result["key"],最大值原先的key.
116
#$result["value"],最大值的數字
117
#必填的參數:
118
$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據
119
var_dump(math::getMaxValue($conf));
120
unset($conf);
121
 
122
*/
123
 
124
/*
125
 
126
#說明正在測試的內容
127
echo"<hr>math::getMinValue - testCase 1<br>";
128
 
129
#涵式說明
130
#找最小值,結果會回傳最小值
131
#回傳的內容
132
#陣列裏面最小的數值
133
#必填的參數:
134
$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據
135
var_dump(math::getMinValue($conf));
136
unset($conf);
137
 
138
*/
139
 
140
/*
141
 
142
#說明正在測試的內容
143
echo"<hr>math::computeCovarianceOfNumericData - testCase 1<br>";
144
 
145
#涵式說明:
146
#計算兩組數字數據的共變異數,結果會回傳一個
147
#必填的參數:
148
$conf["rawDataArrayA"]=$intArray;#爲第1組數據
149
$conf["rawDataArrayB"]=$intArray3;#爲第2組數據
150
var_dump(math::computeCovarianceOfNumericData($conf));
151
unset($conf);
152
 
153
*/
154
 
155
/*
156
 
157
#說明正在測試的內容
158
echo"<hr>math::arrangeNum - testCase 1<br>";
159
 
160
#涵式說明:
161
#排列一組數字
162
#回傳的結果:
163
#經過排序後依照遞增或遞減順序排列的數字陣列
164
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
165
#$result["error"],錯誤訊息陣列.
166
#$result["function"],當前執行的函數名稱.
167
#$result["key"][$i],過排序後依照遞增或遞減順序排列的數字陣列的第$i-1個元素的key
168
#$result["value"][$i],過排序後依照遞增或遞減順序排列的數字陣列的第$i-1個元素的value
169
#$resutt["content"],過排序後依照遞增或遞減順序排列的數字陣列.
170
#必填的參數:
171
$conf["rawDataArray"]=$intArrayOutlier;#要排序的數字陣列
172
#可省略的參數:
173
#$conf["asc"]="true";#如果爲"true"則排序順變爲從小到大,若為"false"則為從大到小,預設為"false".
174
var_dump(math::arrangeNum($conf));
175
unset($conf);
176
 
177
*/
178
 
179
/*
180
 
181
#說明正在測試的內容
182
echo"<hr>math::getMedianNum - testCase 1<br>";
183
 
184
#涵式說明:
185
#計算一組數據的中間數值
186
#回傳的結果:
187
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
188
#$result["error"],錯誤訊息陣列.
189
#$result["function"],當前執行的函數名稱.
190
#$result["content"],最一組數據的中間數值.
191
#必填的參數:
192
$conf["rawDataArray"]=$intArrayOutlier;#要進行計算的數據陣列
193
var_dump(math::getMedianNum($conf));
194
unset($conf);
195
 
196
*/
197
 
198
/*
199
 
200
#說明正在測試的內容
201
echo"<hr>math::getQuartile - testCase 1<br>";
202
 
203
#涵式說明:
204
#取得Q1、Q2、Q3(四分位數)
205
#回傳的結果:
206
#$result["Q1"],Q1值
207
#$result["Q2"],Q2值
208
#$result["Q3"],Q3值
209
#必填的參數:
210
$conf["rawDataArray"]=$intArrayOutlier;#要求算四分位的數據
211
#參考資料:
212
#https://zh.wikipedia.org/zh-tw/%E5%9B%9B%E5%88%86%E4%BD%8D%E6%95%B0
213
var_dump(math::getQuartile($conf));
214
unset($conf);
215
 
216
*/
217
 
218
/*
219
 
220
#說明正在測試的內容
221
echo"<hr>math::findOutlier - testCase 1<br>";
222
 
223
#涵式說明:
224
#此函式還在debug中....
225
#判斷在常態分佈的條件下針對單一變量會有那些 outlier(異常值),結果會回傳一個陣列。
226
#回傳的結果:
227
#一個含有離羣值的陣列,若爲false則爲沒有異常數值。
228
#必填的參數:
229
$conf["rawDataArray"]=$intArrayOutlier;#爲原始數據的陣列
230
#參考資料來源:
231
#http://zhidao.baidu.com/question/252394894.html	
232
var_dump(math::findOutlier($conf));
233
unset($conf);
234
 
235
*/
236
 
237
/*
238
 
239
#說明正在測試的內容
240
echo"<hr>math::findOutlier - testCase 2<br>";
241
 
242
#涵式說明:
243
#此函式還在debug中....
244
#判斷在常態分佈的條件下針對單一變量會有那些 outlier(異常值),結果會回傳一個陣列。
245
#回傳的結果:
246
#一個含有離羣值的陣列,若爲false則爲沒有異常數值。
247
#必填的參數:
248
$conf["rawDataArray"]=$intArrayOutlier2;#爲原始數據的陣列
249
#參考資料來源:
250
#http://zhidao.baidu.com/question/252394894.html	
251
var_dump(math::findOutlier($conf));
252
unset($conf);
253
 
254
*/
255
 
256
/*
257
 
258
#說明正在測試的內容
259
echo"<hr>math::getMaxAbsoluteValue - testCase 1<br>";
260
 
261
#涵式說明
262
#找絕對值後的最大值,結果會回傳最大值
263
#回傳的結果:
264
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
265
#$result["error"],錯誤訊息陣列.
266
#$result["function"],當前執行的函數名稱.
267
#$result["key"],絕對值後的最大值原先的key.
268
#$result["value"],絕對值前的最大值數字.
269
#$result["absValue"],絕對值後的最大值數字.
270
#必填的參數:
271
$conf["rawDataArray"]=$intArrayForAbs;#爲原始數據
272
var_dump(math::getMaxAbsoluteValue($conf));
273
unset($conf);
274
 
275
*/
276
 
277
/*
278
 
279
#說明正在測試的內容
280
echo"<hr>math::getMinAbsoluteValue - testCase 1<br>";
281
 
282
#涵式說明:
283
#找絕對值後的最小值
284
#回傳的結果:
285
#$result["status"],執行是否正常,"true"為正常,"false"為不正常.
286
#$result["error"],錯誤訊息陣列.
287
#$result["function"],當前執行的函數名稱.
288
#$result["key"],絕對值後的最小值原先的key.
289
#$result["value"],絕對值前的最小值數字.
290
#$result["absValue"],絕對值後的最小值數字.
291
#必填的參數:
292
$conf["rawDataArray"]=$intArrayForAbs;#爲原始數據
293
var_dump(math::getMinAbsoluteValue($conf));
294
unset($conf);
295
 
296
*/
297
 
298
/*
299
 
300
#說明正在測試的內容
301
echo"<hr>math::minMaxNormalization - testCase 1<br>";
302
 
303
#涵式說明:
304
#使用 min-max normalization 來正規化一組數據,結果會回傳一組正規化後的數據,$newDataArray[$i]爲該筆資料的第i筆經過正規化後的數值。
305
#回傳的結果:
306
#$result["original"] 爲回傳後的原始數據陣列,$result爲回傳後給與的變數名稱,可自行改變。
307
#$result["normalizationed"] 爲正規化後的陣列數據
308
#必填的參數:
309
$conf["rawDataArray"]=$intArray2;#爲傳入的原始數據參數
310
var_dump(math::minMaxNormalization($conf));
311
unset($conf);
312
 
313
*/
314
 
315
/*
316
 
317
#說明正在測試的內容
318
echo"<hr>math::findJvalue - testCase 1<br>";
319
 
320
#涵式說明:
321
#求算該值需要10的幾次方去除才會最接近1,但小於1。
322
#回傳的內容:
323
#Jvalue,n值需要10的幾次方去除才會最接近1,但小於1。
324
#必填的參數:
325
$conf["num"]="10";#爲輸入的數值
326
var_dump(math::findJvalue($conf));
327
unset($conf);
328
 
329
*/
330
 
331
/*
332
 
333
#說明正在測試的內容
334
echo"<hr>math::computeDecimalScaling - testCase 1<br>";
335
 
336
#涵式說明:
337
#透過 Decimal scaling 來縮放原始數據
338
#回傳的結果:
339
#經過Decimal scaling縮放後的數據陣列
340
#必填的參數:
341
$conf["rawDataArray"]=$intArray2;#爲傳入的原始數據參數
342
var_dump(math::computeDecimalScaling($conf));
343
unset($conf);
344
 
345
*/
346
 
347
/*
348
 
349
#說明正在測試的內容
350
echo"<hr>math::add2Var<br>";
351
 
352
#該程序會跑很久...所以先註解掉
353
 
354
#涵式說明:
355
#讀取csv檔案的內容
356
#回傳得結果:
357
#$csvFileContent["line"]["第幾行"]["第幾個欄位"]
358
#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]
359
#必填的參數:
360
#$conf["csvFilePositionAndName"]="smallSample.csv";#csv檔案的位置
361
$conf["csvFilePositionAndName"]="已踢除特定欄位含有0的樣本.csv";#csv檔案的位置	
362
$conf["fileArgu"]=__FILE__;
363
#可省略的參數:
364
$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)
365
#參考資料來源:
366
#http://www.php.net/manual/en/function.str-split.php
367
#參考資料來源
368
#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)
369
$csvFileContent=csv::loadCsvFile($conf);
370
unset($conf);
371
 
372
#如果讀取csv檔案失敗
373
if($csvFileContent["status"]=="false"){
374
 
375
	#印出訊息
376
	var_dump($csvFileContent);
377
 
378
	#結束執行
379
	exit;
380
 
381
	}#if end
382
 
383
#涵式說明:
384
#從原始的陣列中將一個變數分成兩個變數,並且新增在原始的陣列中
385
#回傳的結果:
386
#經過增加兩個欄位(統計學上的變數)後的陣列變數
387
#$result[n1][n2],爲第n1行的n2欄位數值內容
388
#必填的參數:
389
$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數
390
#$conf["addFromVar"]=array("\"A0\"","\"A1\"","\"A3\"","\"A5\"","\"C1\"","\"B1\"","\"B3\"","\"B5\"","\"B6\"","\"B7\"","\"B9\"","\"B11\"","\"B12\"","\"B13\"","\"A7\"","\"A9\"","\"A11\"");#要從哪些元素來產生要新的變數內容		
391
$conf["addFromVar"]=array("A0","A1","A3","A5","C1","B1","B3","B5","B6","B7","B9","B11","B12","B13","A7","A9","A11");#要從哪些元素來產生要新的變數內容
392
$conf["newVarName"]="停留的地點名稱";#要新增的變數(欄位)名稱
393
#$conf["newVarValue"]=array("\"A0展廳\"","\"A1展廳\"","\"A3展廳\"","\"A5展廳\"","\"C1展廳\"","\"B1展廳\"","\"B3展廳\"","\"B5展廳\"","\"B6展廳\"","\"B7展廳\"","\"B9展廳\"","\"B11展廳\"","\"B12展廳\"","\"B13展廳\"","\"A7展廳\"","\"A9展廳\"","\"A11展廳\"");#要增加變數的數值內容陣列,須與$conf["addFromVar"]的元素數量相同。
394
$conf["newVarValue"]=array("A0展廳","A1展廳","A3展廳","A5展廳","C1展廳","B1展廳","B3展廳","B5展廳","B6展廳","B7展廳","B9展廳","B11展廳","B12展廳","B13展廳","A7展廳","A9展廳","A11展廳");#要增加變數的數值內容陣列,須與$conf["addFromVar"]的元素數量相同。
395
$conf["sameValueColumnName"]="停留的時間";#要新增的變數(欄位)名稱
396
#可省略的參數:
397
$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)
398
$addedCsvFile=analyse::add2Var($conf);
399
unset($conf);
400
 
401
#如果將一個變數分成兩個變數失敗
402
if($addedCsvFile["status"]=="false"){
403
 
404
	#印出訊息
405
	var_dump($addedCsvFile);
406
 
407
	#結束執行
408
	exit;
409
 
410
	}#if end
411
 
412
#涵式說明:
413
#快速建立一個csv檔案,並且要求使用者下載。
414
#回傳的結果:
415
#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
416
#必填的參數:
417
$conf["dataArray"]=$addedCsvFile;#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
418
$conf["fileArgu"]=__FILE__;
419
#可省略的參數:
420
$conf["csvFilePathAndName"]="csvT/98問卷與定位資料整合擴充版(已踢除展廳停留時間爲0者)";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置
421
$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
422
$create=csv::create($conf);
423
unset($conf);
424
 
425
#如果建立csv檔案失敗
426
if($create["status"]=="false"){
427
 
428
	#印出訊息
429
	var_dump($create);
430
 
431
	#結束程式
432
	exit;
433
 
434
	}#if end
435
 
436
#debug
437
var_dump($create);
438
 
439
*/
440
 
441
/*
442
 
443
#說明正在測試的內容
444
echo"<hr>math::eraseContainZeroData - testCase 1<br>";
445
 
446
#涵式說明:
447
#讀取csv檔案的內容
448
#回傳得結果:
449
#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.
450
#$result["error"],錯誤訊息陣列.
451
#$result["function"],當前執行的函數名稱.
452
#$result["csvFileContent"],csv檔案內容的陣列.
453
	#$result["csvFileContent"]["$i"]["$j"]代表第$i+1列第$j+1欄位的內容.
454
	#如果 $conf["firstLineVarName"]爲"true"的話則會多回傳 $result["csvFileContent"]["第幾列"]["第一列各個欄位的名稱"]
455
#$result["lineArray"],csv檔案逐列內容的陣列.
456
#$result["lineArrayCount"],總共幾列資料.
457
#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]
458
#必填的參數:
459
$conf["csvFilePositionAndName"]="mathT/欄位含有0的簡單樣本.csv";#csv檔案的位置
460
$conf["fileArgu"]=__FILE__;
461
#可省略的參數:
462
$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)
463
#參考資料來源:
464
#http://www.php.net/manual/en/function.str-split.php
465
#參考資料來源
466
#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)
467
$csvFileContent=csv::loadCsvFile($conf);
468
unset($conf);
469
 
470
#如果取得csv檔案的內容失敗
471
if($csvFileContent["status"]=="false"){
472
 
473
	#印出相關資訊
474
	var_dump($csvFileContent);
475
 
476
	#停止程式
477
	exit;
478
 
479
	}#if end
480
 
481
#涵式說明:
482
#將用於統計分析的原始陣列裏面,每筆資料的特定欄位爲0的時候,將該筆樣本踢除
483
#回傳的結果:
484
#$result[lineNumber]["columnName"],lineNumber爲第幾行;columnName爲欄位的名稱,若沒有標題列將會以數字的0、1、2、3~n去排列
485
#必填的參數:
486
$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數
487
#$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去排列
488
$conf["checkedColumn"]=array("A1","A2","A3");#要檢測是否含有0的欄位名稱;亦即 $conf["varArray"]["columnName"] 的 columnName 爲何。如果原始陣列沒有特別指定,則會以數字的0、1、2、3~n去排列
489
#可省略的參數:
490
$cleanedData=math::eraseContainZeroData($conf);
491
unset($conf);
492
 
493
#如果清理失敗
494
if($cleanedData["status"]=="false"){
495
 
496
	#印出相關資訊
497
	var_dump($cleanedData);
498
 
499
	#停止程式
500
	exit;
501
 
502
	}#if end
503
 
504
#涵式說明:
505
#快速建立一個csv檔案,並且要求使用者下載。
506
#回傳的結果:
507
#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
508
#必填的參數:
509
$conf["dataArray"]=$cleanedData["content"];#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
510
$conf["fileArgu"]=__FILE__;
511
#可省略的參數:
512
$conf["csvFilePathAndName"]="mathT/已踢除特定欄位含有0的簡單樣本";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置
513
$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
514
$create=csv::create($conf);
515
unset($conf);
516
 
517
#如果建立csv檔失敗
518
if($create["status"]=="false"){
519
 
520
	#印出相關資訊
521
	var_dump($create);
522
 
523
	#停止程式
524
	exit;
525
 
526
	}#if end
527
 
528
#涵式說明:
529
#放置超鏈結
530
#回傳的結果:
531
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
532
#$result["error"],錯誤訊息
533
#$result["content"],語法
534
#$result["function"],當前執行的函數名稱
535
#必填的參數:
536
#$conf["position"],字串,爲要連結到的位置,若留空,將回自動變成"#",則可以搭配ajax傳值.	
537
$conf["position"]=$create["content"];
538
#$conf["linkName",字串,爲連結的顯示名稱
539
$conf["linkName"]="輸出的csv檔案";
540
#可省略的參數:
541
#$conf["method"],字串,爲點選連結後,新畫面要如何呈現,可省略預設爲"_self",可用的選項有 _top(覆蓋目前的視窗來顯現新內容) _parent _self _blank(跳新視窗)
542
$conf["method"]="_blank"; 
543
#$conf["class"],字串,爲要套用的css超連節樣式,可省略.
544
#$conf["class"]="";
545
#$conf["id"],字串,超連結的id.
546
#$conf["id"]="";
547
#$conf["no_outline"],字串,是否要取消連結的框線,"false為不取消,"true"代表要取消,預設為"false".
548
#$conf["no_outline"]="";
549
$show_link=link::show_link($conf);
550
unset($conf);
551
 
552
#如果建立超聯結失敗
553
if($show_link["status"]=="false"){
554
 
555
	#印出訊息
556
	var_dump($show_link);
557
 
558
	#終止程式
559
	exit;
560
 
561
	}#if end
562
 
563
#印出超聯結
564
echo $show_link["content"];
565
 
566
*/
567
 
568
/*
569
 
570
#說明正在測試的內容
571
echo"<hr>math::eraseContainZeroData - testCase 2<br>";
572
 
573
#涵式說明:
574
#讀取csv檔案的內容
575
#回傳得結果:
576
#$result["status"],執行是否正常,"true"代表正常;"false"代表不正常.
577
#$result["error"],錯誤訊息陣列.
578
#$result["function"],當前執行的函數名稱.
579
#$result["csvFileContent"],csv檔案內容的陣列.
580
	#$result["csvFileContent"]["$i"]["$j"]代表第$i+1列第$j+1欄位的內容.
581
	#如果 $conf["firstLineVarName"]爲"true"的話則會多回傳 $result["csvFileContent"]["第幾列"]["第一列各個欄位的名稱"]
582
#$result["lineArray"],csv檔案逐列內容的陣列.
583
#$result["lineArrayCount"],總共幾列資料.
584
#如果 $conf["firstLineVarName"]爲"true"的話則會回傳 $csvFileContent["line"]["第幾行"]["第一行各個欄位的名稱"]
585
#必填的參數:
586
$conf["csvFilePositionAndName"]="mathT/98問卷填寫與定位資訊(需要將展廳停留時間爲0的樣本踢除)-小樣本版.csv";#csv檔案的位置
587
$conf["fileArgu"]=__FILE__;
588
#可省略的參數:
589
$conf["firstLineVarName"]="true";#第一行是否爲變數名稱(各個欄位的名稱)
590
#參考資料來源:
591
#http://www.php.net/manual/en/function.str-split.php
592
#參考資料來源
593
#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)
594
$csvFileContent=csv::loadCsvFile($conf);
595
unset($conf);
596
 
597
#如果取得csv檔案的內容失敗
598
if($csvFileContent["status"]=="false"){
599
 
600
	#印出相關資訊
601
	var_dump($csvFileContent);
602
 
603
	#停止程式
604
	exit;
605
 
606
	}#if end
607
 
608
#涵式說明:
609
#將用於統計分析的原始陣列裏面,每筆資料的特定欄位爲0的時候,將該筆樣本踢除
610
#回傳的結果:
611
#$result[lineNumber]["columnName"],lineNumber爲第幾行;columnName爲欄位的名稱,若沒有標題列將會以數字的0、1、2、3~n去排列
612
#必填的參數:
613
$conf["varArray"]=$csvFileContent["csvFileContent"];#要處理的陣列變數
614
$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去排列
615
#可省略的參數:
616
$cleanedData=math::eraseContainZeroData($conf);
617
unset($conf);
618
 
619
#如果清理失敗
620
if($cleanedData["status"]=="false"){
621
 
622
	#印出相關資訊
623
	var_dump($cleanedData);
624
 
625
	#停止程式
626
	exit;
627
 
628
	}#if end
629
 
630
#涵式說明:
631
#快速建立一個csv檔案,並且要求使用者下載。
632
#回傳的結果:
633
#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
634
#必填的參數:
635
$conf["dataArray"]=$cleanedData["content"];#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
636
$conf["fileArgu"]=__FILE__;
637
#可省略的參數:
638
$conf["csvFilePathAndName"]="mathT/已踢除特定欄位含有0的樣本";#要儲存到哪個位置,預設爲跟網頁檔案一樣的位置
639
$conf["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
640
$create=csv::create($conf);
641
unset($conf);
642
 
643
#如果建立csv檔失敗
644
if($create["status"]=="false"){
645
 
646
	#印出相關資訊
647
	var_dump($create);
648
 
649
	#停止程式
650
	exit;
651
 
652
	}#if end
653
 
654
#涵式說明:
655
#放置超鏈結
656
#回傳的結果:
657
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
658
#$result["error"],錯誤訊息
659
#$result["content"],語法
660
#$result["function"],當前執行的函數名稱
661
#必填的參數:
662
#$conf["position"],字串,爲要連結到的位置,若留空,將回自動變成"#",則可以搭配ajax傳值.	
663
$conf["position"]=$create["content"];
664
#$conf["linkName",字串,爲連結的顯示名稱
665
$conf["linkName"]="輸出的csv檔案";
666
#可省略的參數:
667
#$conf["method"],字串,爲點選連結後,新畫面要如何呈現,可省略預設爲"_self",可用的選項有 _top(覆蓋目前的視窗來顯現新內容) _parent _self _blank(跳新視窗)
668
$conf["method"]="_blank"; 
669
#$conf["class"],字串,爲要套用的css超連節樣式,可省略.
670
#$conf["class"]="";
671
#$conf["id"],字串,超連結的id.
672
#$conf["id"]="";
673
#$conf["no_outline"],字串,是否要取消連結的框線,"false為不取消,"true"代表要取消,預設為"false".
674
#$conf["no_outline"]="";
675
$show_link=link::show_link($conf);
676
unset($conf);
677
 
678
#如果建立超聯結失敗
679
if($show_link["status"]=="false"){
680
 
681
	#印出訊息
682
	var_dump($show_link);
683
 
684
	#終止程式
685
	exit;
686
 
687
	}#if end
688
 
689
#印出超聯結
690
echo $show_link["content"];
691
 
692
*/	
693
 
694
/*
695
 
696
#說明正在測試的內容
697
echo"<hr>math::changeToIntValue - testCase 1<br>";
698
 
699
#函式說明:
700
#將陣列裡面小於等於自己的正整數或大於等於自己的負整數
701
#回傳的結果:
702
#$result["status"],執行是否成功的識別,"true"代表執行正常,"false"代表執行不正常.
703
#$result["error"],錯誤訊息陣列.
704
#$result["function"],當前執行的函數名稱.
705
#$result["content"],處理好的整數陣列.
706
#必填的參數:
707
#$conf["inputArray"],字串陣列,要取整數的數字陣列.
708
$conf["inputArray"]=array("-0.003","3.3","9.7","-10.5","0.23");
709
#可省略的參數:
710
#無
711
#餐考資料來源:
712
#http://tw2.php.net/manual/en/function.round.php
713
var_dump(math::changeToIntValue($conf));
714
unset($conf);
715
 
716
*/
717
 
718
/*
719
 
720
#說明正在測試的內容
721
echo"<hr>math::randomFromArray - testCase 1<br>";
722
 
723
#測試用於產出亂數的陣列
724
$randomArray=array("0","1","2","3","4","5","6","7","8","9"); 
725
 
726
#函式說明: 
727
#亂數產生特定陣列裡面的內容
728
#回傳的結果:
729
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
730
#$result["function"],當前執行的函數名稱.
731
#$result["error"],錯誤訊息陣列.
732
#$result["content"]["name"],產生的元素在$conf["randomArray"]裡面的key是?
733
#$result["content"]["value"],產生的元素內容.
734
#必填參數:
735
#$conf["randomArray"],字串陣列,要隨機產生的元素.
736
$conf["randomArray"]=$randomArray;
737
#可省略參數:
738
#無
739
var_dump(math::randomFromArray($conf));
740
unset($conf);
741
 
742
*/ 
743
 
744
/*
745
 
746
#說明正在測試的內容
747
echo"<hr>math::key2value - testCase 1<br>";
748
 
749
#跑 256 次
750
for($i=0;$i<=255;$i++){
751
 
752
	#設置左手範圍
753
	$rangeF[]=$i;
754
 
755
	}#for end
756
 
757
#函式說明: 
758
#左方數值範圍要對應的右方數值範圍
759
#回傳的結果:
760
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
761
#$result["function"],當前執行的函數名稱.
762
#$result["error"],錯誤訊息陣列.
763
#$result["argu"],使用的參數.
764
#必填參數:
765
#$conf["rangeF"],整數陣列,要產生對應表的左手方
766
$conf["rangeF"]=$rangeF;
767
#可省略參數:
768
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
769
#$conf["rangeT"]=array();
770
#備註:
771
#建構中.
772
$key2value=math::key2value($conf);
773
unset($conf);
774
 
775
#如果執行失敗
776
if($key2value["status"]==="false"){
777
 
778
	#印出結果
779
	var_dump($key2value);
780
 
781
	#結束執行
782
	exit;
783
 
784
	}#if end
785
 
786
#印出結果
787
var_dump($key2value);	
788
 
789
*/
790
 
791
/*
792
 
793
#說明正在測試的內容
794
echo"<hr>math::key2value - testCase 2<br>";
795
 
796
#跑 101 次
797
for($i=0;$i<=100;$i++){
798
 
799
	#設置左手範圍
800
	$rangeF[]=$i;
801
 
802
	}#for end
803
 
804
#跑 256 次
805
for($i=0;$i<=255;$i++){
806
 
807
	#設置左手範圍
808
	$rangeT[]=$i;
809
 
810
	}#for end
811
 
812
#函式說明: 
813
#左方數值範圍要對應的右方數值範圍
814
#回傳的結果:
815
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
816
#$result["function"],當前執行的函數名稱.
817
#$result["error"],錯誤訊息陣列.
818
#$result["argu"],使用的參數.
819
#必填參數:
820
#$conf["rangeF"],整數陣列,要產生對應表的左手方
821
$conf["rangeF"]=$rangeF;
822
#可省略參數:
823
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
824
$conf["rangeT"]=$rangeT;
825
#備註:
826
#建構中.
827
$key2value=math::key2value($conf);
828
unset($conf);
829
 
830
#如果執行失敗
831
if($key2value["status"]==="false"){
832
 
833
	#印出結果
834
	var_dump($key2value);
835
 
836
	#結束執行
837
	exit;
838
 
839
	}#if end
840
 
841
#印出結果
842
var_dump($key2value);	
843
 
844
*/
845
 
846
/*
847
 
848
#說明正在測試的內容
849
echo"<hr>math::key2value - testCase 3<br>";
850
 
851
#跑 255 次
852
for($i=0;$i<=254;$i++){
853
 
854
	#設置左手範圍
855
	$rangeF[]=$i;
856
 
857
	}#for end
858
 
859
#跑100次
860
for($i=1;$i<=100;$i++){
861
 
862
	#設置左手範圍
863
	$rangeT[]=$i;
864
 
865
	}#for end
866
 
867
#函式說明: 
868
#左方數值範圍要對應的右方數值範圍
869
#回傳的結果:
870
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
871
#$result["function"],當前執行的函數名稱.
872
#$result["error"],錯誤訊息陣列.
873
#$result["argu"],使用的參數.
874
#必填參數:
875
#$conf["rangeF"],整數陣列,要產生對應表的左手方
876
$conf["rangeF"]=$rangeF;
877
#可省略參數:
878
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
879
$conf["rangeT"]=$rangeT;
880
#備註:
881
#建構中.
882
$key2value=math::key2value($conf);
883
unset($conf);
884
 
885
#如果執行失敗
886
if($key2value["status"]==="false"){
887
 
888
	#印出結果
889
	var_dump($key2value);
890
 
891
	#結束執行
892
	exit;
893
 
894
	}#if end
895
 
896
#印出結果
897
var_dump($key2value);	
898
 
899
*/
900
 
901
/*
902
 
903
#說明正在測試的內容
904
echo"<hr>math::value2key - testCase 1<br>";
905
 
906
#跑 256 次
907
for($i=0;$i<=255;$i++){
908
 
909
	#設置左手範圍
910
	$rangeF[]=$i;
911
 
912
	}#for end
913
 
914
#函式說明: 
915
#左方數值範圍要對應的右方數值範圍
916
#回傳的結果:
917
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
918
#$result["function"],當前執行的函數名稱.
919
#$result["error"],錯誤訊息陣列.
920
#$result["argu"],使用的參數.
921
#必填參數:
922
#$conf["rangeF"],整數陣列,要產生對應表的左手方
923
$conf["rangeF"]=$rangeF;
924
#可省略參數:
925
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
926
#$conf["rangeT"]=array();
927
#備註:
928
#建構中.
929
$key2value=math::key2value($conf);
930
unset($conf);
931
 
932
#如果執行失敗
933
if($key2value["status"]==="false"){
934
 
935
	#印出結果
936
	var_dump($key2value);
937
 
938
	#結束執行
939
	exit;
940
 
941
	}#if end
942
 
943
#函式說明: 
944
#數值對應的key
945
#回傳的結果:
946
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
947
#$result["function"],當前執行的函數名稱.
948
#$result["error"],錯誤訊息陣列.
949
#$result["argu"],使用的參數.
950
#必填參數:
951
#$conf["value"],浮點數,要尋找對應的數值.
952
$conf["value"]=(double)(57);
953
#$conf["reference"],整數陣列,透過math::key2value產生的對照表.
954
$conf["reference"]=$key2value["content"];
955
#可省略參數:
956
#無
957
$value2key=math::value2key($conf);
958
unset($conf);
959
 
960
#如果執行失敗
961
if($value2key["status"]==="false"){
962
 
963
	#印出結果
964
	var_dump($value2key);
965
 
966
	#結束執行
967
	exit;
968
 
969
	}#if end
970
 
971
#印出結果
972
var_dump($value2key);	
973
 
974
*/
975
 
976
/*
977
 
978
#說明正在測試的內容
979
echo"<hr>math::value2key - testCase 2<br>";
980
 
981
#跑 256 次
982
for($i=0;$i<=255;$i++){
983
 
984
	#設置左手範圍
985
	$rangeF[]=$i;
986
 
987
	}#for end
988
 
989
#函式說明: 
990
#左方數值範圍要對應的右方數值範圍
991
#回傳的結果:
992
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
993
#$result["function"],當前執行的函數名稱.
994
#$result["error"],錯誤訊息陣列.
995
#$result["argu"],使用的參數.
996
#必填參數:
997
#$conf["rangeF"],整數陣列,要產生對應表的左手方
998
$conf["rangeF"]=$rangeF;
999
#可省略參數:
1000
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
1001
#$conf["rangeT"]=array();
1002
#備註:
1003
#建構中.
1004
$key2value=math::key2value($conf);
1005
unset($conf);
1006
 
1007
#如果執行失敗
1008
if($key2value["status"]==="false"){
1009
 
1010
	#印出結果
1011
	var_dump($key2value);
1012
 
1013
	#結束執行
1014
	exit;
1015
 
1016
	}#if end
1017
 
1018
#針對每個可能的數值
1019
for($i=0;$i<=100;$i++){
1020
 
1021
	#函式說明: 
1022
	#數值對應的key
1023
	#回傳的結果:
1024
	#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1025
	#$result["function"],當前執行的函數名稱.
1026
	#$result["error"],錯誤訊息陣列.
1027
	#$result["argu"],使用的參數.
1028
	#必填參數:
1029
	#$conf["value"],浮點數,要尋找對應的數值.
1030
	$conf["value"]=(double)($i);
1031
	#$conf["reference"],整數陣列,透過math::key2value產生的對照表.
1032
	$conf["reference"]=$key2value["content"];
1033
	#可省略參數:
1034
	#無
1035
	$value2key=math::value2key($conf);
1036
	unset($conf);
1037
 
1038
	#如果執行失敗
1039
	if($value2key["status"]==="false"){
1040
 
1041
		#印出結果
1042
		var_dump($value2key);
1043
 
1044
		#結束執行
1045
		exit;
1046
 
1047
		}#if end
1048
 
1049
	#印出結果
1050
	echo $i."<=>".$value2key["content"]."<br>";	
1051
 
1052
	}#for enb
1053
 
1054
*/
1055
 
1056
/*
1057
 
1058
#說明正在測試的內容
1059
echo"<hr>math::value2key - testCase 3<br>";
1060
 
1061
#跑 101 次
1062
for($i=0;$i<=100;$i++){
1063
 
1064
	#設置左手範圍
1065
	$rangeF[]=$i;
1066
 
1067
	}#for end
1068
 
1069
#跑 256 次
1070
for($i=0;$i<=255;$i++){
1071
 
1072
	#設置左手範圍
1073
	$rangeT[]=$i;
1074
 
1075
	}#for end
1076
 
1077
#函式說明: 
1078
#左方數值範圍要對應的右方數值範圍
1079
#回傳的結果:
1080
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1081
#$result["function"],當前執行的函數名稱.
1082
#$result["error"],錯誤訊息陣列.
1083
#$result["argu"],使用的參數.
1084
#必填參數:
1085
#$conf["rangeF"],整數陣列,要產生對應表的左手方
1086
$conf["rangeF"]=$rangeF;
1087
#可省略參數:
1088
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
1089
$conf["rangeT"]=$rangeT;
1090
#備註:
1091
#建構中.
1092
$f100t255=math::key2value($conf);
1093
unset($conf);
1094
 
1095
#如果執行失敗
1096
if($f100t255["status"]==="false"){
1097
 
1098
	#印出結果
1099
	var_dump($f100t255);
1100
 
1101
	#結束執行
1102
	exit;
1103
 
1104
	}#if end
1105
 
1106
#0~100對應0~255的表
1107
$f100t255=$f100t255["content"];
1108
 
1109
#初始化
1110
$rangeF=array();
1111
 
1112
#跑 256 次
1113
for($i=0;$i<=255;$i++){
1114
 
1115
	#設置左手範圍
1116
	$rangeF[]=$i;
1117
 
1118
	}#for end
1119
 
1120
#函式說明: 
1121
#左方數值範圍要對應的右方數值範圍
1122
#回傳的結果:
1123
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1124
#$result["function"],當前執行的函數名稱.
1125
#$result["error"],錯誤訊息陣列.
1126
#$result["argu"],使用的參數.
1127
#必填參數:
1128
#$conf["rangeF"],整數陣列,要產生對應表的左手方
1129
$conf["rangeF"]=$rangeF;
1130
#可省略參數:
1131
#$conf["rangeT"],整數陣列,要產生對應表的右手方,預設為0到100的整數.
1132
#$conf["rangeT"]=array();
1133
#備註:
1134
#建構中.
1135
$f255t100=math::key2value($conf);
1136
unset($conf);
1137
 
1138
#如果執行失敗
1139
if($f255t100["status"]==="false"){
1140
 
1141
	#印出結果
1142
	var_dump($f255t100);
1143
 
1144
	#結束執行
1145
	exit;
1146
 
1147
	}#if end
1148
 
1149
#0~255對應0~100的表
1150
$f255t100=$f255t100["content"];
1151
 
1152
#跑100次,修正轉換誤差.
1153
for($i=0;$i<=100;$i++){
1154
 
1155
	#函式說明: 
1156
	#數值對應的key
1157
	#回傳的結果:
1158
	#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1159
	#$result["function"],當前執行的函數名稱.
1160
	#$result["error"],錯誤訊息陣列.
1161
	#$result["argu"],使用的參數.
1162
	#必填參數:
1163
	#$conf["value"],浮點數,要尋找對應的數值.
1164
	$conf["value"]=(double)($i);
1165
	#$conf["reference"],整數陣列,透過math::key2value產生的對照表.
1166
	$conf["reference"]=$f255t100;
1167
	#可省略參數:
1168
	#無
1169
	$value2key=math::value2key($conf);
1170
	unset($conf);
1171
 
1172
	#如果執行失敗
1173
	if($value2key["status"]==="false"){
1174
 
1175
		#印出結果
1176
		var_dump($value2key);
1177
 
1178
		#結束執行
1179
		exit;
1180
 
1181
		}#if end
1182
 
1183
	#fix 轉換誤差
1184
	$f100t255[$i]=$value2key["content"];
1185
 
1186
	}#for end
1187
 
1188
#fix 轉換誤差	
1189
#$f100t255[70]=178;
1190
 
1191
#var_dump($f100t255);
1192
#var_dump($f255t100);
1193
#exit;
1194
 
1195
#設定 70%,對應0~256的哪邊
1196
#函式說明: 
1197
#數值對應的key
1198
#回傳的結果:
1199
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1200
#$result["function"],當前執行的函數名稱.
1201
#$result["error"],錯誤訊息陣列.
1202
#$result["argu"],使用的參數.
1203
#必填參數:
1204
#$conf["value"],浮點數,要尋找對應的數值.
1205
$conf["value"]=(double)(70);
1206
#$conf["reference"],整數陣列,透過math::key2value產生的對照表.
1207
$conf["reference"]=$f255t100;
1208
#可省略參數:
1209
#無
1210
$value2key=math::value2key($conf);
1211
unset($conf);
1212
 
1213
#如果執行失敗
1214
if($value2key["status"]==="false"){
1215
 
1216
	#印出結果
1217
	var_dump($value2key);
1218
 
1219
	#結束執行
1220
	exit;
1221
 
1222
	}#if end
1223
 
1224
#儲存結果
1225
$num255=$value2key["content"];
1226
 
1227
#提示轉換的結果
1228
echo "70%=>".$num255."<br>";
1229
 
1230
#設定 $value2key["content"],對應0~100的哪邊
1231
#函式說明: 
1232
#數值對應的key
1233
#回傳的結果:
1234
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1235
#$result["function"],當前執行的函數名稱.
1236
#$result["error"],錯誤訊息陣列.
1237
#$result["argu"],使用的參數.
1238
#必填參數:
1239
#$conf["value"],浮點數,要尋找對應的數值.
1240
$conf["value"]=(double)($num255);
1241
#$conf["reference"],整數陣列,透過math::key2value產生的對照表.
1242
$conf["reference"]=$f100t255;
1243
#可省略參數:
1244
#無
1245
$value2key=math::value2key($conf);
1246
unset($conf);
1247
 
1248
#如果執行失敗
1249
if($value2key["status"]==="false"){
1250
 
1251
	#印出結果
1252
	var_dump($value2key);
1253
 
1254
	#結束執行
1255
	exit;
1256
 
1257
	}#if end
1258
 
1259
#儲存結果
1260
$num100=$value2key["content"];
1261
 
1262
#提示轉換的結果
1263
echo "$num255=>".$num100."%<br>";
1264
 
1265
*/
1266
 
1267
/*
1268
 
1269
#說明正在測試的內容
1270
echo"<hr>math::fixedKeyToValueReversed - testCase 1<br>";
1271
 
1272
#函式說明:
1273
#建立一對一的數值對照表,左右都對應到整數值.
1274
#回傳的結果:
1275
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1276
#$result["function"],當前執行的函數名稱.
1277
#$result["error"],錯誤訊息陣列.
1278
#$result["argu"],使用的參數.
1279
#$result["content"],由左至右的數值對應表
1280
#必填參數
1281
#$conf["rangeF"],整數陣列,要產生對應表的左手方範圍,$conf["rangeF"]["s"]為左手邊的起始範圍,$conf["rangeF"]["e"]為左手邊的結束範圍.
1282
$conf["rangeF"]=array("s"=>0,"e"=>100);
1283
#$conf["rangeT"],整數陣列,要產生對應表的右手方範圍,$conf["rangeT"]["s"]為右手邊的起始範圍,$conf["rangeT"]["e"]為右手邊的結束範圍.
1284
$conf["rangeT"]=array('s'=>0,"e"=>255);
1285
#可省略參數:
1286
#無.
1287
$fixedKeyToValueReversed=math::fixedKeyToValueReversed($conf);
1288
unset($conf);
1289
 
1290
#如果建立失敗
1291
if($fixedKeyToValueReversed["status"]==="false"){
1292
 
1293
	#印出結果
1294
	var_dump($fixedKeyToValueReversed);
1295
 
1296
	#結束執行
1297
	exit;
1298
 
1299
	}#if end
1300
 
1301
#印出對照表
1302
var_dump($fixedKeyToValueReversed["content"]);
1303
 
1304
*/
1305
 
1306
/*
1307
 
1308
#說明正在測試的內容
1309
echo"<hr>math::fixedKeyToValueReversed - testCase 2<br>";
1310
 
1311
#函式說明:
1312
#建立一對一的數值對照表,左右都對應到整數值.
1313
#回傳的結果:
1314
#$result["status"],執行正常與否,"true"為正常,"false"為不正常.
1315
#$result["function"],當前執行的函數名稱.
1316
#$result["error"],錯誤訊息陣列.
1317
#$result["argu"],使用的參數.
1318
#$result["content"],由左至右的數值對應表
1319
#必填參數
1320
#$conf["rangeF"],整數陣列,要產生對應表的左手方範圍,$conf["rangeF"]["s"]為左手邊的起始範圍,$conf["rangeF"]["e"]為左手邊的結束範圍.
1321
$conf["rangeF"]=array("s"=>129,"e"=>191);
1322
#$conf["rangeT"],整數陣列,要產生對應表的右手方範圍,$conf["rangeT"]["s"]為右手邊的起始範圍,$conf["rangeT"]["e"]為右手邊的結束範圍.
1323
$conf["rangeT"]=array('s'=>1,"e"=>63);
1324
#可省略參數:
1325
#無.
1326
$fixedKeyToValueReversed=math::fixedKeyToValueReversed($conf);
1327
unset($conf);
1328
 
1329
#如果建立失敗
1330
if($fixedKeyToValueReversed["status"]==="false"){
1331
 
1332
	#印出結果
1333
	var_dump($fixedKeyToValueReversed);
1334
 
1335
	#結束執行
1336
	exit;
1337
 
1338
	}#if end
1339
 
1340
#印出對照表
1341
var_dump($fixedKeyToValueReversed["content"]);
1342
 
1343
*/
1344
 
1345
/*
1346
 
1347
#說明正在測試的內容
1348
echo"<hr>math::getExp - testCase 1<br>";
1349
 
1350
#函式說明:get Euler's number
1351
#回傳結果:
1352
#$result["status"],執行正常("true")與否("false").
1353
#$result["content"],回傳數學常數(e).
1354
#$reuslt["argu"],使用的參數.
1355
#必填參數:
1356
#無
1357
#可省略參數:
1358
#$conf["pow"],整數字串,次方,預設為1,代表e的1次方.
1359
#$conf["pow"]="1";
1360
#參考資料:
1361
#https://www.runoob.com/php/func-math-exp.html
1362
#https://en.wikipedia.org/wiki/E_(mathematical_constant)
1363
$conf=array();
1364
$getExp=math::getExp($conf);
1365
unset($conf);
1366
 
1367
#印出結果
1368
var_dump($getExp);
1369
 
1370
*/
1371
 
1372
/*
1373
 
1374
#說明正在測試的內容
1375
echo"<hr>math::raw2gps - testCase 1<br>";
1376
 
1377
#函式說明:
1378
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1379
#回傳結果:
1380
#$result["status"],執行正常("true")與否("false").
1381
#$result["content"],回傳數學常數(e).
1382
#$reuslt["argu"],使用的參數.
1383
#必填參數:
1384
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1385
$conf["rawGps"]="0EC9292348234E74";
1386
#可省略參數:
1387
#無.	
1388
$raw2gps=math::raw2gps($conf);
1389
unset($conf);
1390
 
1391
#印出結果
1392
var_dump($raw2gps);
1393
 
1394
*/
1395
 
1396
/*
1397
 
1398
#說明正在測試的內容
1399
echo"<hr>math::raw2gps - testCase 2<br>";
1400
 
1401
#函式說明:
1402
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1403
#回傳結果:
1404
#$result["status"],執行正常("true")與否("false").
1405
#$result["content"],回傳數學常數(e).
1406
#$reuslt["argu"],使用的參數.
1407
#必填參數:
1408
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1409
$conf["rawGps"]="5EC92923C8234E74";
1410
#可省略參數:
1411
#無.	
1412
$raw2gps=math::raw2gps($conf);
1413
unset($conf);
1414
 
1415
#印出結果
1416
var_dump($raw2gps);
1417
 
1418
*/
1419
 
1420
/*
1421
 
1422
#說明正在測試的內容
1423
echo"<hr>math::raw2gps - testCase 3<br>";
1424
 
1425
#函式說明:
1426
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1427
#回傳結果:
1428
#$result["status"],執行正常("true")與否("false").
1429
#$result["content"],回傳數學常數(e).
1430
#$reuslt["argu"],使用的參數.
1431
#必填參數:
1432
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1433
$conf["rawGps"]="24.8064291,121.0273396";
1434
#可省略參數:
1435
#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.
1436
$conf["reverse"]="true";
1437
#可省略參數:
1438
#無.	
1439
$raw2gps=math::raw2gps($conf);
1440
unset($conf);
1441
 
1442
#印出結果
1443
var_dump($raw2gps);
1444
 
1445
*/
1446
 
1447
/*
1448
 
1449
#說明正在測試的內容
1450
echo"<hr>math::raw2gps - testCase 4<br>";
1451
 
1452
#函式說明:
1453
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1454
#回傳結果:
1455
#$result["status"],執行正常("true")與否("false").
1456
#$result["content"],回傳數學常數(e).
1457
#$reuslt["argu"],使用的參數.
1458
#必填參數:
1459
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1460
$conf["rawGps"]="-69.0241571,-155.7757044";
1461
#可省略參數:
1462
#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.
1463
$conf["reverse"]="true";
1464
#可省略參數:
1465
#無.	
1466
$raw2gps=math::raw2gps($conf);
1467
unset($conf);
1468
 
1469
#印出結果
1470
var_dump($raw2gps);
1471
 
1472
*/
1473
 
1474
/*
1475
 
1476
#說明正在測試的內容
1477
echo"<hr>math::raw2gps - testCase 5<br>";
1478
 
1479
#函式說明:
1480
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1481
#回傳結果:
1482
#$result["status"],執行正常("true")與否("false").
1483
#$result["content"],回傳數學常數(e).
1484
#$reuslt["argu"],使用的參數.
1485
#必填參數:
1486
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1487
$conf["rawGps"]="52488046B9B2F8E8";
1488
#可省略參數:
1489
#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.
1490
#$conf["reverse"]="true";
1491
#可省略參數:
1492
#無.	
1493
$raw2gps=math::raw2gps($conf);
1494
unset($conf);
1495
 
1496
#印出結果
1497
var_dump($raw2gps);
1498
 
1499
*/
1500
 
1501
/*
1502
 
1503
#說明正在測試的內容
1504
echo"<hr>math::raw2gps - testCase 6<br>";
1505
 
1506
google map 地圖 url
1507
https://www.google.com.tw/maps/@41.2435841,123.1843184,17z?hl=zh-TW
1508
 
1509
#函式說明:
1510
#將16進位的16位數,轉換為小數點後到7位的gp表示方法.
1511
#回傳結果:
1512
#$result["status"],執行正常("true")與否("false").
1513
#$result["content"],回傳數學常數(e).
1514
#$reuslt["argu"],使用的參數.
1515
#必填參數:
1516
#$conf["rawGps"],字串,16進位的16位數,亦即gps的格式.
1517
$conf["rawGps"]="41.243584114494,123.18431835648";
1518
$conf["rawGps"]="41.2435841,123.1843183";
1519
#可省略參數:
1520
#$conf["reverse"],預設為"false","true"代表要將經緯度(121.1234567,23.1234567)轉換為16進位的16位數字.
1521
$conf["reverse"]="true";
1522
#可省略參數:
1523
#無.	
1524
$raw2gps=math::raw2gps($conf);
1525
unset($conf);
1526
 
1527
#印出結果
1528
var_dump($raw2gps);
1529
 
1530
*/
1531
 
1532
?>