Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 915 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 liveuser 1
<?php
2
 
3
/*
4
 
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
624 liveuser 6
    Copyright (C) 2015~2024 Min-Jhin,Chen
1 liveuser 7
 
8
    This file is part of QBPWCF.
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
12
    the Free Software Foundation, either version 3 of the License, or
13
    (at your option) any later version.
14
 
15
    QBPWCF is distributed in the hope that it will be useful,
16
    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
    GNU General Public License for more details.
19
 
20
    You should have received a copy of the GNU General Public License
21
    along with QBPWCF.  If not, see <http://www.gnu.org/licenses/>.
22
 
23
*/
243 liveuser 24
namespace qbpwcf;
1 liveuser 25
 
26
/*
243 liveuser 27
類別說明:
28
跟搜尋功能相關的類別.
29
備註:
30
無.
1 liveuser 31
*/
32
class search{
33
 
34
	/*
35
	#函式說明:
36
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
37
	#回傳結果:
38
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
39
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
40
	#$result["function"],當前執行的函式名稱.
41
	#必填參數:
42
	#$method,物件,為物件實體或類別名稱,會自動置入該參數.
43
	#$arguments,陣列,為呼叫方法時所用的參數.
205 liveuser 44
	#可省略參數:
45
	#無.
1 liveuser 46
	#參考資料:
47
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
205 liveuser 48
	#備註:
49
	#無.
1 liveuser 50
	*/
51
	public function __call($method,$arguments){
52
 
53
		#取得當前執行的函式
54
		$result["function"]=__FUNCTION__;
55
 
56
		#設置執行不正常
57
		$result["status"]="false";
58
 
59
		#設置執行錯誤
60
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
61
 
62
		#設置所丟入的參數
63
		$result["error"][]=$arguments;
64
 
65
		#回傳結果
66
		return $result;
67
 
68
		}#function __call end
69
 
70
	/*
71
	#函式說明:
72
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
73
	#回傳結果:
74
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
75
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
76
	#$result["function"],當前執行的函式名稱.
77
	#必填參數:
78
	#$method,物件,為物件實體或類別名稱,會自動置入該參數.
79
	#$arguments,陣列,為呼叫方法時所用的參數.
205 liveuser 80
	#可省略參數:
81
	#無.
1 liveuser 82
	#參考資料:
205 liveuser 83
	#__callStatic=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
84
	#備註:
85
	#無.
1 liveuser 86
	*/
87
	public static function __callStatic($method,$arguments){
88
 
89
		#取得當前執行的函式
90
		$result["function"]=__FUNCTION__;
91
 
92
		#設置執行不正常
93
		$result["status"]="false";
94
 
95
		#設置執行錯誤
96
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
97
 
98
		#設置所丟入的參數
99
		$result["error"][]=$arguments;
100
 
101
		#回傳結果
102
		return $result;
103
 
104
		}#function __callStatic end
105
 
106
	/*
57 liveuser 107
	#函式說明:
1 liveuser 108
	#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
57 liveuser 109
	#回傳結果:
1 liveuser 110
	#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
111
	#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
112
	#$result["error"],錯誤訊息
113
	#$result["function"],當前執行的函數名稱
114
	#$result["argv"],使用的參數
115
	#$result["equalVarName"],相等的變數名稱或key.
116
	#$result["equalVarValue"],相等的變數數值內容.
57 liveuser 117
	#必填參數:
205 liveuser 118
	#$conf["conditionElement"],字串,條件元素,要等於的元素內容.
119
	$conf["conditionElement"]="";
120
	#$conf["compareElements"],字串陣列,要比對的陣列變數內容.
121
	$conf["compareElements"]=array();
57 liveuser 122
	#可省略參數:
123
	#無.
205 liveuser 124
	#參考資料:
125
	#無.
57 liveuser 126
	#備註:
127
	#無.
1 liveuser 128
	*/
205 liveuser 129
	public static function getEqualVar(&$conf){
1 liveuser 130
 
131
		#初始化要回傳的變數
132
		$result=array();
133
 
134
		#設置當前執行的函數
135
		$result["function"]=__FUNCTION__;	
136
 
137
		#如果 $conf 不為陣列
138
		if(gettype($conf)!="array"){
139
 
140
			#設置執行失敗
141
			$result["status"]="false";
142
 
143
			#設置執行錯誤訊息
144
			$result["error"][]="\$conf變數須為陣列形態";
145
 
146
			#如果傳入的參數為 null
147
			if($conf==null){
148
 
149
				#設置執行錯誤訊息
150
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
151
 
152
				}#if end
153
 
154
			#回傳結果
155
			return $result;
156
 
157
			}#if end
158
 
159
		#取得使用的參數
160
		$result["argv"]=$conf;
161
 
162
		#如果 $conf["conditionElement"] 沒有設置
163
		if(!isset($conf["conditionElement"])){
164
 
165
			#設置錯誤識別
166
			$result["status"]="false";
167
 
168
			#設置錯誤訊息
169
			$result["error"]="\$conf[\"conditionElement\"]參數沒設定!";
170
 
171
			#回傳結果
172
			return $result;
173
 
174
			}#if end
175
 
176
		#如果 $conf["compareElements"] 沒有設置
177
		if(!isset($conf["compareElements"])){
178
 
179
			#設置錯誤識別
180
			$result["status"]="false";
181
 
182
			#設置錯誤訊息
183
			$result["error"]="\$conf[\"compareElements\"]參數沒設定!";
184
 
185
			#回傳結果
186
			return $result;
187
 
188
			}#if end
189
 
190
		#有幾個 $conf["compareElements"] 要用來比對,就執行幾次
191
		foreach($conf["compareElements"] as $key=>$value){
192
 
193
			#debug
194
			#var_dump($conf["conditionElement"],$value);
195
 
196
			#如果要判斷的參數與要用來比對的參數有相同
197
			if($conf["conditionElement"]===$value){
198
 
199
				#執行正確
200
				$result["status"]="true";
201
 
202
				#判斷結果設爲 "true"
203
				$result["founded"]="true";
204
 
205
				#取得該元素的key
206
				$result["equalVarName"]=$key;
207
 
208
				#取得該變數
209
				$result["equalVarValue"]=$value;
210
 
211
				#回傳結果
212
				return $result;
213
 
214
				}#if end
215
 
216
			}#foreache end
217
 
218
		#執行到這邊代表沒有找到
219
		$result["founded"]="false";
220
 
221
		#執行正確
222
		$result["status"]="true";
223
 
224
		#回傳結果
225
		return $result;
226
 
227
		}#function getEqualVar end
228
 
229
	/*
57 liveuser 230
	#函式說明:
1 liveuser 231
	#檢查多個數值,是否與陣列裏面的某些元素相同。
57 liveuser 232
	#回傳結果:
1 liveuser 233
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
234
	#$result["function"],當前執行的函數
235
	#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤 
236
	#$result["founded"][$i],若爲"false"代表沒有相同的元素;反之"true"代表有相同的元素,$i爲第i+1個$conf["inputElement"]參數判斷後的結果.
237
	#$result["key"][$i],為找到$conf["inputElement"]第$i+1個元素的值是在$conf["blackBoxElement"]中的哪個元素.
57 liveuser 238
	#必填參數:
205 liveuser 239
	#$conf["inputElement"],字串陣列,想要找到的變數/數值.
240
	$conf["inputElement"]=array();
241
	#$conf["blackBoxElement"]=,字串陣列,要從哪些變數/數值去尋找.
242
	$conf["blackBoxElement"]=array();
57 liveuser 243
	#可省略參數:
244
	#無.
205 liveuser 245
	#參考資料:
246
	#無.
57 liveuser 247
	#備註:
248
	#無.
1 liveuser 249
	*/
250
	public static function checkEquality(&$conf){
251
 
252
		#初始化要回傳的內容
253
		$result=array();
254
 
255
		#設置當前執行的函數
256
		$result["function"]=__FUNCTION__;
257
 
258
		#如果 $conf 不為陣列
259
		if(gettype($conf)!="array"){
260
 
261
			#設置執行失敗
262
			$result["status"]="false";
263
 
264
			#設置執行錯誤訊息
265
			$result["error"][]="\$conf變數須為陣列形態";
266
 
267
			#如果傳入的參數為 null
268
			if($conf==null){
269
 
270
				#設置執行錯誤訊息
271
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
272
 
273
				}#if end
274
 
275
			#回傳結果
276
			return $result;
277
 
278
			}#if end
279
 
280
		#檢查參數
57 liveuser 281
		#函式說明:
1 liveuser 282
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
283
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
284
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
285
		#$result["function"],當前執行的函式名稱.
286
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
287
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
288
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
289
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
290
		#必填寫的參數:
291
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
292
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
293
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
294
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("inputElement","blackBoxElement");
295
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
296
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array");
297
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
298
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
299
		#可以省略的參數:
300
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
301
		#$conf["canBeEmptyString"]="false";
302
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
303
		#$conf["skipableVariableName"]=array();
304
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
305
		#$conf["skipableVariableType"]=array();
306
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
307
		#$conf["skipableVarDefaultValue"]=array("");
308
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
309
		#$conf["variableCheck.checkArguments"]["arrayCountEqualCheck"][]=array();
310
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);			
311
		unset($conf["variableCheck.checkArguments"]);
312
 
313
		#如果檢查失敗
314
		if($checkResult["status"]=="false"){
315
 
316
			#設置執行不正常
317
			$result["status"]="false";
318
 
319
			#程式停止執行
320
			$result["error"]=$checkResult;
321
 
322
			#回傳結果
323
			return $result;
324
 
325
			}#if end
326
 
327
		#如果檢查不通過
328
		if($checkResult["passed"]=="false"){
329
 
330
			#設置執行不正常
331
			$result["status"]="false";
332
 
333
			#程式停止執行
334
			$result["error"]=$checkResult;
335
 
336
			#回傳結果
337
			return $result;
338
 
339
			}#if end
340
 
341
		#如果必備的參數都存在,而且元素數量皆正確。
342
		if((count($conf["inputElement"])>0) && (count($conf["blackBoxElement"])>0)){
343
 
344
			#有幾個 $conf["inputElement"] 要判斷,就執行幾次
345
			foreach($conf["inputElement"] as $inputElementKey=>$inputElementValue){
346
 
347
				#檢查 $inputElementValue 是否存在於 $conf["blackBoxElement"] 陣列裡面
57 liveuser 348
				#函式說明:
1 liveuser 349
				#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
57 liveuser 350
				#回傳結果:
1 liveuser 351
				#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
352
				#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
353
				#$result["error"],錯誤訊息
354
				#$result["function"],當前執行的函數名稱
355
				#$result["equalVarName"],相等的變數名稱或key.
356
				#$result["equalVarValue"],相等的變數數值內容.
57 liveuser 357
				#必填參數:
1 liveuser 358
				$conf["self::getEqualVar"]["conditionElement"]=$inputElementValue;#條件元素,要等於的元素內容.
359
				$conf["self::getEqualVar"]["compareElements"]=$conf["blackBoxElement"];#要比對的陣列變數內容.
360
				$getEqualVar=self::getEqualVar($conf["self::getEqualVar"]);
361
				unset($conf["self::getEqualVar"]);
362
 
363
				#如果檢查失敗
364
				if($getEqualVar["status"]==="false"){
365
 
366
					#設置執行不正常
367
					$result["status"]="false";
368
 
369
					#程式停止執行
370
					$result["error"]=$getEqualVar;
371
 
372
					#回傳結果
373
					return $result;
374
 
375
					}#if end
376
 
377
				#如果有找到
378
				if($getEqualVar["founded"]==="true"){
379
 
380
					#設置第 $inputElementKey+1 個參數有找到
381
					$result["founded"][$inputElementKey]="true";
382
 
383
					#設置找到的參數是在 $conf["blackBoxElement"] 參數的哪個key
384
					$result["key"][$inputElementKey]=$getEqualVar["equalVarName"];
385
 
386
					}#if end
387
 
388
				#反之	
389
				else{
390
 
391
					#設置第 $inputElementKey+1 個參數找不到
392
					$result["founded"][$inputElementKey]="false";
393
 
394
					}#else end
395
 
396
				}#foreach end
397
 
398
			}#if end
399
 
400
		#執行到這邊代表執行正常
401
		$result["status"]="true";
402
 
403
		#回傳結果
404
		return $result;
405
 
406
		}#function checkEquality end
407
 
408
	/*
57 liveuser 409
	#函式說明:
1 liveuser 410
	#取得符合特定字首與字尾的字串
57 liveuser 411
	#回傳結果:
1 liveuser 412
	#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
413
	#$result["function"],當前執行的函數名稱.
414
	#$result["error"],錯誤訊息陣列.
415
	#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
527 liveuser 416
	#$result["content"],符合條件的字串,去掉字首字尾後的結果.
417
	#$result["returnString"],爲符合字首字、尾條件的字串內容。
1 liveuser 418
	#$result["argu"],使用的參數.
419
	#必填參數:
420
	#$conf["checkString"],字串,要檢查的字串.
421
	$conf["checkString"]="";
422
	#可省略參數:
423
	#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
424
	#$conf["frontWord"]="";
425
	#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
426
	#$conf["tailWord"]="";
427
	#參考資料:
428
	#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
57 liveuser 429
	#備註:
430
	#無.
1 liveuser 431
	*/
432
	public static function getMeetConditionsString(&$conf){
433
 
434
		#初始化要回傳的結果
435
		$result=array();	
436
 
437
		#取得當前執行的函數名稱
438
		$result["function"]=__FUNCTION__;
439
 
440
		#如果 $conf 不為陣列
441
		if(gettype($conf)!="array"){
442
 
443
			#設置執行失敗
444
			$result["status"]="false";
445
 
446
			#設置執行錯誤訊息
447
			$result["error"][]="\$conf變數須為陣列形態";
448
 
449
			#如果傳入的參數為 null
450
			if($conf==null){
451
 
452
				#設置執行錯誤訊息
453
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
454
 
455
				}#if end
456
 
457
			#回傳結果
458
			return $result;
459
 
460
			}#if end
461
 
462
		#取得參數
463
		$result["argu"]=$conf;
464
 
465
		#檢查參數
57 liveuser 466
		#函式說明:
1 liveuser 467
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
468
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
469
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
470
		#$result["function"],當前執行的函式名稱.
471
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
472
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
473
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
474
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
475
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
476
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
477
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
478
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
479
		#必填寫的參數:
480
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
481
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
482
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
483
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("checkString");
484
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
485
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
486
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
487
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
488
		#可以省略的參數:
489
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
490
		#$conf["canBeEmptyString"]="false";
491
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
492
		#$conf["skipableVariableCanNotBeEmpty"]=array();
493
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
494
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("frontWord","tailWord");
495
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
496
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
497
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
498
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
499
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
500
		#$conf["arrayCountEqualCheck"][]=array();
501
		#參考資料來源:
502
		#array_keys=>http://php.net/manual/en/function.array-keys.php
503
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
504
		unset($conf["variableCheck::checkArguments"]);
505
 
548 liveuser 506
		#debug
507
		#var_dump($checkArguments);
508
 
1 liveuser 509
		# 如果 $checkArguments["status"] 為 "false"
510
		if($checkArguments["status"]=="false"){
511
 
512
			#設置執行錯誤的識別
513
			$result["status"]="false";
514
 
515
			#設置執行錯誤的訊息
516
			$result["error"]=$checkArguments;
517
 
518
			#回傳結果
519
			return $result;
520
 
521
			}#if end
522
 
523
		# 如果 $checkArguments["passed"] 為 "false"
524
		if($checkArguments["passed"]=="false"){
525
 
526
			#設置執行錯誤的識別
527
			$result["status"]="false";
528
 
529
			#設置執行錯誤的訊息
530
			$result["error"]=$checkArguments;
531
 
532
			#回傳結果
533
			return $result;
534
 
535
			}#if end
548 liveuser 536
 
848 liveuser 537
		#預設有找到一樣的字串
538
		$result["founded"]="true";
548 liveuser 539
 
848 liveuser 540
		#設置要回傳的字串
541
		$result["returnString"]=$conf["checkString"];
542
 
543
		#初始化移除字首字尾後的內容
544
		$result["content"]=$result["returnString"];
545
 
1 liveuser 546
		#將要檢查的字串分割成一個個字的陣列字串
848 liveuser 547
		$checkString=str_split($result["content"]);
1 liveuser 548
 
549
		#如果 $conf["frontWord"] 有設置
550
		if(isset($conf["frontWord"])){
551
 
552
			#將用來檢查字首應該要有什麼字串的字串分割成一個個字的陣列字串
553
			$frontWord=str_split($conf["frontWord"]);
554
 
555
			#如果要尋找的字首長度大於要檢查的字串長度
556
			if(count($frontWord)>count($checkString)){
557
 
269 liveuser 558
				#設置執行正常
559
				$result["status"]="true";
1 liveuser 560
 
561
				#設置錯誤訊息
682 liveuser 562
				$result["warning"][]="要尋找的字首(".$conf["frontWord"].")長度(".count($frontWord).")大於要檢查的字串(".$conf["checkString"].")長度(".count($checkString).")";
1 liveuser 563
 
269 liveuser 564
				#設置沒有找到一樣的字串
565
				$result["founded"]="false";
566
 
1 liveuser 567
				#回傳結果
568
				return $result;
569
 
570
				}#if end
571
 
572
			#依據條件字首的長度來依序檢查
573
			for($i=0;$i<count($frontWord);$i++){
574
 
848 liveuser 575
				#debug
576
				#var_dump(__FUNCTION__,__LINE__,$conf["checkString"],$checkString[$i],$conf["frontWord"],$frontWord[$i]);
577
 
1 liveuser 578
				#如果其中一個字不相符
579
				if($checkString[$i]!=$frontWord[$i]){
580
 
581
					#則設置結果失敗
582
					$result["status"]="true";
583
 
584
					#設置沒有找到一樣的字串
585
					$result["founded"]="false";
586
 
587
					#回傳結果
588
					return $result;
589
 
590
					}#if end
591
 
592
				}#for end
848 liveuser 593
 
594
			#剔除字首
595
			#函式說明:
596
			#將字串特定關鍵字與其前面的內容剔除
597
			#回傳結果:
598
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
599
			#$result["error"],錯誤訊息陣列.
600
			#$result["warning"],警告訊息鎮列.
601
			#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
602
			#$result["function"],當前執行的函數名稱.
603
			#$result["oriStr"],要處理的原始字串內容.
604
			#$result["content"],處理好的的字串內容.	
605
			#必填參數:
606
			#$conf["stringIn"],字串,要處理的字串.
607
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];
608
			#$conf["keyWord"],字串,特定字串.
609
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["frontWord"];
610
			#可省略參數:
611
			#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
612
			#$conf["recursive"]="true";
613
			#參考資料:
614
			#無.
615
			#備註:
616
			#無.
617
			$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
618
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
619
 
620
			#debug
621
			#var_dump($delStrBeforeKeyWord);
622
 
623
			# 如果執行出錯
624
			if($delStrBeforeKeyWord["status"]=="false"){
625
 
626
				#設置執行錯誤的識別
627
				$result["status"]="false";
628
 
629
				#設置執行錯誤的訊息
630
				$result["error"]=$delStrBeforeKeyWord;
631
 
632
				#回傳結果
633
				return $result;
634
 
635
				}#if end
1 liveuser 636
 
848 liveuser 637
			#剔除字首
638
 
639
			#函式說明:
640
			#將字串特定關鍵字與其前面的內容剔除
641
			#回傳結果:
642
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
643
			#$result["error"],錯誤訊息陣列.
644
			#$result["warning"],警告訊息鎮列.
645
			#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
646
			#$result["function"],當前執行的函數名稱.
647
			#$result["oriStr"],要處理的原始字串內容.
648
			#$result["content"],處理好的的字串內容.	
649
			#必填參數:
650
			#$conf["stringIn"],字串,要處理的字串.
651
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];
652
			#$conf["keyWord"],字串,特定字串.
653
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["frontWord"];
654
			#可省略參數:
655
			#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
656
			#$conf["recursive"]="true";
657
			#參考資料:
658
			#無.
659
			#備註:
660
			#無.
661
			$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
662
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
663
 
664
			#debug
665
			#var_dump($delStrBeforeKeyWord);
666
 
667
			# 如果執行出錯
668
			if($delStrBeforeKeyWord["status"]=="false"){
669
 
670
				#設置執行錯誤的識別
671
				$result["status"]="false";
672
 
673
				#設置執行錯誤的訊息
674
				$result["error"]=$delStrBeforeKeyWord;
675
 
676
				#回傳結果
677
				return $result;
678
 
679
				}#if end
680
 
681
			# 如果執行出錯
682
			if($delStrBeforeKeyWord["founded"]==="false"){
683
 
684
				#設置執行錯誤的識別
685
				$result["status"]="false";
686
 
687
				#設置執行錯誤的訊息
688
				$result["error"]=$delStrBeforeKeyWord;
689
 
690
				#回傳結果
691
				return $result;
692
 
693
				}#if end
694
 
695
			#取得處理好的內容
696
			$result["content"]=$delStrBeforeKeyWord["content"];
697
 
698
			#更新要檢查的字串,將其分割成一個個字的陣列字串
699
			$checkString=str_split($result["content"]);
700
 
1 liveuser 701
			}#if end
702
 
703
		#如果 $conf["tailWord"] 有設置
704
		if(isset($conf["tailWord"])){
705
 
548 liveuser 706
			#debug
707
			#var_dump($conf["tailWord"]);
708
 
1 liveuser 709
			#將用來檢查字尾應該要有什麼字串的字串分割成一個個字的陣列字串
710
			$tailWord=str_split($conf["tailWord"]);
711
 
712
			#如果要尋找的字尾長度大於要檢查的字串長度
713
			if(count($tailWord)>count($checkString)){
714
 
646 liveuser 715
				#設置執行正常
716
				$result["status"]="true";
1 liveuser 717
 
718
				#設置錯誤訊息
651 liveuser 719
				$result["warning"][]="要尋找的字尾(".$conf["tailWord"].")長度(".count($tailWord).")大於要檢查的字串(".$conf["checkString"].")長度(".count($checkString).")";
1 liveuser 720
 
646 liveuser 721
				#設置沒有找到一樣的字串
722
				$result["founded"]="false";
723
 
1 liveuser 724
				#回傳結果
725
				return $result;
726
 
727
				}#if end
728
 
729
			#依據條件字尾的長度來依序檢查
730
			for($i=0;$i<count($tailWord);$i++){
731
 
732
				#如果其中一個字不相符
733
				if($checkString[count($checkString)-1-$i]!=$tailWord[count($tailWord)-1-$i]){
734
 
735
					#則設置結果失敗
736
					$result["status"]="true";
737
 
738
					#設置沒有找到一樣的字串
739
					$result["founded"]="false";
740
 
741
					#回傳結果
742
					return $result;
743
 
744
					}#if end
745
 
746
				}#for end
747
 
848 liveuser 748
			#剔除字尾
749
 
750
			#函式說明:
751
			#將字串特定關鍵字與其後面的內容剔除
752
			#回傳結果:
753
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
754
			#$result["error"],錯誤訊息陣列.
755
			#$result["warning"],警告訊息鎮列.
756
			#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
757
			#$result["function"],當前執行的函數名稱.
758
			#$result["oriStr"],要處理的原始字串內容.
759
			#$result["content"],處理好的的字串內容.
760
			#$result["argu"],使用的參數.
761
			#必填參數:
762
			#$conf["stringIn"],字串,要處理的字串.
763
			$conf["stringProcess::delStrAfterKeyWord"]["stringIn"]=$result["content"];
764
			#$conf["keyWord"],字串,特定字串.
765
			$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$conf["tailWord"];
766
			#可省略參數:
767
			#$conf["deleteLastRepeatedOne"],字串,預設為"false";若為"true"則代表連續遇到同 $conf["keyWord"] 的內容,要將移除內容的起點往後移動到為後一個 $conf["keyWord"].
768
			#$conf["stringProcess::delStrAfterKeyWord"]["deleteLastRepeatedOne"]="true";
769
			#參考資料:
770
			#無.
771
			#備註:
772
			#無.
773
			$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
774
			unset($conf["stringProcess::delStrAfterKeyWord"]);
775
 
776
			#debug
777
			#var_dump(__LINE__,$delStrAfterKeyWord);
778
 
779
			# 如果執行出錯
780
			if($delStrAfterKeyWord["status"]==="false"){
781
 
782
				#設置執行錯誤的識別
783
				$result["status"]="false";
784
 
785
				#設置執行錯誤的訊息
786
				$result["error"]=$delStrAfterKeyWord;
787
 
788
				#回傳結果
789
				return $result;
790
 
791
				}#if end
792
 
793
			# 如果沒有符合的結果
794
			if($delStrAfterKeyWord["founded"]==="false"){
795
 
796
				#設置執行錯誤的識別
797
				$result["status"]="true";
798
 
799
				#設置執行錯誤的訊息
800
				$result["error"]=$delStrAfterKeyWord;
801
 
802
				#回傳結果
803
				return $result;
804
 
805
				}#if end
806
 
807
			#取得處理好的內容
808
			$result["content"]=$delStrAfterKeyWord["content"];
809
 
810
			#更新要檢查的字串,將其分割成一個個字的陣列字串
811
			$checkString=str_split($result["content"]);
812
 
1 liveuser 813
			}#if end
814
 
815
		#通過以上檢測,設置結果成功。
816
		$result["status"]="true";
817
 
818
		#回傳結果
819
		return $result;
820
 
821
		}#function getMeetConditionsString end
822
 
823
	/*
57 liveuser 824
	#函式說明:
1 liveuser 825
	#取得多個符合特定字首與字尾的字串.
57 liveuser 826
	#回傳結果:
1 liveuser 827
	#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
828
	#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
829
	#$result["function"],當前執行的函數名稱.
830
	#$result["returnString"],爲符合字首條件的字串陣列內容.
831
	#$result["foundedKey"],找到的內容位於原本的哪一個元素.
832
	#$result["argu"],使用的參數.
57 liveuser 833
	#必填參數:
205 liveuser 834
	#$conf["checkString"],字串陣列,要檢查的字串們.
1 liveuser 835
	$conf["checkString"]=array();#要檢查的字串陣列
836
	#可省略參數:
837
	#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
838
	#$conf["frontWord"]="";
839
	#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
840
	#$conf["tailWord"]="";
841
	#參考資料:
842
	#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
57 liveuser 843
	#備註:
844
	#無.
1 liveuser 845
	*/
846
	public static function getMeetConditionsStringMulti(&$conf){
847
 
848
		#初始化要回傳的陣列
849
		$result=array();
850
 
851
		#初始化要暫存的搜尋結果陣列
852
		$getMeetConditionsString=array();
853
 
854
		#取得當前執行的函數名稱
855
		$result["function"]=__FUNCTION__;
856
 
857
		#如果 $conf 不為陣列
858
		if(gettype($conf)!="array"){
859
 
860
			#設置執行失敗
861
			$result["status"]="false";
862
 
863
			#設置執行錯誤訊息
864
			$result["error"][]="\$conf變數須為陣列形態";
865
 
866
			#如果傳入的參數為 null
867
			if($conf==null){
868
 
869
				#設置執行錯誤訊息
870
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
871
 
872
				}#if end
873
 
874
			#回傳結果
875
			return $result;
876
 
877
			}#if end
878
 
879
		#記錄使用的參數
880
		$result["argu"]=$conf;
881
 
882
		#檢查參數
57 liveuser 883
		#函式說明:
1 liveuser 884
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
885
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
886
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
887
		#$result["function"],當前執行的函式名稱.
888
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
889
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
890
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
891
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
892
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
893
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
894
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
895
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
896
		#必填寫的參數:
897
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
898
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
899
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
900
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("checkString");
901
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
902
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array");
903
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
904
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
905
		#可以省略的參數:
906
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
907
		#$conf["canBeEmptyString"]="false";
908
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
909
		#$conf["skipableVariableCanNotBeEmpty"]=array();
910
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
911
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("frontWord","tailWord");
912
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
913
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
914
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
915
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
916
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
917
		#$conf["arrayCountEqualCheck"][]=array();
918
		#參考資料來源:
919
		#array_keys=>http://php.net/manual/en/function.array-keys.php
920
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
921
		unset($conf["variableCheck::checkArguments"]);
922
 
923
		# 如果 $checkArguments["status"] 為 "false"
924
		if($checkArguments["status"]=="false"){
925
 
926
			#設置執行錯誤的識別
927
			$result["status"]="false";
928
 
929
			#設置執行錯誤的訊息
930
			$result["error"]=$checkArguments;
931
 
932
			#回傳結果
933
			return $result;
934
 
935
			}#if end
936
 
937
		# 如果 $checkArguments["passed"] 為 "false"
938
		if($checkArguments["passed"]=="false"){
939
 
940
			#設置執行錯誤的識別
941
			$result["status"]="false";
942
 
943
			#設置執行錯誤的訊息
944
			$result["error"]=$checkArguments;
945
 
946
			#回傳結果
947
			return $result;
948
 
949
			}#if end
950
 
951
		#針對有幾個字串要檢查,就執行幾次
952
		for($i=0;$i<count($conf["checkString"]);$i++){
953
 
57 liveuser 954
			#函式說明:
1 liveuser 955
			#取得符合特定字首與字尾的字串
57 liveuser 956
			#回傳結果:
1 liveuser 957
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
958
			#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
959
			#$result["function"],當前執行的函數名稱.
960
			#$result["error"],錯誤訊息陣列.
961
			#$result["returnString"],爲符合字首條件的字串內容。
962
			#必填參數:
963
			#$conf["checkString"],字串,要檢查的字串.
964
			$conf["search::getMeetConditionsString"]["checkString"]=$conf["checkString"][$i];
965
			#可省略參數:
966
 
967
			#如果 $conf["frontWord"] 存在
968
			if(isset($conf["frontWord"])){
969
 
970
				#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
971
				$conf["search::getMeetConditionsString"]["frontWord"]=$conf["frontWord"];
972
 
973
				}#if end
974
 
975
			#如果 $conf["tailWord"] 存在
976
			if(isset($conf["tailWord"])){
977
 
978
				#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
979
				$conf["search::getMeetConditionsString"]["tailWord"]=$conf["tailWord"];
980
 
981
				}#if end
982
 
983
			#參考資料:
984
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
985
			$getMeetConditionsString[]=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
986
			unset($conf["search::getMeetConditionsString"]);
987
 
988
			}#for end
989
 
990
		#初始化沒有找到關鍵字
991
		$result["founded"]="false";
992
 
993
		#將符合條件的結果陣列取出
994
		for($i=0;$i<count($getMeetConditionsString);$i++){
995
 
996
			#如果尋找符合的字串失敗
997
			if($getMeetConditionsString[$i]["status"]=="false"){
998
 
999
				#如果錯誤是 "要尋找的字首長度大於要檢查的字串長度" 或 "要尋找的字尾長度大於要檢查的字串長度"
1000
				if($getMeetConditionsString[$i]["error"][0]=="要尋找的字首長度大於要檢查的字串長度" || $getMeetConditionsString[$i]["error"][0]=="要尋找的字尾長度大於要檢查的字串長度"){
1001
 
1002
					#跳過執行正常,但不是我們要的結果
1003
					continue;
1004
 
1005
					}#if end					
1006
 
1007
				#設置執行錯誤的識別
1008
				$result["status"]="false";
1009
 
1010
				#設置執行錯誤的訊息
1011
				$result["error"]=$getMeetConditionsString[$i];
1012
 
1013
				#回傳結果
1014
				return $result;
1015
 
1016
				}#if end
1017
 
1018
			#如果有符合的字串
1019
			if($getMeetConditionsString[$i]["founded"]=="true"){
1020
 
1021
				#將符合條件的字串回傳
1022
				$result["returnString"][]=$getMeetConditionsString[$i]["returnString"];
1023
 
1024
				#找到的內容位於原本的哪一個元素
1025
				$result["foundedKey"][]=$i;
1026
 
1027
				#設置有找到內容
1028
				$result["founded"]="true";
1029
 
1030
				}#if end
1031
 
1032
			}#for end
1033
 
1034
		#通過以上檢測,將執行狀態結果設爲 true
1035
		$result["status"]="true";
1036
 
1037
		#回傳結果
1038
		return $result;
1039
 
1040
		}#function getMeetConditionsStringMulti end
646 liveuser 1041
 
1042
	/*
1043
	#函式說明:
1044
	#取得符合多個特定字首與字尾的字串
1045
	#回傳結果:
1046
	#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
1047
	#$result["function"],當前執行的函數名稱.
1048
	#$result["error"],錯誤訊息陣列.
1049
	#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
1050
	#$result["content"],符合條件的字串,去掉字首字尾後的結果.
835 liveuser 1051
	#$result["returnString"],爲符合字首字、尾條件的字串內容.
1052
	#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.
646 liveuser 1053
	#$result["argu"],使用的參數.
1054
	#必填參數:
1055
	#$conf["checkString"],字串,要檢查的字串.
1056
	$conf["checkString"]="";
841 liveuser 1057
	#$conf["keyWord"],字串陣列,用來檢查字首、字尾應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.
848 liveuser 1058
	$conf["keyWord"]=array(array("front"=>"word","tail"=>"word"));
646 liveuser 1059
	#可省略參數:
1060
	#無.
1061
	#參考資料:
1062
	#無.
1063
	#備註:
1064
	#無.
1065
	*/
1066
	public static function getMeetMultiConditionsString(&$conf){
1067
 
1068
		#初始化要回傳的陣列
1069
		$result=array();
1 liveuser 1070
 
646 liveuser 1071
		#初始化要暫存的搜尋結果陣列
1072
		$getMeetConditionsString=array();
1073
 
1074
		#取得當前執行的函數名稱
1075
		$result["function"]=__FUNCTION__;
1076
 
1077
		#如果 $conf 不為陣列
1078
		if(gettype($conf)!="array"){
1079
 
1080
			#設置執行失敗
1081
			$result["status"]="false";
1082
 
1083
			#設置執行錯誤訊息
1084
			$result["error"][]="\$conf變數須為陣列形態";
1085
 
1086
			#如果傳入的參數為 null
1087
			if($conf==null){
1088
 
1089
				#設置執行錯誤訊息
1090
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1091
 
1092
				}#if end
1093
 
1094
			#回傳結果
1095
			return $result;
1096
 
1097
			}#if end
1098
 
1099
		#記錄使用的參數
1100
		$result["argu"]=$conf;
1101
 
1102
		#檢查參數
1103
		#函式說明:
1104
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1105
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1106
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1107
		#$result["function"],當前執行的函式名稱.
1108
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1109
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1110
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1111
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
1112
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
1113
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
1114
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
1115
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
1116
		#必填寫的參數:
1117
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1118
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1119
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1120
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("checkString","keyWord");
1121
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
1122
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
1123
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1124
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1125
		#可以省略的參數:
1126
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1127
		#$conf["canBeEmptyString"]="false";
1128
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
1129
		#$conf["skipableVariableCanNotBeEmpty"]=array();
1130
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1131
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("keyWord");
1132
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1133
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
1134
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1135
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1136
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1137
		#$conf["arrayCountEqualCheck"][]=array();
1138
		#參考資料來源:
1139
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1140
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1141
		unset($conf["variableCheck::checkArguments"]);
1142
 
1143
		# 如果 $checkArguments["status"] 為 "false"
848 liveuser 1144
		if($checkArguments["status"]==="false"){
646 liveuser 1145
 
1146
			#設置執行錯誤的識別
1147
			$result["status"]="false";
1148
 
1149
			#設置執行錯誤的訊息
1150
			$result["error"]=$checkArguments;
1151
 
1152
			#回傳結果
1153
			return $result;
1154
 
1155
			}#if end
1156
 
1157
		# 如果 $checkArguments["passed"] 為 "false"
848 liveuser 1158
		if($checkArguments["passed"]==="false"){
646 liveuser 1159
 
1160
			#設置執行錯誤的識別
1161
			$result["status"]="false";
1162
 
1163
			#設置執行錯誤的訊息
1164
			$result["error"]=$checkArguments;
1165
 
1166
			#回傳結果
1167
			return $result;
1168
 
1169
			}#if end
1170
 
1171
		#針對每個可能的條件組合
1172
		foreach($conf["keyWord"] as $keyWords){
1173
 
1174
			#檢查 $keyWords 是否有符合的元素
1175
			#函式說明:
1176
			#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
1177
			#回傳結果:
1178
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1179
			#$result["error"],執行不正常結束的錯訊息陣列.
1180
			#$result["simpleError"],簡單表示的錯誤訊息.
1181
			#$result["function"],當前執行的函式名稱.
1182
			#$result["argu"],設置給予的參數.
1183
			#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1184
			#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1185
			#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1186
			#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
1187
			#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
1188
			#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
1189
			#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
1190
			#$result["notNeedVar"],字串陣列,多餘的參數名稱.
1191
			#必填參數:
1192
			#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1193
			$conf["variableCheck::checkArguments"]["varInput"]=&$keyWords;
1194
			#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1195
			$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1196
			#可省略參數:
1197
			#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1198
			#$conf["mustBeFilledVariableName"]=array();
1199
			#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
1200
			#$conf["mustBeFilledVariableType"]=array();
1201
			#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1202
			#$conf["canBeEmptyString"]="false";
1203
			#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
1204
			#$conf["canNotBeEmpty"]=array();
1205
			#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
1206
			#$conf["canBeEmpty"]=array();
1207
			#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
1208
			#$conf["skipableVariableCanNotBeEmpty"]=array();
1209
			#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1210
			$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("front","tail");
1211
			#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1212
			$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
1213
			#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1214
			#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("");
1215
			#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
1216
			$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";
1217
			#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
1218
			$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";
1219
			#$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".
1220
			$conf["variableCheck::checkArguments"]["disallowAllSkipableVarNotExist"]="true";
1221
			#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1222
			#$conf["arrayCountEqualCheck"][]=array();
1223
			#參考資料:
1224
			#array_keys=>http://php.net/manual/en/function.array-keys.php
1225
			#備註:
1226
			#無.
1227
			$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1228
			unset($conf["variableCheck::checkArguments"]);
1229
 
1230
			# 如果 $checkArguments["status"] 為 "false"
848 liveuser 1231
			if($checkArguments["status"]==="false"){
646 liveuser 1232
 
1233
				#設置執行錯誤的識別
1234
				$result["status"]="false";
1235
 
1236
				#設置執行錯誤的訊息
1237
				$result["error"]=$checkArguments;
1238
 
1239
				#回傳結果
1240
				return $result;
1241
 
1242
				}#if end
1243
 
1244
			# 如果 $checkArguments["passed"] 為 "false"
848 liveuser 1245
			if($checkArguments["passed"]==="false"){
646 liveuser 1246
 
1247
				#設置執行錯誤的識別
1248
				$result["status"]="false";
1249
 
1250
				#設置執行錯誤的訊息
1251
				$result["error"]=$checkArguments;
1252
 
1253
				#回傳結果
1254
				return $result;
1255
 
1256
				}#if end
1257
 
1258
			#函式說明:
1259
			#取得符合特定字首與字尾的字串
1260
			#回傳結果:
1261
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
1262
			#$result["function"],當前執行的函數名稱.
1263
			#$result["error"],錯誤訊息陣列.
1264
			#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
1265
			#$result["content"],符合條件的字串,去掉字首字尾後的結果.
1266
			#$result["returnString"],爲符合字首字、尾條件的字串內容。
1267
			#$result["argu"],使用的參數.
1268
			#必填參數:
1269
			#$conf["checkString"],字串,要檢查的字串.
1270
			$conf["search::getMeetConditionsString"]["checkString"]=$conf["checkString"];
1271
			#可省略參數:
1272
 
1273
			#如果有設置開頭關鍵字
1274
			if(isset($keyWords["front"])){
1275
 
1276
				#$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
1277
				$conf["search::getMeetConditionsString"]["frontWord"]=$keyWords["front"];
1278
 
1279
				}#if end
1280
 
1281
			#如果有設置結尾關鍵字
1282
			if(isset($keyWords["tail"])){
1283
 
1284
				#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
1285
				$conf["search::getMeetConditionsString"]["tailWord"]=$keyWords["tail"];
1286
 
1287
				}#if end
1288
 
1289
			#參考資料:
1290
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
1291
			#備註:
1292
			#無.
1293
			$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
1294
			unset($conf["search::getMeetConditionsString"]);
1295
 
1296
			#如果執行失敗
1297
			if($getMeetConditionsString["status"]==="false"){
1298
 
1299
				#設置執行錯誤的識別
1300
				$result["status"]="false";
1301
 
1302
				#設置執行錯誤的訊息
1303
				$result["error"]=$getMeetConditionsString;
1304
 
1305
				#回傳結果
1306
				return $result;
1307
 
1308
				}#if end
1309
 
1310
			#如果沒有符合條件
1311
			if($getMeetConditionsString["founded"]==="false"){
1312
 
1313
				#換下一個條件
1314
				continue;
1315
 
1316
				}#if end
1317
 
1318
			#設置有找到符合字首條件的結果
1319
			$result["founded"]=$getMeetConditionsString["founded"];	
1320
 
1321
			#設置符合條件的字串,去掉字首字尾後的結果.
1322
			$result["content"]=$getMeetConditionsString["content"];
1323
 
835 liveuser 1324
			#設置符合字首字尾條件的字串內容。
646 liveuser 1325
			$result["returnString"]=$getMeetConditionsString["returnString"];
1326
 
835 liveuser 1327
			#設置符合的關鍵字條件
1328
			$result["meetConditions"]=$keyWords;
1329
 
648 liveuser 1330
			#設置執行正常
1331
			$result["status"]="true";
1332
 
646 liveuser 1333
			#回傳結果
1334
			return $result;
1335
 
1336
			}#foreach end
1337
 
1338
		#設置沒有找到符合字首條件的結果
1339
		$result["founded"]="false";
1340
 
1341
		#設置執行正常
1342
		$result["status"]="true";
1343
 
1344
		#回傳結果
1345
		return $result;
1346
 
1347
		}#function getMeetMultiConditionsString end
1348
 
1 liveuser 1349
	/*
57 liveuser 1350
	#函式說明:
835 liveuser 1351
	#取得符合多個特定字首與字尾之一的字串們
1352
	#回傳結果:
1353
	#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
1354
	#$result["function"],當前執行的函數名稱.
1355
	#$result["error"],錯誤訊息陣列.
1356
	#$result["found"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
1357
	#$result["content"],陣列,符合條件的字串,去掉字首字尾後的結果.每個元素包含三個key,分別為"content"代表符合條件後,剔除字首字尾後的內容;"oriStr"代表符合條件的字串內容;"meetConditions"代表符合的字首字尾條件.
1358
	#$result["argu"],使用的參數.
1359
	#必填參數:
1360
	#$conf["checkString"],陣列字串,要檢查的陣列字串.
1361
	$conf["checkString"]=array("");
1362
	#$conf["keyWord"],字串陣列,用來檢查字首、字首應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.
1363
	#$conf["keyWord"]=array(array("front"=>"word","tail"=>"word"));
1364
	#可省略參數:
1365
	#無.
1366
	#參考資料:
1367
	#無.
1368
	#備註:
1369
	#無.
1370
	*/
1371
	public static function getMeetMultiConditionsStrings(&$conf){
1372
 
1373
		#初始化要回傳的陣列
1374
		$result=array();
1375
 
1376
		#初始化要暫存的搜尋結果陣列
1377
		$getMeetConditionsString=array();
1378
 
1379
		#取得當前執行的函數名稱
1380
		$result["function"]=__FUNCTION__;
1381
 
1382
		#如果 $conf 不為陣列
1383
		if(gettype($conf)!="array"){
1384
 
1385
			#設置執行失敗
1386
			$result["status"]="false";
1387
 
1388
			#設置執行錯誤訊息
1389
			$result["error"][]="\$conf變數須為陣列形態";
1390
 
1391
			#如果傳入的參數為 null
1392
			if($conf===null){
1393
 
1394
				#設置執行錯誤訊息
1395
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1396
 
1397
				}#if end
1398
 
1399
			#回傳結果
1400
			return $result;
1401
 
1402
			}#if end
1403
 
1404
		#記錄使用的參數
1405
		$result["argu"]=$conf;
1406
 
1407
		#檢查參數
1408
		#函式說明:
1409
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1410
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1411
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1412
		#$result["function"],當前執行的函式名稱.
1413
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1414
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1415
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1416
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
1417
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
1418
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
1419
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
1420
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
1421
		#必填寫的參數:
1422
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1423
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1424
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1425
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("checkString","keyWord");
1426
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
1427
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","array");
1428
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1429
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1430
		#可以省略的參數:
1431
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1432
		#$conf["canBeEmptyString"]="false";
1433
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
1434
		#$conf["skipableVariableCanNotBeEmpty"]=array();
1435
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1436
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("keyWord");
1437
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1438
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array");
1439
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1440
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1441
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1442
		#$conf["arrayCountEqualCheck"][]=array();
1443
		#參考資料來源:
1444
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1445
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1446
		unset($conf["variableCheck::checkArguments"]);
1447
 
1448
		# 如果 $checkArguments["status"] 為 "false"
1449
		if($checkArguments["status"]==="false"){
1450
 
1451
			#設置執行錯誤的識別
1452
			$result["status"]="false";
1453
 
1454
			#設置執行錯誤的訊息
1455
			$result["error"]=$checkArguments;
1456
 
1457
			#回傳結果
1458
			return $result;
1459
 
1460
			}#if end
1461
 
1462
		# 如果 $checkArguments["passed"] 為 "false"
1463
		if($checkArguments["passed"]==="false"){
1464
 
1465
			#設置執行錯誤的識別
1466
			$result["status"]="false";
1467
 
1468
			#設置執行錯誤的訊息
1469
			$result["error"]=$checkArguments;
1470
 
1471
			#回傳結果
1472
			return $result;
1473
 
1474
			}#if end
1475
 
1476
		#初始化有找到符合條件的結果陣列
1477
		$result["content"]=array();
1478
 
1479
		#針對每個陣列字串
1480
		foreach($conf["checkString"] as $lineStr){
1481
 
1482
			#函式說明:
1483
			#取得符合多個特定字首與字尾的字串
1484
			#回傳結果:
1485
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
1486
			#$result["function"],當前執行的函數名稱.
1487
			#$result["error"],錯誤訊息陣列.
1488
			#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
1489
			#$result["content"],符合條件的字串,去掉字首字尾後的結果.
1490
			#$result["returnString"],爲符合字首字、尾條件的字串內容.
1491
			#$result["meetConditions"],為符合的條件,會是$conf["keyWord"]中的其中一個元素.
1492
			#$result["argu"],使用的參數.
1493
			#必填參數:
1494
			#$conf["checkString"],字串,要檢查的字串.
1495
			$conf["search::getMeetMultiConditionsString"]["checkString"]=$lineStr;
1496
			#$conf["keyWord"],字串陣列,用來檢查字首、字首應該要有哪些字串之一,每個元素代表一個可能的條件,key為front者代表開頭的關鍵字,key為tail為代表結尾的官關鍵字.
1497
			$conf["search::getMeetMultiConditionsString"]["keyWord"]=$conf["keyWord"];
1498
			#可省略參數:
1499
			#無.
1500
			#參考資料:
1501
			#無.
1502
			#備註:
1503
			#無.
1504
			$getMeetMultiConditionsString=search::getMeetMultiConditionsString($conf["search::getMeetMultiConditionsString"]);
1505
			unset($conf["search::getMeetMultiConditionsString"]);
1506
 
1507
			# 如果執行出錯
1508
			if($getMeetMultiConditionsString["status"]==="false"){
1509
 
1510
				#設置執行錯誤的識別
1511
				$result["status"]="false";
1512
 
1513
				#設置執行錯誤的訊息
1514
				$result["error"]=$getMeetMultiConditionsString;
1515
 
1516
				#回傳結果
1517
				return $result;
1518
 
1519
				}#if end
1520
 
1521
			#如果有找到
1522
			if($getMeetMultiConditionsString["founded"]==="true"){
1523
 
1524
				#設置結果元素
1525
				$result["content"][]=array("content"=>$getMeetMultiConditionsString["content"],"oriStr"=>$getMeetMultiConditionsString["returnString"],"meetConditions"=>$getMeetMultiConditionsString["meetConditions"]);
1526
 
1527
				}#if end
1528
 
1529
			}#foreach end
1530
 
1531
		#預設沒有找到符合條件內容的識別
1532
		$result["found"]="false";
1533
 
1534
		#如果有找到符合條件的結果
1535
		if(count($result["content"])>0){
1536
 
1537
			#設置有找到符合條件內容的識別
1538
			$result["found"]="true";
1539
 
1540
			}#if end
1541
 
1542
		#設置執行正常
1543
		$result["status"]="true";
1544
 
1545
		#回傳結果
1546
		return $result;
1547
 
1548
		}#function getMeetMultiConditionsStrings end
1549
 
1550
	/*
1551
	#函式說明:
1 liveuser 1552
	#檢查字串裡面有無指定的關鍵字
57 liveuser 1553
	#回傳結果:
1 liveuser 1554
	#$result["status"],"true"代表執行成功,"false"代表執行失敗。
1555
	#$result["error"],錯誤訊息
1556
	#$result["function"],當前執行的函數名稱.
1557
	#$result["argu"],使用的參數.
1558
	#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
1559
	#$result["keyWordCount"],找到的關鍵字數量.
57 liveuser 1560
	#必填參數:
205 liveuser 1561
	#$conf["keyWord"],字串,想要搜尋的關鍵字.
1562
	$conf["keyWord"]="";
1563
	#$conf["string"],字串,要被搜尋的字串內容
1564
	$conf["string"]="";
57 liveuser 1565
	#可省略參數:
205 liveuser 1566
	#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
1567
	#$conf["completeEqual"]="true";
206 liveuser 1568
	#參考資料:
1569
	#無.
57 liveuser 1570
	#備註:
1571
	#無.
1 liveuser 1572
	*/
1573
	public static function findKeyWord(&$conf){
1574
 
1575
		#初始化要回傳的變數
1576
		$result=array();
1577
 
1578
		#設置當前執行的函數
1579
		$result["function"]=__FUNCTION__;		
1580
 
1581
		#如果 $conf 不為陣列
1582
		if(gettype($conf)!="array"){
1583
 
1584
			#設置執行失敗
1585
			$result["status"]="false";
1586
 
1587
			#設置執行錯誤訊息
1588
			$result["error"][]="\$conf變數須為陣列形態";
1589
 
1590
			#如果傳入的參數為 null
1591
			if($conf==null){
1592
 
1593
				#設置執行錯誤訊息
1594
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1595
 
1596
				}#if end
1597
 
1598
			#回傳結果
1599
			return $result;
1600
 
1601
			}#if end			
1602
 
1603
		#取得參數
1604
		$result["argu"]=$conf;
1605
 
1606
		#檢查參數
57 liveuser 1607
		#函式說明:
1 liveuser 1608
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1609
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1610
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1611
		#$result["function"],當前執行的函式名稱.
1612
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1613
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1614
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1615
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
1616
		#必填寫的參數:
1617
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1618
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1619
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1620
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("keyWord","string");
1621
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1622
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string");
1623
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1624
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1625
		#可以省略的參數:
1626
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1627
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="true";
1628
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1629
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");
1630
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1631
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");
1632
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1633
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");
1634
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);			
1635
		unset($conf["variableCheck.checkArguments"]);
1636
 
1637
		#如果檢查失敗
1638
		if($checkResult["status"]=="false"){
1639
 
1640
			#設置執行不正常
1641
			$result["status"]="false";
1642
 
1643
			#程式停止執行
1644
			$result["error"]=$checkResult;
1645
 
1646
			#回傳結果
1647
			return $result;
1648
 
1649
			}#if end
1650
 
1651
		#如果檢查不通過
1652
		if($checkResult["passed"]=="false"){
1653
 
1654
			#設置執行不正常
1655
			$result["status"]="false";
1656
 
1657
			#程式停止執行
1658
			$result["error"]=$checkResult;
1659
 
1660
			#回傳結果
1661
			return $result;
1662
 
1663
			}#if end
1664
 
1665
		#如果是空字串
1666
		if($conf["string"]===""){
1667
 
1668
			$keyWordCount=0;
1669
 
1670
			}#if end
1671
 
1672
		#反之
1673
		else{
1674
			#取得目標字串裡符合關鍵字的數目	
1675
			$keyWordCount = substr_count($conf["string"],$conf["keyWord"]); 
1676
 
1677
			}#else end
1678
 
1679
		#儲存關鍵字的數量
1680
		$result["keyWordCount"]=$keyWordCount;
1681
 
1682
		#如果有關鍵字在裡面
1683
		if($keyWordCount>0){
1684
 
1685
			#如果 $conf["completeEqual"] 為 "true"
1686
			if($conf["completeEqual"]=="true"){
1687
 
57 liveuser 1688
				#函式說明:
1 liveuser 1689
				#處理字串避免網頁出錯
57 liveuser 1690
				#回傳結果:
1 liveuser 1691
				#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1692
				#$result["function"],當前執行的函數.
1693
				#$result["content"],爲處理好的字串.
1694
				#$result["error"],錯誤訊息陣列.
57 liveuser 1695
				#必填參數:
1 liveuser 1696
				$conf["stringProcess"]["correctCharacter"]["stringIn"]=$conf["string"];#爲要處理的字串
1697
				#可省略的參數:
1698
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array($conf["keyWord"]);#爲被選擇要處理的字串/字元,須爲陣列值。
1699
					#若不設定則預設爲要將這些字串作替換("<" ">" ";" "=" "//" "'" "$" "%" "&" "|" "#" "/*" "*\/")。
1700
				$conf["stringProcess"]["correctCharacter"]["changeTo"]=array("");#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
1701
				$processedString=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
1702
				unset($conf["stringProcess"]["correctCharacter"]);
1703
 
1704
				#如果處理字串失敗
1705
				if($processedString["status"]=="false"){
1706
 
1707
					#設置執行不正常
1708
					$result["status"]="false";
1709
 
1710
					#程式停止執行
1711
					$result["error"]=$processedString;
1712
 
1713
					#回傳結果
1714
					return $result;
1715
 
1716
					}#if end			
1717
 
1718
				#如果拿掉關鍵字後,仍然有剩餘的容
1719
				if($processedString["content"]!=""){
1720
 
1721
					#代表並不是完全符合
1722
					#設置執行成功
1723
					$result["status"]="true";
1724
 
1725
					#設置沒有找到完全符合的關鍵字
1726
					$result["founded"]="false";
1727
 
1728
					#回傳結果
1729
					return $result;
1730
 
1731
					}#if end
1732
 
1733
				}#if end
1734
 
1735
			#設置執行成功
1736
			$result["status"]="true";
1737
 
1738
			#設置有找到關鍵字
1739
			$result["founded"]="true";
1740
 
1741
			#回傳結果
1742
			return $result;
1743
 
1744
			}#if end
1745
 
1746
		#反之
1747
		else{
1748
 
1749
			#設置執行成功
1750
			$result["status"]="true";
1751
 
1752
			#設置沒有找到關鍵字
1753
			$result["founded"]="false";
1754
 
1755
			#回傳結果
1756
			return $result;
1757
 
1758
			}#else end
1759
 
1760
		}#function findKeyWord end
1761
 
1762
	/*	
57 liveuser 1763
	#函式說明:
1 liveuser 1764
	#檢查一個字串裡面是否有多個關鍵字
57 liveuser 1765
	#回傳結果:
1 liveuser 1766
	#$result["status"],"true"代表執行成功,"false"代表執行失敗.
1767
	#$result["error"],錯誤訊息.
1768
	#$result["function"],當前執行的函數名稱.
1769
	#$result["founded"],是否有找到的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.
1770
	#$result["foundedKeyWords"],找到的關鍵字.
1771
	#$result["foundedAll"],是否有找到全部的關鍵字,"true"代表有;"false"代表沒有.
1772
	#$result["argu"],使用的參數.
57 liveuser 1773
	#必填參數:
205 liveuser 1774
	#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.
1775
	$conf["keyWords"]=array("");
1776
	#$conf["string"],字串,要被搜尋的字串內容.
1777
	$conf["string"]="";
57 liveuser 1778
	#可省略參數:
205 liveuser 1779
	#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合.
1780
	#$conf["completeEqual"]="true";
1781
	#參考資料:
1782
	#無.
57 liveuser 1783
	#備註:
1784
	#無.
1 liveuser 1785
	*/
205 liveuser 1786
	public static function findManyKeyWords(&$conf){
1 liveuser 1787
 
1788
		#初始化要回傳的變數
1789
		$result=array();
1790
 
1791
		#設置當前執行的函數
1792
		$result["function"]=__FUNCTION__;		
1793
 
1794
		#如果 $conf 不為陣列
1795
		if(gettype($conf)!="array"){
1796
 
1797
			#設置執行失敗
1798
			$result["status"]="false";
1799
 
1800
			#設置執行錯誤訊息
1801
			$result["error"][]="\$conf變數須為陣列形態";
1802
 
1803
			#如果傳入的參數為 null
1804
			if($conf==null){
1805
 
1806
				#設置執行錯誤訊息
1807
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1808
 
1809
				}#if end
1810
 
1811
			#回傳結果
1812
			return $result;
1813
 
1814
			}#if end			
1815
 
1816
		#取得使用的參數
1817
		$result["argu"]=$conf;
1818
 
1819
		#檢查參數
57 liveuser 1820
		#函式說明:
1 liveuser 1821
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1822
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1823
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1824
		#$result["function"],當前執行的函式名稱.
1825
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1826
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1827
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1828
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
1829
		#必填寫的參數:
1830
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1831
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1832
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1833
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("keyWords","string");
1834
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1835
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","string");
1836
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1837
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1838
		#可以省略的參數:
1839
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1840
		#$conf["canBeEmptyString"]="false";
1841
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1842
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");
1843
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1844
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");
1845
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1846
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");
1847
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);			
1848
		unset($conf["variableCheck.checkArguments"]);
1849
 
1850
		#如果檢查失敗
1851
		if($checkResult["status"]=="false"){
1852
 
1853
			#設置執行不正常
1854
			$result["status"]="false";
1855
 
1856
			#程式停止執行
1857
			$result["error"]=$checkResult;
1858
 
1859
			#回傳結果
1860
			return $result;
1861
 
1862
			}#if end
1863
 
1864
		#如果檢查不通過
1865
		if($checkResult["passed"]=="false"){
1866
 
1867
			#設置執行不正常
1868
			$result["status"]="false";
1869
 
1870
			#程式停止執行
1871
			$result["error"]=$checkResult;
1872
 
1873
			#回傳結果
1874
			return $result;
1875
 
1876
			}#if end
1877
 
1878
		#預設沒有找到全數符合的關鍵字
1879
		$result["founded"]="false";	
1880
 
1881
		#針對每個keyWord
1882
		foreach($conf["keyWords"] as $keyWord){
1883
 
57 liveuser 1884
			#函式說明:
1 liveuser 1885
			#檢查字串裡面有無指定的關鍵字
57 liveuser 1886
			#回傳結果:
1 liveuser 1887
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
1888
			#$result["error"],錯誤訊息
1889
			#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
57 liveuser 1890
			#必填參數:
1 liveuser 1891
			$conf["search"]["findKeyWord"]["keyWord"]=$keyWord;#想要搜尋的關鍵字
1892
			$conf["search"]["findKeyWord"]["string"]=$conf["string"];#要被搜尋的字串內容
1893
 
1894
			#如果 $conf["completeEqual"] 有設置
1895
			if(isset($conf["completeEqual"])){
1896
 
1897
				#如果 $conf["completeEqual"] 等於 "true"
1898
				if($conf["completeEqual"]=="true"){
1899
 
1900
					$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
1901
 
1902
					}#if end
1903
 
1904
				}#if end
1905
 
1906
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
1907
			unset($conf["search"]["findKeyWord"]);
1908
 
1909
			#如果尋找關鍵字出錯
1910
			if($searchResult["status"]=="false"){
1911
 
1912
				#設置執行不正常
1913
				$result["status"]="false";
1914
 
1915
				#程式停止執行
1916
				$result["error"]=$searchResult;
1917
 
1918
				#回傳結果
1919
				return $result;
1920
 
1921
				}#if end	
1922
 
1923
			#如果有找到關鍵字
1924
			if($searchResult["founded"]=="true"){
1925
 
1926
				#設置執行成功
1927
				$result["status"]="true";
1928
 
1929
				#設置有找到其中一個符合的關鍵字
1930
				$result["founded"]="true";
1931
 
1932
				#儲存找到的keyword
1933
				$result["foundedKeyWords"][]=$keyWord;
1934
 
1935
				#回傳結果
1936
				#return $result;
1937
 
1938
				}#if end
1939
 
1940
			}#foreach end
1941
 
1942
		#設置沒有找到所有的關鍵字
1943
		$result["foundedAll"]="false";
1944
 
1945
		#如果有找到的關鍵字
1946
		if(isset($result["foundedKeyWords"]))
1947
		{
1948
			#設置有找到所有的關鍵字
1949
			$result["foundedAll"]="true";	
1950
 
1951
			#如果有關鍵字沒找到
1952
			if(count($result["foundedKeyWords"])!==count($conf["keyWords"])){
1953
 
1954
				#設置沒有找到所有的關鍵字
1955
				$result["foundedAll"]="false";
1956
 
1957
				}#if end	
1958
		}
1959
 
1960
		#設置執行成功
1961
		$result["status"]="true";
1962
 
1963
		#回傳結果
1964
		return $result;
1965
 
1966
		}#function findManyKeyWords end
1967
 
1968
	/*	
57 liveuser 1969
	#函式說明:
1 liveuser 1970
	#檢查多個字串中的每個字串是否有多個關鍵字
57 liveuser 1971
	#回傳結果:
1 liveuser 1972
	#$result["status"],整體來說,執行是否成功,"true"代表執行成功,"false"代表執行失敗。
1973
	#$result["function"],當前執行的函數名稱.
1974
	#$result["error"],錯誤訊息.
1975
	#$result["argu"],使用的參數.
253 liveuser 1976
	#$result["foundedTrueKey"],結果為"true"的被搜尋元素key陣列,與其數值內容.
646 liveuser 1977
	#$result["foundedKeyWords"],找到的關鍵字陣列.
1978
	#$result["foundedFalseKey"],結果為"false"的被搜尋元素key陣列,與其數值內容.
1 liveuser 1979
	#$result["foundedTrueKeyWords"],二維陣列,各個字串有找到的關鍵字陣列.
1980
	#$result["foundedAll"],是否每個關鍵字都有找到,"true"代表每個都有找到,"false"代表沒有每個都找到.
728 liveuser 1981
	#$result["keyWordsIncludeStr"],陣列,儲存有找到關鍵字的來源的索引(sourceIndex)與其內容(sourceVal)跟找到的關鍵字項目陣列(KeyWords).
57 liveuser 1982
	#必填參數:
205 liveuser 1983
	#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.
1984
	$conf["keyWords"]=array("");
1985
	#$conf["stringArray"],字串陣列,要被搜尋的字串內容陣列.
1986
	$conf["stringArray"]=array("");
57 liveuser 1987
	#可省略參數:
205 liveuser 1988
	#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為"false"不需要完全符合.
1989
	#$conf["completeEqual"]="true";
207 liveuser 1990
	#參考資料:
1991
	#無.
57 liveuser 1992
	#備註:
1993
	#無.
1 liveuser 1994
	*/
1995
	public static function findManyKeyWordsFromManyString(&$conf){
1996
 
1997
		#初始化要回傳的變數
1998
		$result=array();
1999
 
2000
		#設置當前執行的函數
2001
		$result["function"]=__FUNCTION__;	
744 liveuser 2002
 
1 liveuser 2003
		#如果 $conf 不為陣列
2004
		if(gettype($conf)!="array"){
2005
 
2006
			#設置執行失敗
2007
			$result["status"]="false";
2008
 
2009
			#設置執行錯誤訊息
2010
			$result["error"][]="\$conf變數須為陣列形態";
2011
 
2012
			#如果傳入的參數為 null
2013
			if($conf==null){
2014
 
2015
				#設置執行錯誤訊息
2016
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2017
 
2018
				}#if end
2019
 
2020
			#回傳結果
2021
			return $result;
2022
 
2023
			}#if end		
2024
 
2025
		#取得參數
2026
		$result["argu"]=$conf;	
2027
 
2028
		#檢查參數
57 liveuser 2029
		#函式說明:
1 liveuser 2030
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2031
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2032
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2033
		#$result["function"],當前執行的函式名稱.
2034
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2035
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2036
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2037
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
2038
		#必填寫的參數:
2039
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2040
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
2041
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2042
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("keyWords","stringArray");
2043
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
2044
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array");
2045
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2046
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
2047
		#可以省略的參數:
2048
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
2049
		#$conf["canBeEmptyString"]="false";
2050
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2051
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("completeEqual");
2052
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2053
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string");
2054
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
2055
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("false");
2056
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);			
2057
		unset($conf["variableCheck.checkArguments"]);
2058
 
2059
		#如果檢查失敗
2060
		if($checkResult["status"]=="false"){
2061
 
2062
			#設置執行不正常
2063
			$result["status"]="false";
2064
 
2065
			#程式停止執行
2066
			$result["error"]=$checkResult;
2067
 
2068
			#回傳結果
2069
			return $result;
2070
 
2071
			}#if end
2072
 
2073
		#如果檢查不通過
2074
		if($checkResult["passed"]=="false"){
2075
 
2076
			#設置執行不正常
2077
			$result["status"]="false";
2078
 
2079
			#程式停止執行
2080
			$result["error"]=$checkResult;
2081
 
2082
			#回傳結果
2083
			return $result;
2084
 
2085
			}#if end		
2086
 
2087
		#初始化變數,避免找不到	
2088
		$result["foundedFalseKey"]=array();	
2089
		$result["foundedTrueKey"]=array();
106 liveuser 2090
		$result["foundedKeyWords"]=array();
744 liveuser 2091
		$result["keyWordsIncludeStr"]=array();	
2092
 
1 liveuser 2093
		#$conf["stringArray"] 陣列有幾個元素,就執行幾次。
2094
		foreach($conf["stringArray"] as $key=>$value){
2095
 
2096
			#檢查一個字串裡面是否有多個關鍵字
57 liveuser 2097
			#回傳結果:
1 liveuser 2098
			#$result["status"],"true"代表執行成功,"false"代表執行失敗.
2099
			#$result["error"],錯誤訊息.
2100
			#$result["function"],當前執行的函數名稱.
2101
			#$result["founded"],是否有找到的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.
2102
			#$result["foundedKeyWords"],找到的關鍵字.
57 liveuser 2103
			#必填參數:
1 liveuser 2104
			$conf["search"]["findManyKeyWords"]["keyWords"]=$conf["keyWords"];#想要搜尋的關鍵字
2105
			$conf["search"]["findManyKeyWords"]["string"]=$value;#要被搜尋的字串內容
57 liveuser 2106
			#可省略參數:
1 liveuser 2107
 
2108
			#如果 $conf["completeEqual"] 有設定
2109
			if(isset($conf["completeEqual"])){
2110
 
2111
				#設定其屬性
2112
				$conf["search"]["findManyKeyWords"]["completeEqual"]=$conf["completeEqual"];#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
2113
 
2114
				}#if end
2115
 
2116
			$searchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
2117
			unset($conf["search"]["findManyKeyWords"]);
2118
 
2119
			#如果檢查一個字串裡面是否有多個關鍵字失敗
728 liveuser 2120
			if($searchResult["status"]==="false"){
1 liveuser 2121
 
2122
				#設置執行不正常
2123
				$result["status"]="false";
2124
 
2125
				#程式停止執行
2126
				$result["error"]=$searchResult;
2127
 
2128
				#回傳結果
2129
				return $result;
2130
 
2131
				}#if end
2132
 
2133
			#如果 $searchResult["founded"] 等於 "true"
2134
			if($searchResult["founded"]==="true"){
2135
 
2136
				#取得該元素
2137
				$result["foundedTrueKey"][$key]=$value;
2138
 
106 liveuser 2139
				#合併找到的關鍵字
2140
				#函式說明:
2141
				#將多個一維陣列串聯起來,key從0開始排序.
2142
				#回傳的結果:
2143
				#$result["status"],"true"表執行正常,"false"代表執行不正常.
2144
				#$result["error"],錯誤訊息陣列.
2145
				#$result["function"],當前執行的函數.
2146
				#$result["content"],合併好的一維陣列.
2147
				#必填參數
2148
				#$conf["inputArray"],陣列,要合併的一維陣列變數,例如:=array($array1,$array2);
2149
				$conf["arrays::mergeArray"]["inputArray"]=array($result["foundedKeyWords"],$searchResult["foundedKeyWords"]);
2150
				#可省略參數:
2151
				#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
2152
				$conf["arrays::mergeArray"]["allowRepeat"]="false";
2153
				#參考資料:
2154
				#無.
2155
				#備註:
2156
				#無.
2157
				$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
2158
				unset($conf["arrays::mergeArray"]);
2159
 
2160
				#如果失敗
2161
				if($mergeArray["status"]=="false"){
2162
 
2163
					#設置執行不正常
2164
					$result["status"]="false";
2165
 
2166
					#程式停止執行
2167
					$result["error"]=$mergeArray;
2168
 
2169
					#回傳結果
2170
					return $result;
2171
 
2172
					}#if end
2173
 
1 liveuser 2174
				#儲存找到的關鍵字
106 liveuser 2175
				$result["foundedKeyWords"]=$mergeArray["content"];
728 liveuser 2176
 
2177
				#儲存有找到關鍵字的來源的索引與其內容跟找到的關鍵字
2178
				$result["keyWordsIncludeStr"][]=array("sourceIndex"=>$key,"sourceVal"=>$value,"keyWords"=>$searchResult["foundedKeyWords"]);
2179
 
1 liveuser 2180
				}#if end
2181
 
2182
			#如果 $searchResult["founded"] 等於 "false"
2183
			else{
2184
 
2185
				#取得該元素
2186
				$result["foundedFalseKey"][$key]=$value;
2187
 
2188
				}#if end
2189
 
2190
			}#foreach end
2191
 
2192
 
2193
		#如果沒有找到的元素內容
2194
		if(!isset($result["foundedTrueKey"])){
2195
 
2196
			#設置找到的元素內容為空
2197
			$result["foundedTrueKey"]=array();
2198
 
2199
			#設置沒有找到全部的關鍵字
2200
			$result["foundedAll"]="false";
2201
 
106 liveuser 2202
			}#if end
1 liveuser 2203
 
106 liveuser 2204
		#如果所有關鍵字都找到了
108 liveuser 2205
		else if(count($result["foundedKeyWords"])===count($conf["keyWords"])){
106 liveuser 2206
 
2207
			#設置有找到全部的關鍵字
107 liveuser 2208
			$result["foundedAll"]="true";
106 liveuser 2209
 
2210
			}#if end
115 liveuser 2211
 
2212
		#反之只有找到部分關鍵字	
2213
		else{
2214
 
2215
			#設置沒有找到全部的關鍵字
2216
			$result["foundedAll"]="false";
2217
 
2218
			}#else end	
106 liveuser 2219
 
1 liveuser 2220
		#執行到這邊代表執行成功
2221
		$result["status"]="true";
2222
 
2223
		#回傳結果
2224
		return $result;
2225
 
2226
		}#function findManyKeyWordsFromManyString end
2227
 
2228
	/*	
57 liveuser 2229
	#函式說明:
1 liveuser 2230
	#檢查一個字串裡面是否沒有多個任何篩選字存在
57 liveuser 2231
	#回傳結果:
1 liveuser 2232
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2233
	#$result["function"],當前執行的函數
2234
	#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤 		
2235
	#$result["filtered"],該字串是否為要過濾掉的,"true"為要過濾掉的;"false"為不用過濾掉的
2236
	#$result["argu"],使用的參數.
57 liveuser 2237
	#必填參數:
205 liveuser 2238
	#$conf["inputStr"],字串,要過濾的字串.
2239
	$conf["inputStr"]="";
2240
	#$conf["filterWord"],字串陣列,要過濾的字串不能含有該陣列元素之一.
2241
	$conf["filterWord"]=array("");
57 liveuser 2242
	#可省略參數:
2243
	#無.
205 liveuser 2244
	#參考資料:
2245
	#無.
57 liveuser 2246
	#備註:
2247
	#無.
1 liveuser 2248
	*/
205 liveuser 2249
	public static function filterString(&$conf){
1 liveuser 2250
 
2251
		#初始化要回傳的內容
2252
		$result=array();
2253
 
2254
		#設置當前執行的函數
2255
		$result["function"]=__FUNCTION__;
2256
 
2257
		#如果 $conf 不為陣列
2258
		if(gettype($conf)!="array"){
2259
 
2260
			#設置執行失敗
2261
			$result["status"]="false";
2262
 
2263
			#設置執行錯誤訊息
2264
			$result["error"][]="\$conf變數須為陣列形態";
2265
 
2266
			#如果傳入的參數為 null
2267
			if($conf==null){
2268
 
2269
				#設置執行錯誤訊息
2270
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2271
 
2272
				}#if end
2273
 
2274
			#回傳結果
2275
			return $result;
2276
 
2277
			}#if end
2278
 
2279
		#取得使用的參數
2280
		$result["argu"]=$conf;
2281
 
2282
		#檢查參數	
57 liveuser 2283
		#函式說明:
1 liveuser 2284
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
57 liveuser 2285
		#回傳結果:
1 liveuser 2286
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2287
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2288
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2289
		#必填寫的參數:
2290
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
2291
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("inputStr","filterWord");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
2292
		#可以省略的參數:
2293
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
2294
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
2295
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
2296
		unset($conf["variableCheck"]["isexistMuti"]);
2297
 
2298
		#如果檢查失敗
2299
		if($checkResult["passed"]=="false"){
2300
 
2301
			#設置錯誤
2302
			$result["status"]="false";
2303
 
2304
			#設置錯誤訊息
2305
			$result["error"]=$checkResult;
2306
 
2307
			#回傳結果
2308
			return $result;
2309
 
2310
			}#if end
2311
 
2312
		#針對每個過濾的字
2313
		foreach($conf["filterWord"] as $filterWord){
2314
 
2315
			#檢查要過濾的字串是否含有要過濾的字
57 liveuser 2316
			#函式說明:
1 liveuser 2317
			#檢查字串裡面有無指定的關鍵字
57 liveuser 2318
			#回傳結果:
1 liveuser 2319
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
2320
			#$result["error"],錯誤訊息
2321
			#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
57 liveuser 2322
			#必填參數:
1 liveuser 2323
			$conf["search"]["findKeyWord"]["keyWord"]=$filterWord;#想要搜尋的關鍵字
2324
			$conf["search"]["findKeyWord"]["string"]=$conf["inputStr"];#要被搜尋的字串內容
57 liveuser 2325
			#可省略參數:
1 liveuser 2326
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
2327
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
2328
			unset($conf["search"]["findKeyWord"]);
2329
 
2330
			#var_dump($searchResult);
2331
 
2332
			#如果 $searchResult["founded"]等於"true"
2333
			if($searchResult["founded"]=="true"){
2334
 
2335
				#則代表該字串為要過濾掉的
2336
 
2337
				#設置執行成功的識別
2338
				$result["status"]="true";
2339
 
2340
				#設置該字串是要過濾掉的
2341
				$result["filtered"]="true";
2342
 
2343
				#回傳結果
2344
				return $result;
2345
 
2346
				}#if end
2347
 
2348
			}#foreach end
2349
 
2350
		#執行到這邊代表,都沒有要過濾掉
2351
 
2352
		#設置執行成功的識別
2353
		$result["status"]="true";
2354
 
2355
		#設置該字串是不用過濾掉的
2356
		$result["filtered"]="false";
2357
 
2358
		#回傳結果
2359
		return $result;
2360
 
2361
		}#function filterString end
2362
 
2363
	/*	
57 liveuser 2364
	#函式說明:
1 liveuser 2365
	#檢查多個字串裡面是否沒有多個任何篩選字存在
57 liveuser 2366
	#回傳結果:
1 liveuser 2367
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2368
	#$result["function"],當前執行的函數
2369
	#$result["error"],涵式錯誤訊息,若爲""則表示沒有錯誤 		
2370
	#$result["filtered"],該字串是否為要過濾掉的識別陣列,"true"為要過濾掉的;"false"為不用過濾掉的
57 liveuser 2371
	#必填參數:
205 liveuser 2372
	#$conf["inputStr"],字串陣列,要過濾的字串陣列.
2373
	$conf["inputStr"]=array("");
2374
	#$conf["filterWord"],字串陣列,要過濾的字串不能含有該陣列元素之一.
2375
	$conf["filterWord"]=array("");
57 liveuser 2376
	#可省略參數:
2377
	#無.
205 liveuser 2378
	#參考資料:
2379
	#無.
57 liveuser 2380
	#備註:
2381
	#無.
1 liveuser 2382
	*/
205 liveuser 2383
	public static function filterMutiString(&$conf){
1 liveuser 2384
 
2385
		#初始化要回傳的內容
2386
		$result=array();
2387
 
2388
		#設置當前執行的函數
2389
		$result["function"]=__FUNCTION__;
2390
 
2391
		#如果 $conf 不為陣列
2392
		if(gettype($conf)!="array"){
2393
 
2394
			#設置執行失敗
2395
			$result["status"]="false";
2396
 
2397
			#設置執行錯誤訊息
2398
			$result["error"][]="\$conf變數須為陣列形態";
2399
 
2400
			#如果傳入的參數為 null
2401
			if($conf==null){
2402
 
2403
				#設置執行錯誤訊息
2404
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2405
 
2406
				}#if end
2407
 
2408
			#回傳結果
2409
			return $result;
2410
 
2411
			}#if end
2412
 
2413
		#檢查參數	
57 liveuser 2414
		#函式說明:
1 liveuser 2415
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
57 liveuser 2416
		#回傳結果:
1 liveuser 2417
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2418
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2419
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2420
		#必填寫的參數:
2421
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
2422
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("inputStr","filterWord");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
2423
		#可以省略的參數:
2424
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
2425
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
2426
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
2427
		unset($conf["variableCheck"]["isexistMuti"]);
2428
 
2429
		#如果檢查失敗
2430
		if($checkResult["passed"]=="false"){
2431
 
2432
			#設置錯誤
2433
			$result["status"]="false";
2434
 
2435
			#設置錯誤訊息
2436
			$result["error"]=$checkResult;
2437
 
2438
			#回傳結果
2439
			return $result;
2440
 
2441
			}#if end
2442
 
2443
		#針對每個要檢測是否要過濾掉的字串
2444
		foreach($conf["inputStr"] as $inputStr){
2445
 
57 liveuser 2446
			#函式說明:
1 liveuser 2447
			#檢查一個字串裡面是否沒有多個任何篩選字存在
57 liveuser 2448
			#回傳結果:
1 liveuser 2449
			#$result["status"],執行是否成功的識別,"true"為執行成功;"false"為執行失敗
2450
			#$result["error"],錯誤訊息陣列			
2451
			#$result["filtered"],該字串是否為要過濾掉的,"true"為要過濾掉的;"false"為不用過濾掉的
57 liveuser 2452
			#必填參數:
1 liveuser 2453
			$conf["search"]["filterString"]["inputStr"]=$inputStr;#要過濾的字串
2454
			$conf["search"]["filterString"]["filterWord"]=$conf["filterWord"];#要過濾的字串不能含有該陣列元素之一
2455
			$filteredResult=search::filterString($conf["search"]["filterString"]);
2456
			unset($conf["search"]["filterString"]);
2457
 
2458
			#儲存每個字串判斷後是否要篩選的結果
2459
			$result["filtered"][]=$filteredResult["filtered"];
2460
 
2461
			}#foreach end
2462
 
2463
		#設置執行成功的識別
2464
		$result["status"]="true";
2465
 
2466
		#回傳結果
2467
		return $result;
2468
 
2469
		}#function filterMutiString end
2470
 
2471
	/*	
57 liveuser 2472
	#函式說明:
1 liveuser 2473
	#檢查一個字串裡面是否有多個關鍵字,將每個關鍵字的搜尋結果回傳.
57 liveuser 2474
	#回傳結果:
1 liveuser 2475
	#$result["status"],"true"代表執行成功,"false"代表執行失敗。
2476
	#$result["function"],當前執行的函數名稱.
2477
	#$result["error"],錯誤訊息
2478
	#$result["founded"][$i],是否找到第$i+1個關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字.
57 liveuser 2479
	#必填參數:
205 liveuser 2480
	#$conf["keyWords"],字串陣列,想要搜尋的關鍵字.
2481
	$conf["keyWords"]=array("");
2482
	#$conf["string"],字串,要被搜尋的字串內容.
2483
	$conf["string"]="";
57 liveuser 2484
	#可省略參數:
205 liveuser 2485
	#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合.
2486
	#$conf["completeEqual"]="true";
2487
	#參考資料:
2488
	#無.
57 liveuser 2489
	#備註:
2490
	#無.
1 liveuser 2491
	*/
205 liveuser 2492
	public static function findManyKeyWordsLosse(&$conf){
1 liveuser 2493
 
2494
		#初始化要回傳的變數
2495
		$result=array();
2496
 
2497
		#設置當前執行的函數
2498
		$result["function"]=__FUNCTION__;	
2499
 
2500
		#如果 $conf 不為陣列
2501
		if(gettype($conf)!="array"){
2502
 
2503
			#設置執行失敗
2504
			$result["status"]="false";
2505
 
2506
			#設置執行錯誤訊息
2507
			$result["error"][]="\$conf變數須為陣列形態";
2508
 
2509
			#如果傳入的參數為 null
2510
			if($conf==null){
2511
 
2512
				#設置執行錯誤訊息
2513
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2514
 
2515
				}#if end
2516
 
2517
			#回傳結果
2518
			return $result;
2519
 
2520
			}#if end
2521
 
57 liveuser 2522
		#函式說明:
1 liveuser 2523
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
57 liveuser 2524
		#回傳結果:
1 liveuser 2525
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2526
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2527
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2528
		#必填寫的參數:
2529
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
2530
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("keyWords","string");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
2531
		#可以省略的參數:
2532
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("array","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
2533
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
2534
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
2535
		unset($conf["variableCheck"]["isexistMuti"]);
2536
 
2537
		#如果檢查失敗
2538
		if($checkResult["passed"]=="false"){
2539
 
2540
			#設置錯誤
2541
			$result["status"]="false";
2542
 
2543
			#設置錯誤訊息
2544
			$result["error"]=$checkResult;
2545
 
2546
			#回傳結果
2547
			return $result;
2548
 
2549
			}#if end
2550
 
2551
		#針對每個keyWord
2552
		foreach($conf["keyWords"] as $keyWord){
2553
 
57 liveuser 2554
			#函式說明:
1 liveuser 2555
			#檢查字串裡面有無指定的關鍵字
57 liveuser 2556
			#回傳結果:
1 liveuser 2557
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
2558
			#$result["error"],錯誤訊息
2559
			#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
57 liveuser 2560
			#必填參數:
1 liveuser 2561
			$conf["search"]["findKeyWord"]["keyWord"]=$keyWord;#想要搜尋的關鍵字
2562
			$conf["search"]["findKeyWord"]["string"]=$conf["string"];#要被搜尋的字串內容
2563
 
2564
			#如果 $conf["completeEqual"] 有設置
2565
			if(isset($conf["completeEqual"])){
2566
 
2567
				#如果 $conf["completeEqual"] 等於 "true"
2568
				if($conf["completeEqual"]=="true"){
2569
 
2570
					$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
2571
 
2572
					}#if end
2573
 
2574
				}#if end
2575
 
2576
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
2577
			unset($conf["search"]["findKeyWord"]);
2578
 
2579
			#如果沒有找到其中一個關鍵字
2580
			if($searchResult["founded"]=="false"){
2581
 
2582
				#設置沒有找到第n個關鍵字
2583
				$result["founded"][]="false";
2584
 
2585
				#設置沒有找到第n個關鍵字
2586
				$result["founded"][$keyWord]="false";
2587
 
2588
				}#if end
2589
 
2590
			#反之有找到關鍵字
2591
			else{
2592
 
2593
				#設置有找到第n個關鍵字
2594
				$result["founded"][]="true";
2595
 
2596
				#設置有找到第n個關鍵字
2597
				$result["founded"][$keyWord]="true";
2598
 
2599
				}#else end
2600
 
2601
			}#foreach end
2602
 
2603
		#設置執行成功
2604
		$result["status"]="true";
2605
 
2606
		#回傳結果
2607
		return $result;
2608
 
2609
		}#function findManyKeyWordsLoose end
2610
 
2611
	/*	
57 liveuser 2612
	#函式說明:
1 liveuser 2613
	#取得關鍵字在字串的哪個位置(字首,字尾,中間)
2614
	#回傳結果:
2615
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
2616
	#$result["error"],錯誤訊息陣列.
2617
	#$result["function"],當前執行的函數名稱.
707 liveuser 2618
	#$result["found"],是否有關鍵字存在,若為"true",代表存在;反之為"false".
1 liveuser 2619
	#$result["argu"],傳入的參數.
2620
	#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.
2621
	#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.
2622
	#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.
17 liveuser 2623
	#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.
2624
	#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.
1 liveuser 2625
	#必填參數:
2626
	#$conf["inputStr"],字串,被搜尋的字串.
2627
	$conf["inputStr"]="";
2628
	#$conf["keyWord"],字串,關鍵字.
2629
	$conf["keyWord"]="";
57 liveuser 2630
	#可省略參數:
2631
	#無.
1 liveuser 2632
	#參考資料:
2633
	#http://php.net/manual/en/function.strpos.php
57 liveuser 2634
	#備註:
2635
	#無.
1 liveuser 2636
	*/
2637
	public static function findKeyWordPosition(&$conf){
2638
 
2639
		#初始化要回傳的內容
2640
		$result=array();
2641
 
2642
		#取得當前執行的函數名稱
2643
		$result["function"]=__FUNCTION__;
2644
 
2645
		#如果 $conf 不為陣列
2646
		if(gettype($conf)!="array"){
2647
 
2648
			#設置執行失敗
2649
			$result["status"]="false";
2650
 
2651
			#設置執行錯誤訊息
2652
			$result["error"][]="\$conf變數須為陣列形態";
2653
 
2654
			#如果傳入的參數為 null
2655
			if($conf==null){
2656
 
2657
				#設置執行錯誤訊息
2658
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2659
 
2660
				}#if end
2661
 
2662
			#回傳結果
2663
			return $result;
2664
 
2665
			}#if end
2666
 
2667
		#取得參數
2668
		$result["argu"]=$conf;
2669
 
2670
		#檢查參數
57 liveuser 2671
		#函式說明:
1 liveuser 2672
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2673
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2674
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2675
		#$result["function"],當前執行的函式名稱.
2676
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2677
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2678
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2679
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
2680
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
2681
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
2682
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
2683
		#必填寫的參數:
2684
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2685
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2686
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2687
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputStr","keyWord");
2688
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2689
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
2690
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2691
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2692
		#可以省略的參數:
2693
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2694
		#$conf["canBeEmptyString"]="false";
2695
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2696
		#$conf["skipableVariableName"]=array();
2697
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2698
		#$conf["skipableVariableType"]=array();
2699
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2700
		#$conf["skipableVarDefaultValue"]=array("");
2701
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2702
		#$conf["arrayCountEqualCheck"][]=array();
2703
		#參考資料來源:
2704
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2705
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2706
		unset($conf["variableCheck::checkArguments"]);
2707
 
2708
		#如果檢查有誤
2709
		if($checkResult["status"]=="false"){
2710
 
2711
			#設置錯誤識別
2712
			$result["status"]="false";
2713
 
2714
			#設置錯誤訊息
2715
			$result["error"]=$checkResult;
2716
 
2717
			#回傳結果
2718
			return $result;
2719
 
2720
			}#if end
2721
 
707 liveuser 2722
		#預設沒有找到關鍵字
2723
		$result["found"]="false";
2724
 
2725
		#預設不在開頭
2726
		$result["head"]="false";
2727
 
2728
		#預設不在結尾
2729
		$result["tail"]="false";
2730
 
2731
		#預設不在中間
2732
		$result["center"]="false";
2733
 
2734
		#預設關鍵字的開始位置
2735
		$result["indexS"]=-1;
2736
 
2737
		#預設關鍵字結束的位置
2738
		$result["indexE"]=-1;
2739
 
1 liveuser 2740
		#如果檢查不通過
2741
		if($checkResult["passed"]=="false"){
2742
 
2743
			#設置錯誤識別
2744
			$result["status"]="false";
2745
 
2746
			#設置錯誤訊息
2747
			$result["error"]=$checkResult;
2748
 
2749
			#回傳結果
2750
			return $result;
2751
 
2752
			}#if end
2753
 
2754
		#取得關鍵字所在的位置
2755
		$keyWordAddr=strpos($conf["inputStr"],$conf["keyWord"]);
2756
 
2757
		#如果關鍵字不存在於字串裡面
2758
		if($keyWordAddr===FALSE){
2759
 
707 liveuser 2760
			#設置執行正常
841 liveuser 2761
			$result["status"]="true";
1 liveuser 2762
 
2763
			#回傳結果
2764
			return $result;
2765
 
2766
			}#if end
2767
 
2768
		#如果關鍵字在字串開頭
2769
		if($keyWordAddr==0){
2770
 
2771
			#設置在開頭
2772
			$result["head"]="true";
2773
 
707 liveuser 2774
			#設置有找到關鍵字
2775
			$result["found"]="true";
2776
 
1 liveuser 2777
			}#if end
2778
 
2779
		#反之
2780
		else{
2781
 
2782
			#設置不在開頭
2783
			$result["head"]="false";
2784
 
2785
			}#else end	
2786
 
2787
		#如果關鍵字在字串結尾
2788
		if($keyWordAddr==(strlen($conf["inputStr"])-strlen($conf["keyWord"]))){
2789
 
2790
			#設置在結尾
2791
			$result["tail"]="true";
2792
 
707 liveuser 2793
			#設置有找到關鍵字
2794
			$result["found"]="true";
2795
 
1 liveuser 2796
			}#if end
2797
 
2798
		#反之
2799
		else{
2800
 
2801
			#設置不在結尾
2802
			$result["tail"]="false";
2803
 
2804
			}#else end
2805
 
2806
		#如果關鍵字在字串中間
2807
		if
2808
		(
2809
			($keyWordAddr>0 && $keyWordAddr<(strlen($conf["inputStr"])-strlen($conf["keyWord"])))
2810
			||
2811
			($result["head"]=="true" && $result["tail"]=="true")
2812
		){
2813
			#設置在中間
2814
			$result["center"]="true";
707 liveuser 2815
 
2816
			#設置有找到關鍵字
2817
			$result["found"]="true";
1 liveuser 2818
 
2819
			}#if end
2820
 
2821
		#反之
2822
		else{
2823
 
2824
			#設置不在中間
2825
			$result["center"]="false";
2826
 
2827
			}#else end
17 liveuser 2828
 
2829
		#儲存關鍵字的開始位置
2830
		$result["indexS"]=$keyWordAddr;
1 liveuser 2831
 
17 liveuser 2832
		#儲存關鍵字結束的位置
2833
		$result["indexE"]=$result["indexS"]+strlen($conf["keyWord"]);
2834
 
1 liveuser 2835
		#設置執行正常
2836
		$result["status"]="true";
2837
 
2838
		#回傳結果
2839
		return $result;
2840
 
2841
		}#function findKeyWordPosition end	
663 liveuser 2842
 
2843
	/*	
2844
	#函式說明:
707 liveuser 2845
	#取得多個關鍵字在字串的哪個位置(字首,字尾,中間)
663 liveuser 2846
	#回傳結果:
2847
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
2848
	#$result["error"],錯誤訊息陣列.
2849
	#$result["function"],當前執行的函數名稱.
2850
	#$result["argu"],傳入的參數.
2851
	#$result["head"][i],第i個關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.
2852
	#$result["tail"][i],第i個關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.
2853
	#$result["center"][i],第i個關鍵字是否在字串的中間,"true"代表是,"false"代表不是.
2854
	#$result["indexS"][i],第i個關鍵字在被搜尋字串的哪個位置開始.
2855
	#$result["indexE"][i],第i個關鍵字在被搜尋字串的哪個位置結束.
2856
	#必填參數:
2857
	#$conf["inputStr"],字串,被搜尋的字串.
2858
	$conf["inputStr"]="";
2859
	#$conf["keyWords"],字串陣列,要搜尋的多個關鍵字
2860
	$conf["keyWords"]=array("");
2861
	#可省略參數:
2862
	#無.
2863
	#參考資料:
2864
	#http://php.net/manual/en/function.strpos.php
2865
	#備註:
2866
	#無.
2867
	*/
2868
	public static function findKeyWordsPosition(&$conf){
2869
 
2870
		#初始化要回傳的內容
2871
		$result=array();
2872
 
2873
		#取得當前執行的函數名稱
2874
		$result["function"]=__FUNCTION__;
2875
 
2876
		#如果 $conf 不為陣列
2877
		if(gettype($conf)!="array"){
2878
 
2879
			#設置執行失敗
2880
			$result["status"]="false";
2881
 
2882
			#設置執行錯誤訊息
2883
			$result["error"][]="\$conf變數須為陣列形態";
2884
 
2885
			#如果傳入的參數為 null
2886
			if($conf==null){
2887
 
2888
				#設置執行錯誤訊息
2889
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2890
 
2891
				}#if end
2892
 
2893
			#回傳結果
2894
			return $result;
2895
 
2896
			}#if end
2897
 
2898
		#取得參數
2899
		$result["argu"]=$conf;
2900
 
2901
		#函式說明:
2902
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
2903
		#回傳結果:
2904
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2905
		#$result["error"],執行不正常結束的錯訊息陣列.
2906
		#$result["simpleError"],簡單表示的錯誤訊息.
2907
		#$result["function"],當前執行的函式名稱.
2908
		#$result["argu"],設置給予的參數.
2909
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
2910
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
2911
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
2912
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
2913
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
2914
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
2915
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
2916
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
2917
		#必填參數:
2918
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2919
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2920
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2921
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2922
		#可省略參數:
2923
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2924
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputStr","keyWords");
2925
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
2926
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
2927
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2928
		#$conf["variadble::checkArguments"]["canBeEmptyString"]="false";
2929
		#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
2930
		#$conf["canNotBeEmpty"]=array();
2931
		#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
2932
		#$conf["canBeEmpty"]=array();
2933
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
2934
		#$conf["skipableVariableCanNotBeEmpty"]=array();
2935
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2936
		#$conf["skipableVariableName"]=array();
2937
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2938
		#$conf["skipableVariableType"]=array();
2939
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2940
		#$conf["skipableVarDefaultValue"]=array("");
2941
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
2942
		#$conf["disallowAllSkipableVarIsEmpty"]="";
2943
		#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
2944
		#$conf["disallowAllSkipableVarIsEmptyArray"]="";
2945
		#$conf["disallowAllSkipableVarNotExist"],字串,是否不允許每個可省略參數都不存在,預設為"false"代表允許,反之為"true".
2946
		#$conf["disallowAllSkipableVarNotExist"]="";
2947
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2948
		#$conf["arrayCountEqualCheck"][]=array();
2949
		#參考資料:
2950
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2951
		#備註:
2952
		#無.
2953
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2954
		unset($conf["variableCheck::checkArguments"]);
2955
 
2956
		#如果檢查失敗
2957
		if($checkArguments["status"]=="false"){
2958
 
2959
			#設置錯誤識別
2960
			$result["status"]="false";
2961
 
2962
			#設置錯誤訊息
2963
			$result["error"]=$checkArguments;
2964
 
2965
			#回傳結果
2966
			return $result;
2967
 
2968
			}#if end
1 liveuser 2969
 
663 liveuser 2970
		#如果檢查不通過
2971
		if($checkArguments["passed"]=="false"){
2972
 
2973
			#設置錯誤識別
2974
			$result["status"]="false";
2975
 
2976
			#設置錯誤訊息
2977
			$result["error"]=$checkArguments;
2978
 
2979
			#回傳結果
2980
			return $result;
2981
 
2982
			}#if end
2983
 
2984
		#針對每個關鍵字
2985
		foreach($conf["keyWords"] as $keyWord){
2986
 
2987
			#函式說明:
2988
			#取得關鍵字在字串的哪個位置(字首,字尾,中間)
2989
			#回傳結果:
2990
			#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
2991
			#$result["error"],錯誤訊息陣列.
2992
			#$result["function"],當前執行的函數名稱.
2993
			#$result["argu"],傳入的參數.
2994
			#$result["head"],關鍵字是否在字串的開頭,"true"代表是,"false"代表不是.
2995
			#$result["tail"],關鍵字是否在字串的尾端,"true"代表是,"false"代表不是.
2996
			#$result["center"],關鍵字是否在字串的中間,"true"代表是,"false"代表不是.
2997
			#$result["indexS"],關鍵字在被搜尋字串的哪個位置開始.
2998
			#$result["indexE"],關鍵字在被搜尋字串的哪個位置結束.
2999
			#必填參數:
3000
			#$conf["inputStr"],字串,被搜尋的字串.
3001
			$conf["search::findKeyWordPosition"]["inputStr"]=$conf["inputStr"];
3002
			#$conf["keyWord"],字串,關鍵字.
3003
			$conf["search::findKeyWordPosition"]["keyWord"]=$keyWord;
3004
			#可省略參數:
3005
			#無.
3006
			#參考資料:
3007
			#http://php.net/manual/en/function.strpos.php
3008
			#備註:
3009
			#無.
3010
			$findKeyWordPosition=search::findKeyWordPosition($conf["search::findKeyWordPosition"]);
3011
			unset($conf["search::findKeyWordPosition"]);
3012
 
3013
			#如果檢查失敗
3014
			if($findKeyWordPosition["status"]=="false"){
3015
 
3016
				#設置錯誤識別
3017
				$result["status"]="false";
3018
 
3019
				#設置錯誤訊息
3020
				$result["error"]=$findKeyWordPosition;
3021
 
3022
				#回傳結果
3023
				return $result;
3024
 
3025
				}#if end
3026
 
3027
			#取得head的結果
3028
			$result["head"][]=$findKeyWordPosition["head"];
3029
 
3030
			#取得center的結果
3031
			$result["center"][]=$findKeyWordPosition["center"];
3032
 
3033
			#取得tail的結果
3034
			$result["tail"][]=$findKeyWordPosition["tail"];
3035
 
3036
			#取得indexS的結果
3037
			$result["indexS"][]=$findKeyWordPosition["indexS"];
3038
 
3039
			#取得indexE的結果
3040
			$result["indexE"][]=$findKeyWordPosition["indexE"];
3041
 
3042
			}#foreach end
3043
 
3044
		#設置執行正常
3045
		$result["status"]="true";
3046
 
3047
		#回傳結果
3048
		return $result;
3049
 
3050
		}#function findKeyWordsPosition end
3051
 
1 liveuser 3052
	/*
3053
	#函式說明:
3054
	#取得兩關鍵字中的內容. 
3055
	#回傳結果:
3056
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3057
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
3058
	#$result["function"],當前執行的函式名稱.
3059
	#$result["content"],兩關鍵字中的內容.
3060
	#$result["argu"],所使用的參數.
3061
	#必填參數:
3062
	#$conf["input"],字串,要解析的字串.
3063
	$conf["input"]="";
3064
	#$conf["leftKeyWord"],字串,左邊的關鍵字.
3065
	$conf["leftKeyWord"]="";
3066
	#$conf["rightKeyWord"],字串,右邊的關鍵字.
3067
	$conf["rightKeyWord"]="";
3068
	#可省略參數:
3069
	#無
205 liveuser 3070
	#參考資料:
3071
	#無.
57 liveuser 3072
	#備註:
3073
	#無.
1 liveuser 3074
	*/
3075
	public static function getContentBetweenKeyWord(&$conf){
3076
 
3077
		#初始化要回傳的結果
3078
		$result=array();
3079
 
3080
		#取得當前執行的函數名稱
3081
		$result["function"]=__FUNCTION__;
3082
 
3083
		#如果沒有參數
3084
		if(func_num_args()==0){
3085
 
3086
			#設置執行失敗
3087
			$result["status"]="false";
3088
 
3089
			#設置執行錯誤訊息
3090
			$result["error"]="函數".$result["function"]."需要參數";
3091
 
3092
			#回傳結果
3093
			return $result;
3094
 
3095
			}#if end
3096
 
3097
		#取得參數
3098
		$result["argu"]=$conf;
3099
 
3100
		#如果 $conf 不為陣列
3101
		if(gettype($conf)!=="array"){
3102
 
3103
			#設置執行失敗
3104
			$result["status"]="false";
3105
 
3106
			#設置執行錯誤訊息
3107
			$result["error"][]="\$conf變數須為陣列形態";
3108
 
3109
			#如果傳入的參數為 null
3110
			if($conf===null){
3111
 
3112
				#設置執行錯誤訊息
3113
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3114
 
3115
				}#if end
3116
 
3117
			#回傳結果
3118
			return $result;
3119
 
3120
			}#if end
3121
 
57 liveuser 3122
		#函式說明:
1 liveuser 3123
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3124
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3125
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3126
		#$result["function"],當前執行的函式名稱.
3127
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3128
		#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
3129
		#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3130
		#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
3131
		#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
3132
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
3133
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
3134
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
3135
		#必填寫的參數:
3136
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3137
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3138
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3139
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input","leftKeyWord","rightKeyWord");
3140
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
3141
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
3142
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3143
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3144
		#可以省略的參數:
3145
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
3146
		#$conf["canBeEmptyString"]="false";
3147
		#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
3148
		#$conf["canNotBeEmpty"]=array();
3149
		#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
3150
		#$conf["canBeEmpty"]=array();
3151
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
3152
		#$conf["skipableVariableCanNotBeEmpty"]=array();
3153
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3154
		#$conf["skipableVariableName"]=array();
3155
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3156
		#$conf["skipableVariableType"]=array();
3157
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3158
		#$conf["skipableVarDefaultValue"]=array("");
3159
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3160
		#$conf["arrayCountEqualCheck"][]=array();
3161
		#參考資料來源:
3162
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3163
		#建議:
3164
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
3165
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3166
		unset($conf["variableCheck::checkArguments"]);
3167
 
3168
		#如果檢查參數失敗
3169
		if($checkArguments["status"]==="false"){
3170
 
3171
			#設置執行失敗
3172
			$result["status"]="false";
3173
 
3174
			#設置執行錯誤訊息
3175
			$result["error"]=$checkArguments;
3176
 
3177
			#回傳結果
3178
			return $result;
3179
 
3180
			}#if end
3181
 
3182
		#如果檢查參數不通過
3183
		if($checkArguments["passed"]==="false"){
3184
 
3185
			#設置執行失敗
3186
			$result["status"]="false";
3187
 
3188
			#設置執行錯誤訊息
3189
			$result["error"]=$checkArguments;
3190
 
3191
			#回傳結果
3192
			return $result;
3193
 
3194
			}#if end
3195
 
3196
		#函式說明:
3197
		#將字串特定關鍵字與其前面的內容剔除
3198
		#回傳結果:
3199
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3200
		#$result["error"],錯誤訊息陣列.
3201
		#$result["warning"],警告訊息鎮列.
3202
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3203
		#$result["function"],當前執行的函數名稱.
3204
		#$result["oriStr"],要處理的原始字串內容.
3205
		#$result["content"],處理好的的字串內容.
57 liveuser 3206
		#必填參數:
1 liveuser 3207
		$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];#要處理的字串.
3208
		$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["leftKeyWord"];#特定字串.
3209
		$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3210
		unset($conf["stringProcess::delStrBeforeKeyWord"]);
3211
 
3212
		#如果移除關鍵字前的內容失敗
3213
		if($delStrBeforeKeyWord["status"]==="false"){
3214
 
3215
			#設置執行失敗
3216
			$result["status"]="false";
3217
 
3218
			#設置執行錯誤訊息
3219
			$result["error"]=$delStrBeforeKeyWord;
3220
 
3221
			#回傳結果
3222
			return $result;
3223
 
3224
			}#if end
3225
 
3226
		#如果沒有指定關鍵字
3227
		if($delStrBeforeKeyWord["founded"]==="false"){
3228
 
3229
			#設置執行失敗
3230
			$result["status"]="false";
3231
 
3232
			#設置執行錯誤訊息
3233
			$result["error"]=$delStrBeforeKeyWord;
3234
 
3235
			#回傳結果
3236
			return $result;
3237
 
3238
			}#if end
3239
 
3240
		#取得處理好的字串
3241
		$parsedStr=$delStrBeforeKeyWord["content"];
3242
 
3243
		#函式說明:
3244
		#將字串特定關鍵字與其後面的內容剔除
3245
		#回傳結果:
3246
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3247
		#$result["error"],錯誤訊息陣列.
3248
		#$result["warning"],警告訊息鎮列.
3249
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3250
		#$result["function"],當前執行的函數名稱.
3251
		#$result["oriStr"],要處理的原始字串內容.
3252
		#$result["content"],處理好的的字串內容.
57 liveuser 3253
		#必填參數:
1 liveuser 3254
		$conf["stringProcess::delStrAfterKeyWord"]["stringIn"]=$parsedStr;#要處理的字串.
3255
		$conf["stringProcess::delStrAfterKeyWord"]["keyWord"]=$conf["rightKeyWord"];#特定字串.
3256
		$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
3257
		unset($conf["stringProcess::delStrAfterKeyWord"]);	
3258
 
3259
		#如果移除關鍵字後的內容失敗
3260
		if($delStrAfterKeyWord["status"]==="false"){
3261
 
3262
			#設置執行失敗
3263
			$result["status"]="false";
3264
 
3265
			#設置執行錯誤訊息
3266
			$result["error"]=$delStrAfterKeyWord;
3267
 
3268
			#回傳結果
3269
			return $result;
3270
 
3271
			}#if end
3272
 
3273
		#如果沒有指定關鍵字
3274
		if($delStrAfterKeyWord["founded"]==="false"){
3275
 
3276
			#設置執行失敗
3277
			$result["status"]="false";
3278
 
3279
			#設置執行錯誤訊息
3280
			$result["error"]=$delStrAfterKeyWord;
3281
 
3282
			#回傳結果
3283
			return $result;
3284
 
3285
			}#if end
3286
 
3287
		#取得處理好的字串
3288
		$parsedStr=$delStrAfterKeyWord["content"];	
3289
 
3290
		#取得中間的內容
3291
		$result["content"]=$parsedStr;
3292
 
3293
		#設置執行正常
3294
		$result["status"]="true";
3295
 
3296
		#回傳結果
3297
		return $result;
3298
 
3299
		}#function getContentBetweenKeyWord end
3300
 
3301
	/*
3302
	#函式說明:
3303
	#尋找檔案裡面有無關鍵字存在,取得其所在列數與內容.
3304
	#回傳結果:
3305
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3306
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
3307
	#$result["function"],當前執行的函式名稱.
3308
	#$result["argu"],所使用的參數.
3309
	#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.
3310
	#$result["content"],符合的列數與內容.
3311
	#$result["content"][$i]["LN"],第$i+1個符合條件的列數.
3312
	#$result["content"][$i]["LC"],第$i+1個符合條件的列內容.
3313
	#必填參數:
3314
	#$conf["fileAddr"],字串,檔案的路徑與名稱.
3315
	$conf["fileAddr"]="";
3316
	#$conf["keyWord"],字串,要搜尋的關鍵字.
3317
	$conf["keyWord"]="";
3318
	#$conf["fileArgu"],字串,__FILE__的內容
3319
	$conf["fileArgu"]=__FILE__;
57 liveuser 3320
	#可省略參數:
3321
	#無.
205 liveuser 3322
	#參考資料:
3323
	#無.
57 liveuser 3324
	#備註:
3325
	#無.
1 liveuser 3326
	*/
205 liveuser 3327
	public static function findKeyWordInFile(&$conf){
1 liveuser 3328
 
3329
		#初始化要回傳的結果
3330
		$result=array();
3331
 
3332
		#取得當前執行的函數名稱
3333
		$result["function"]=__FUNCTION__;
3334
 
3335
		#如果沒有參數
3336
		if(func_num_args()==0){
3337
 
3338
			#設置執行失敗
3339
			$result["status"]="false";
3340
 
3341
			#設置執行錯誤訊息
3342
			$result["error"]="函數".$result["function"]."需要參數";
3343
 
3344
			#回傳結果
3345
			return $result;
3346
 
3347
			}#if end		
3348
 
3349
		#取得參數
3350
		$result["argu"]=$conf;
3351
 
3352
		#如果 $conf 不為陣列
3353
		if(gettype($conf)!=="array"){
3354
 
3355
			#設置執行失敗
3356
			$result["status"]="false";
3357
 
3358
			#設置執行錯誤訊息
3359
			$result["error"][]="\$conf變數須為陣列形態";
3360
 
3361
			#如果傳入的參數為 null
3362
			if($conf===null){
3363
 
3364
				#設置執行錯誤訊息
3365
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3366
 
3367
				}#if end
3368
 
3369
			#回傳結果
3370
			return $result;
3371
 
3372
			}#if end
3373
 
3374
		#檢查參數
57 liveuser 3375
		#函式說明:
1 liveuser 3376
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3377
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3378
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3379
		#$result["function"],當前執行的函式名稱.
3380
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3381
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
3382
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3383
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
3384
		#必填寫的參數:
3385
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3386
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3387
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3388
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileAddr","keyWord","fileArgu");
3389
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
3390
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
3391
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3392
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3393
		#可以省略的參數:
3394
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3395
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
3396
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3397
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("username","password","port","title","fullScreen","spicePassword");
3398
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3399
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");
3400
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3401
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);
3402
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3403
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
3404
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3405
		unset($conf["variableCheck::checkArguments"]);
3406
 
3407
		#如果檢查參數失敗
3408
		if($checkResult["status"]=="false"){
3409
 
3410
			#設置執行失敗
3411
			$result["status"]="false";
3412
 
3413
			#設置執行錯誤
3414
			$result["error"]=$checkResult;
3415
 
3416
			#回傳結果
3417
			return $result;
3418
 
3419
			}#if end
3420
 
3421
		#如果檢查參數不通過
3422
		if($checkResult["passed"]=="false"){
3423
 
3424
			#設置執行失敗
3425
			$result["status"]="false";
3426
 
3427
			#設置執行錯誤
3428
			$result["error"]=$checkResult;
3429
 
3430
			#回傳結果
3431
			return $result;
3432
 
3433
			}#if end
3434
 
3435
		#轉換檔案路徑為相對於當前位置的路徑
3436
		#函數說明:
3437
		#將檔案的位置名稱變成網址,也可以取得檔案位於伺服器上檔案系統的絕對位置.
3438
		#回傳結果:
3439
		#$result["status"],"true"爲建立成功,"false"爲建立失敗.
3440
		#$result["error"],錯誤訊息陣列.
3441
		#$result["function"],函數名稱. 
3442
		#$result["content"],網址,若是在命令列執行,則為"null".
3443
		#$result["webPathFromRoot"],相對於網頁根目錄的路徑.
3444
		#$result["fileSystemAbsoulutePosition"],針對伺服器端的絕對位置,亦即從網頁「/」目錄開始的路徑.
3445
		#$result["fileSystemRelativePosition"],針對伺服器檔案系統的相對位置.
3446
		#必填參數:
3447
		#$conf["address"],字串,檔案的相對位置,若為絕對位置則會自動轉換成相對位置.
3448
		$conf["fileAccess::getInternetAddress"]["address"]=$conf["fileAddr"];
3449
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
3450
		$conf["fileAccess::getInternetAddress"]["fileArgu"]=$conf["fileArgu"];
3451
		#可省略參數:
3452
		#$conf["userDir"],字串,網頁是否置放於家目錄底下,"true"為是,"false"為不是,預設為"true".
3453
		#$conf["userDir"]="true";
3454
		#備註:
3455
		#在命令列執行,所得的路徑是錯誤的。
3456
		$getInternetAddress=fileAccess::getInternetAddress($conf["fileAccess::getInternetAddress"]);
3457
		unset($conf["fileAccess::getInternetAddress"]);
3458
 
3459
		#如果解析檔案位置失敗
3460
		if($getInternetAddress["status"]==="false"){
3461
 
3462
			#設置執行失敗
3463
			$result["status"]="false";
3464
 
3465
			#設置執行錯誤
3466
			$result["error"]=$getInternetAddress;
3467
 
3468
			#回傳結果
3469
			return $result;
3470
 
3471
			}#if end
3472
 
3473
		#取得檔案的相對位置
3474
		$fileRelativeAddr=$getInternetAddress["fileSystemRelativePosition"];
3475
 
3476
		#取得檔案的絕對位置
3477
		$fileAbsolute=$getInternetAddress["fileSystemAbsoulutePosition"];		
3478
 
3479
		#讀取檔案內容
57 liveuser 3480
		#函式說明:
1 liveuser 3481
		#依據行號分隔抓取檔案的內容,結果會回傳一個陣列
3482
		#回傳的變數說明:
3483
		#$result["status"],執行是否成功,"true"代表成功;"fasle"代表失敗.
3484
		#$result["error"],錯誤訊息提示.
3485
		#$result["warning"],警告訊息.
3486
		#$result["function"],當前執行的函數名稱.
3487
		#$result["fileContent"],爲檔案的內容陣列.
3488
		#$result["lineCount"],爲檔案內容總共的行數.
3489
		#$result["fullContent"],為檔案的完整內容.
57 liveuser 3490
		#必填參數:
1 liveuser 3491
		#$conf["filePositionAndName"],字串,爲檔案的位置以及名稱.
3492
		$conf["fileAccess::getFileContent"]["filePositionAndName"]=$fileAbsolute;
3493
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
3494
		$conf["fileAccess::getFileContent"]["fileArgu"]=$conf["fileArgu"];
3495
		#參考資料:
3496
		#file(),取得檔案內容的行數.
3497
		#file=>http:#php.net/manual/en/function.file.php
3498
		#rtrim(),剔除透過file()取得每行內容結尾的換行符號.
3499
		#filesize=>http://php.net/manual/en/function.filesize.php
3500
		$getFileContent=fileAccess::getFileContent($conf["fileAccess::getFileContent"]);
3501
		unset($conf["fileAccess::getFileContent"]);
3502
 
3503
		#如果讀取檔案內容失敗
3504
		if($getFileContent["status"]==="false"){
3505
 
3506
			#設置執行失敗
3507
			$result["status"]="false";
3508
 
3509
			#設置執行錯誤
3510
			$result["error"]=$getInternetAddress;
3511
 
3512
			#回傳結果
3513
			return $result;
3514
 
3515
			}#if end
3516
 
3517
		#設置沒有找到關鍵字
3518
		$result["founded"]="false";
3519
 
3520
		#針對每列內容
3521
		foreach($getFileContent["fileContent"] as $LN=>$LC){
3522
 
3523
			#搜尋含有關鍵字的列數	
3524
			$searchResult=strpos($LC,$conf["keyWord"]);
3525
 
3526
			#如果有搜尋到內容
3527
			if($searchResult!==false){
3528
 
3529
				#記錄列數
3530
				$res["LN"]=$LN;
3531
 
3532
				#記錄內容
3533
				$res["LC"]=$LC;				
3534
 
3535
				#儲存到要回傳的內容
3536
				$result[]=$res;
3537
 
3538
				#設置有找到關鍵字
3539
				$result["founded"]="true";
3540
 
3541
				}#if end
3542
 
3543
			}#foreach end
3544
 
3545
		#設置執行正常
3546
		$result["status"]="true";
3547
 
3548
		#回傳結果
3549
		return $result;
3550
 
3551
		}#function findKeyWordInFile end
3552
 
3553
	/*
3554
	#函式說明:
3555
	#尋找字串是否存在對應的關鍵字,且符合的最常關鍵字為何?
3556
	#回傳結果:
3557
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3558
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
3559
	#$result["function"],當前執行的函式名稱.
3560
	#$result["argu"],所使用的參數.
3561
	#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.
3562
	#$result["content"],最符合的字串完整內容.
3563
	#必填參數:
3564
	#$conf["input"],字串,要比對的字串.
3565
	$conf["input"]="";
3566
	#$conf["keyWord"],字串陣列,要搜尋的關鍵字.
3567
	$conf["keyWord"]=array("");
57 liveuser 3568
	#可省略參數:
3569
	#無.
205 liveuser 3570
	#參考資料:
3571
	#無.
57 liveuser 3572
	#備註:
3573
	#無.
1 liveuser 3574
	*/
205 liveuser 3575
	public static function findLikelyStr(&$conf){
1 liveuser 3576
 
3577
		#初始化要回傳的結果
3578
		$result=array();
3579
 
3580
		#取得當前執行的函數名稱
3581
		$result["function"]=__FUNCTION__;
3582
 
3583
		#如果沒有參數
3584
		if(func_num_args()==0){
3585
 
3586
			#設置執行失敗
3587
			$result["status"]="false";
3588
 
3589
			#設置執行錯誤訊息
3590
			$result["error"]="函數".$result["function"]."需要參數";
3591
 
3592
			#回傳結果
3593
			return $result;
3594
 
3595
			}#if end		
3596
 
3597
		#取得參數
3598
		$result["argu"]=$conf;
3599
 
3600
		#如果 $conf 不為陣列
3601
		if(gettype($conf)!=="array"){
3602
 
3603
			#設置執行失敗
3604
			$result["status"]="false";
3605
 
3606
			#設置執行錯誤訊息
3607
			$result["error"][]="\$conf變數須為陣列形態";
3608
 
3609
			#如果傳入的參數為 null
3610
			if($conf===null){
3611
 
3612
				#設置執行錯誤訊息
3613
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3614
 
3615
				}#if end
3616
 
3617
			#回傳結果
3618
			return $result;
3619
 
3620
			}#if end
3621
 
3622
		#檢查參數
57 liveuser 3623
		#函式說明:
1 liveuser 3624
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3625
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3626
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3627
		#$result["function"],當前執行的函式名稱.
3628
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3629
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
3630
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3631
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
3632
		#必填寫的參數:
3633
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3634
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3635
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3636
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input","keyWord");
3637
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
3638
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
3639
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3640
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3641
		#可以省略的參數:
3642
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3643
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
3644
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3645
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("username","password","port","title","fullScreen","spicePassword");
3646
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3647
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");
3648
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3649
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);
3650
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3651
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
3652
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3653
		unset($conf["variableCheck::checkArguments"]);
3654
 
3655
		#如果檢查參數失敗
3656
		if($checkResult["status"]=="false"){
3657
 
3658
			#設置執行失敗
3659
			$result["status"]="false";
3660
 
3661
			#設置執行錯誤
3662
			$result["error"]=$checkResult;
3663
 
3664
			#回傳結果
3665
			return $result;
3666
 
3667
			}#if end
3668
 
3669
		#如果檢查參數不通過
3670
		if($checkResult["passed"]=="false"){
3671
 
3672
			#設置執行失敗
3673
			$result["status"]="false";
3674
 
3675
			#設置執行錯誤
3676
			$result["error"]=$checkResult;
3677
 
3678
			#回傳結果
3679
			return $result;
3680
 
3681
			}#if end
3682
 
3683
		#暫存符合的關鍵字
3684
		$tmp="";
3685
 
3686
		#初始化未找到符合的關鍵字
3687
		$result["found"]="false";
3688
 
3689
		#真對每個關鍵字
3690
		foreach($conf["keyWord"] as $keyWord){
3691
 
3692
			#如果關鍵字為 ""
3693
			if($keyWord===""){
3694
 
3695
				#跳過
3696
				continue;
3697
 
3698
				}#if end
3699
 
3700
			#如果有符合的開頭關鍵字.
3701
			if(strpos($conf["input"],$keyWord)===0){
3702
 
3703
				#如果 $keyWord 大於已符合的關鍵字
3704
				if(strlen($keyWord)>strlen($tmp)){
3705
 
3706
					#記錄起來
3707
					$tmp=$keyWord;
3708
 
3709
					#設置有找到關鍵字
3710
					$result["found"]="true";
3711
 
3712
					}#if end
3713
 
3714
				}#if end
3715
 
3716
			}#foreach end	
3717
 
3718
		#設置找到的關鍵字
3719
		$result["content"]=$tmp;
3720
 
3721
		#設置執行正常
3722
		$result["status"]="true";
3723
 
3724
		#回傳結果
3725
		return $result;
3726
 
3727
		}#function find LikelyStr end
3728
 
3729
	/*
443 liveuser 3730
	#函式說明:
1 liveuser 3731
	#尋找陣列中有無符合的key
3732
	#回傳結果:
3733
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3734
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
3735
	#$result["function"],當前執行的函式名稱.
3736
	#$result["argu"],所使用的參數.
3737
	#$result["founded"],是否有找到關鍵字,"true"代表有找到,"false"代表沒有找到.
3738
	#必填參數:
3739
	#$conf["key"],字串,要尋找的key.
3740
	$conf["key"]="";
3741
	#$conf["array"],陣列,要被搜尋的陣列.	
3742
	$conf["array"]=array();	
57 liveuser 3743
	#可省略參數:
3744
	#無.
205 liveuser 3745
	#參考資料:
3746
	#無.
57 liveuser 3747
	#備註:
3748
	#無.
1 liveuser 3749
	*/	
646 liveuser 3750
	public static function findKeyInArray(&$conf){
1 liveuser 3751
 
3752
		#初始化要回傳的結果
3753
		$result=array();
3754
 
3755
		#取得當前執行的函數名稱
3756
		$result["function"]=__FUNCTION__;
3757
 
3758
		#如果沒有參數
3759
		if(func_num_args()==0){
3760
 
3761
			#設置執行失敗
3762
			$result["status"]="false";
3763
 
3764
			#設置執行錯誤訊息
3765
			$result["error"]="函數".$result["function"]."需要參數";
3766
 
3767
			#回傳結果
3768
			return $result;
3769
 
3770
			}#if end		
3771
 
3772
		#取得參數
3773
		$result["argu"]=$conf;
3774
 
3775
		#如果 $conf 不為陣列
3776
		if(gettype($conf)!=="array"){
3777
 
3778
			#設置執行失敗
3779
			$result["status"]="false";
3780
 
3781
			#設置執行錯誤訊息
3782
			$result["error"][]="\$conf變數須為陣列形態";
3783
 
3784
			#如果傳入的參數為 null
3785
			if($conf===null){
3786
 
3787
				#設置執行錯誤訊息
3788
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3789
 
3790
				}#if end
3791
 
3792
			#回傳結果
3793
			return $result;
3794
 
3795
			}#if end
3796
 
3797
		#檢查參數
57 liveuser 3798
		#函式說明:
1 liveuser 3799
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3800
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3801
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3802
		#$result["function"],當前執行的函式名稱.
3803
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3804
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
3805
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3806
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
3807
		#必填寫的參數:
3808
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3809
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3810
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3811
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("key","array");
3812
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
3813
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","array");
3814
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3815
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3816
		#可以省略的參數:
3817
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3818
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
3819
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3820
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("username","password","port","title","fullScreen","spicePassword");
3821
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3822
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");
3823
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3824
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);
3825
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3826
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
3827
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3828
		unset($conf["variableCheck::checkArguments"]);
3829
 
3830
		#如果檢查參數失敗
3831
		if($checkResult["status"]=="false"){
3832
 
3833
			#設置執行失敗
3834
			$result["status"]="false";
3835
 
3836
			#設置執行錯誤
3837
			$result["error"]=$checkResult;
3838
 
3839
			#回傳結果
3840
			return $result;
3841
 
3842
			}#if end
3843
 
3844
		#如果檢查參數不通過
3845
		if($checkResult["passed"]=="false"){
3846
 
3847
			#設置執行失敗
3848
			$result["status"]="false";
3849
 
3850
			#設置執行錯誤
3851
			$result["error"]=$checkResult;
3852
 
3853
			#回傳結果
3854
			return $result;
3855
 
3856
			}#if end
3857
 
3858
		#初始設置沒有找到對應的key
3859
		$result["founded"]="false";
3860
 
3861
		#針對每個陣列元素
3862
		foreach($conf["array"] as $key=>$val){
3863
 
3864
			#debug
3865
			#var_dump($key);var_dump($conf["key"]);
3866
 
3867
			#如果找到相同的key
3868
			if((string)$key===$conf["key"]){
3869
 
3870
				#設置有找到對應的key
3871
				$result["founded"]="true";
3872
 
3873
				#結束執行
3874
				break;
3875
 
3876
				}#if end
3877
 
3878
			}#foreach ebd
3879
 
3880
		#設置執行正常
3881
		$result["status"]="true";
3882
 
3883
		#回傳結果
3884
		return $result;
3885
 
3886
		}#function findKeyInArray end
443 liveuser 3887
 
3888
	/*
3889
	#函式說明:
3890
	#尋找字串中是否含有 shell 變數.
3891
	#回傳結果:
3892
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3893
	#$reuslt["error"],執行不正常結束的錯訊息陣列.
3894
	#$result["function"],當前執行的函式名稱.
3895
	#$result["argu"],所使用的參數.
3896
	#$result["founded"],是否有找到shell變數,"true"代表有找到,"false"代表沒有找到..
3897
	#必填參數:
3898
	#$conf["input"],字串,要檢查的字串..
3899
	$conf["input"]="";
3900
	#可省略參數:
3901
	#無.
3902
	#參考資料:
3903
	#無.
3904
	#備註:
3905
	#無.
3906
	*/
3907
	public static function findShellVar(&$conf){
1 liveuser 3908
 
443 liveuser 3909
		#初始化要回傳的結果
3910
		$result=array();
3911
 
3912
		#取得當前執行的函數名稱
3913
		$result["function"]=__FUNCTION__;
3914
 
3915
		#如果沒有參數
3916
		if(func_num_args()==0){
3917
 
3918
			#設置執行失敗
3919
			$result["status"]="false";
3920
 
3921
			#設置執行錯誤訊息
3922
			$result["error"]="函數".$result["function"]."需要參數";
3923
 
3924
			#回傳結果
3925
			return $result;
3926
 
3927
			}#if end		
3928
 
3929
		#取得參數
3930
		$result["argu"]=$conf;
3931
 
3932
		#如果 $conf 不為陣列
3933
		if(gettype($conf)!=="array"){
3934
 
3935
			#設置執行失敗
3936
			$result["status"]="false";
3937
 
3938
			#設置執行錯誤訊息
3939
			$result["error"][]="\$conf變數須為陣列形態";
3940
 
3941
			#如果傳入的參數為 null
3942
			if($conf===null){
3943
 
3944
				#設置執行錯誤訊息
3945
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3946
 
3947
				}#if end
3948
 
3949
			#回傳結果
3950
			return $result;
3951
 
3952
			}#if end
3953
 
3954
		#檢查參數
3955
		#函式說明:
3956
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3957
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3958
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3959
		#$result["function"],當前執行的函式名稱.
3960
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3961
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
3962
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3963
		#$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
3964
		#必填寫的參數:
3965
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3966
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3967
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3968
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("input");
3969
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
3970
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
3971
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3972
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3973
		#可以省略的參數:
3974
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3975
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
3976
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3977
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("username","password","port","title","fullScreen","spicePassword");
3978
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3979
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string");
3980
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3981
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"false",null);
3982
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3983
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
3984
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3985
		unset($conf["variableCheck::checkArguments"]);
3986
 
3987
		#如果檢查參數失敗
3988
		if($checkResult["status"]=="false"){
3989
 
3990
			#設置執行失敗
3991
			$result["status"]="false";
3992
 
3993
			#設置執行錯誤
3994
			$result["error"]=$checkResult;
3995
 
3996
			#回傳結果
3997
			return $result;
3998
 
3999
			}#if end
4000
 
4001
		#如果檢查參數不通過
4002
		if($checkResult["passed"]=="false"){
4003
 
4004
			#設置執行失敗
4005
			$result["status"]="false";
4006
 
4007
			#設置執行錯誤
4008
			$result["error"]=$checkResult;
4009
 
4010
			#回傳結果
4011
			return $result;
4012
 
4013
			}#if end
4014
 
4015
		#函式說明:
4016
		#將字串進行解析,取得兩個關鍵字中間的內容.
4017
		#回傳結果:
4018
		#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
4019
		#$result["function"],當前執行的函式內容.
4020
		#$result["error"],錯誤訊息陣列.
4021
		#$result["content"],取得的內容.
4022
		#$result["oriStr"],原始的內容.
4023
		#$result["found"],是否有找到符合條件的內容.
4024
		#必填參數:
4025
		#$conf["input"],字串,要處理的字串.
4026
		$conf["stringProcess::getContentBetweenKeyWord"]["input"]=$conf["input"];
4027
		#$conf["startKeyWord"],字串,開頭的關鍵字.
4028
		$conf["stringProcess::getContentBetweenKeyWord"]["startKeyWord"]="\${";
4029
		#$conf["endKeyWord"],字串,結束的關鍵字.
4030
		$conf["stringProcess::getContentBetweenKeyWord"]["endKeyWord"]="}";
4031
		#可省略參數:
4032
		#無.
4033
		#參考資料:
4034
		#無.
4035
		#備註:
4036
		#無.
4037
		$getContentBetweenKeyWord=stringProcess::getContentBetweenKeyWord($conf["stringProcess::getContentBetweenKeyWord"]);
4038
		unset($conf["stringProcess::getContentBetweenKeyWord"]);
4039
 
4040
		#如果執行失敗
4041
		if($getContentBetweenKeyWord["status"]==="false"){
4042
 
4043
			#設置執行失敗
4044
			$result["status"]="false";
4045
 
4046
			#設置執行錯誤
4047
			$result["error"]=$getContentBetweenKeyWord;
4048
 
4049
			#回傳結果
4050
			return $result;
4051
 
4052
			}#if end
4053
 
4054
		#如果沒有符合條件的內容
4055
		if($getContentBetweenKeyWord["found"]==="false"){
4056
 
4057
			#設置執行正常
4058
			$result["status"]="true";
4059
 
4060
			#設置沒有找到 shell 變數
4061
			$result["founded"]="false";
4062
 
4063
			#回傳結果
4064
			return $result;
4065
 
4066
			}#if end
4067
 
4068
		#函式說明:
4069
		#檢查字串裡面有無指定的關鍵字
4070
		#回傳結果:
4071
		#$result["status"],"true"代表執行成功,"false"代表執行失敗。
4072
		#$result["error"],錯誤訊息
4073
		#$result["function"],當前執行的函數名稱.
4074
		#$result["argu"],使用的參數.
4075
		#$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
4076
		#$result["keyWordCount"],找到的關鍵字數量.
4077
		#必填參數:
4078
		#$conf["keyWord"],字串,想要搜尋的關鍵字.
4079
		$conf["search::findKeyWord"]["keyWord"]=" ";
4080
		#$conf["string"],字串,要被搜尋的字串內容
4081
		$conf["search::findKeyWord"]["string"]=$getContentBetweenKeyWord["content"];
4082
		#可省略參數:
4083
		#$conf["completeEqual"],字串,是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
4084
		#$conf["completeEqual"]="true";
4085
		#參考資料:
4086
		#無.
4087
		#備註:
4088
		#無.
4089
		$findKeyWord=search::findKeyWord($conf["search::findKeyWord"]);
4090
		unset($conf["search::findKeyWord"]);
4091
 
4092
		#如果執行失敗
4093
		if($findKeyWord["status"]==="false"){
4094
 
4095
			#設置執行失敗
4096
			$result["status"]="false";
4097
 
4098
			#設置執行錯誤
4099
			$result["error"]=$findKeyWord;
4100
 
4101
			#回傳結果
4102
			return $result;
4103
 
4104
			}#if end
4105
 
4106
		#如果有符合條件的內容
4107
		if($findKeyWord["founded"]==="true"){
4108
 
4109
			#設置執行正常
4110
			$result["status"]="true";
4111
 
4112
			#設置沒有找到 shell 變數
4113
			$result["founded"]="false";
4114
 
4115
			#回傳結果
4116
			return $result;
4117
 
4118
			}#if end
4119
 
4120
		#執行到這邊代表真的有 shell 變數存在
4121
 
4122
		#設置執行正常
4123
		$result["status"]="true";
4124
 
4125
		#設置沒有找到 shell 變數
4126
		$result["founded"]="true";
4127
 
4128
		#回傳結果
4129
		return $result;
4130
 
4131
		}#function findShellVar end
4132
 
1 liveuser 4133
	}#class search end
4134
 
4135
?>