Subversion Repositories php-qbpwcf

Rev

Rev 3 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3 Rev 226
Line 1... Line 1...
1
<?php
1
<?php
2
 
2
 
3
/*
3
/*
4
 
4
 
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
6
    Copyright (C) 2015~2024 Min-Jhin,Chen
6
    Copyright (C) 2014~2025 MIN ZHI, CHEN
7
 
7
 
8
    This file is part of QBPWCF.
8
    This file is part of QBPWCF.
9
 
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
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
11
    it under the terms of the GNU General Public License as published by
Line 47... Line 47...
47
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
47
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
48
	#備註:
48
	#備註:
49
	#無.
49
	#無.
50
	*/
50
	*/
51
	public function __call($method,$arguments){
51
	public function __call($method,$arguments){
52
		
52
 
53
		#取得當前執行的函式
53
		#取得當前執行的函式
54
		$result["function"]=__FUNCTION__;
54
		$result["function"]=__FUNCTION__;
55
		
55
 
56
		#設置執行不正常
56
		#設置執行不正常
57
		$result["status"]="false";
57
		$result["status"]="false";
58
		
58
 
59
		#設置執行錯誤
59
		#設置執行錯誤
60
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
60
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
61
		
61
 
62
		#設置所丟入的參數
62
		#設置所丟入的參數
63
		$result["error"][]=$arguments;
63
		$result["error"][]=$arguments;
64
		
64
 
65
		#回傳結果
65
		#回傳結果
66
		return $result;
66
		return $result;
67
		
67
 
68
		}#function __call end
68
		}#function __call end
69
		
69
 
70
	/*
70
	/*
71
	#函式說明:
71
	#函式說明:
72
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
72
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
73
	#回傳結果:
73
	#回傳結果:
74
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
74
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 83... Line 83...
83
	#__callStatic=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
83
	#__callStatic=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
84
	#備註:
84
	#備註:
85
	#無.
85
	#無.
86
	*/
86
	*/
87
	public static function __callStatic($method,$arguments){
87
	public static function __callStatic($method,$arguments){
88
		
88
 
89
		#取得當前執行的函式
89
		#取得當前執行的函式
90
		$result["function"]=__FUNCTION__;
90
		$result["function"]=__FUNCTION__;
91
		
91
 
92
		#設置執行不正常
92
		#設置執行不正常
93
		$result["status"]="false";
93
		$result["status"]="false";
94
		
94
 
95
		#設置執行錯誤
95
		#設置執行錯誤
96
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
96
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
97
		
97
 
98
		#設置所丟入的參數
98
		#設置所丟入的參數
99
		$result["error"][]=$arguments;
99
		$result["error"][]=$arguments;
100
		
100
 
101
		#回傳結果
101
		#回傳結果
102
		return $result;
102
		return $result;
103
		
103
 
104
		}#function __callStatic end
104
		}#function __callStatic end
105
			
105
 
106
	/*
106
	/*
107
	#函式說明:
107
	#函式說明:
108
	#撰寫log
108
	#撰寫log
109
	#回傳結果:
109
	#回傳結果:
110
	#$result["status"],狀態,"true"或"false".
110
	#$result["status"],狀態,"true"或"false".
Line 126... Line 126...
126
	#$conf["returnOnly"]="true";
126
	#$conf["returnOnly"]="true";
127
	#參考資料:
127
	#參考資料:
128
	#無.
128
	#無.
129
	#備註:
129
	#備註:
130
	#無.
130
	#無.
131
	*/	
131
	*/
132
	public static function record(&$conf){
132
	public static function record(&$conf){
133
	
133
 
134
		#初始化要回傳的結果
134
		#初始化要回傳的結果
135
		$result=array();
135
		$result=array();
136
 
136
 
137
		#儲存當前執行的函數
137
		#儲存當前執行的函數
138
		$result["function"]=__FUNCTION__;
138
		$result["function"]=__FUNCTION__;
139
		
139
 
140
		#如果 $conf 不為陣列
140
		#如果 $conf 不為陣列
141
		if(gettype($conf)!="array"){
141
		if(gettype($conf)!="array"){
142
			
142
 
143
			#設置執行失敗
143
			#設置執行失敗
144
			$result["status"]="false";
144
			$result["status"]="false";
145
			
145
 
146
			#設置執行錯誤訊息
146
			#設置執行錯誤訊息
147
			$result["error"][]="\$conf變數須為陣列形態";
147
			$result["error"][]="\$conf變數須為陣列形態";
148
 
148
 
149
			#如果傳入的參數為 null
149
			#如果傳入的參數為 null
150
			if($conf==null){
150
			if($conf==null){
151
				
151
 
152
				#設置執行錯誤訊息
152
				#設置執行錯誤訊息
153
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
153
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
154
				
154
 
155
				}#if end
155
				}#if end
156
 
156
 
157
			#回傳結果
157
			#回傳結果
158
			return $result;
158
			return $result;
159
	
159
 
160
			}#if end
160
			}#if end
161
			
161
 
162
		#儲存使用的參數
162
		#儲存使用的參數
163
		$result["argu"]=$conf;
163
		$result["argu"]=$conf;
164
		
164
 
165
		#檢查參數
165
		#檢查參數
166
		#函式說明:
166
		#函式說明:
167
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
167
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
168
		#回傳結果:
168
		#回傳結果:
169
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
169
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 211... Line 211...
211
		#參考資料:
211
		#參考資料:
212
		#array_keys=>http://php.net/manual/en/function.array-keys.php
212
		#array_keys=>http://php.net/manual/en/function.array-keys.php
213
		#備註:
213
		#備註:
214
		#無.
214
		#無.
215
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
215
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
216
		unset($conf["variableCheck::checkArguments"]);		
216
		unset($conf["variableCheck::checkArguments"]);
217
		
217
 
218
		#如果檢查失敗
218
		#如果檢查失敗
219
		if($checkArguments["status"]=="false"){
219
		if($checkArguments["status"]=="false"){
220
			
220
 
221
			#設置錯誤識別
221
			#設置錯誤識別
222
			$result["status"]="false";
222
			$result["status"]="false";
223
			
223
 
224
			#設置錯誤訊息
224
			#設置錯誤訊息
225
			$result["error"]=$checkArguments;
225
			$result["error"]=$checkArguments;
226
			
226
 
227
			#回傳結果
227
			#回傳結果
228
			return $result;
228
			return $result;
229
			
229
 
230
			}#if end
230
			}#if end
231
	
231
 
232
		#如果檢查不通過
232
		#如果檢查不通過
233
		if($checkArguments["passed"]=="false"){
233
		if($checkArguments["passed"]=="false"){
234
			
234
 
235
			#設置錯誤識別
235
			#設置錯誤識別
236
			$result["status"]="false";
236
			$result["status"]="false";
237
			
237
 
238
			#設置錯誤訊息
238
			#設置錯誤訊息
239
			$result["error"]=$checkArguments;
239
			$result["error"]=$checkArguments;
240
			
240
 
241
			#回傳結果
241
			#回傳結果
242
			return $result;
242
			return $result;
243
			
243
 
244
			}#if end
244
			}#if end
245
	
245
 
246
		#如果 content 參數不為 string
246
		#如果 content 參數不為 string
247
		if(gettype($conf["content"])!=="string"){
247
		if(gettype($conf["content"])!=="string"){
248
		
248
 
249
			#函式說明:
249
			#函式說明:
250
			#記錄程式輸出的結果.
250
			#記錄程式輸出的結果.
251
			#回傳結果:
251
			#回傳結果:
252
			#$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
252
			#$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
253
			#$result["error"],錯誤訊息.
253
			#$result["error"],錯誤訊息.
Line 264... Line 264...
264
			#無.
264
			#無.
265
			#備註:
265
			#備註:
266
			#無.
266
			#無.
267
			$getOutput=record::getOutput($conf["record::getOutput"]);
267
			$getOutput=record::getOutput($conf["record::getOutput"]);
268
			unset($conf["record::getOutput"]);
268
			unset($conf["record::getOutput"]);
269
		
269
 
270
			#如果執行失敗
270
			#如果執行失敗
271
			if($getOutput["status"]==="false"){
271
			if($getOutput["status"]==="false"){
272
				
272
 
273
				#設置錯誤識別
273
				#設置錯誤識別
274
				$result["status"]="false";
274
				$result["status"]="false";
275
				
275
 
276
				#設置錯誤訊息
276
				#設置錯誤訊息
277
				$result["error"]=$getOutput;
277
				$result["error"]=$getOutput;
278
				
278
 
279
				#回傳結果
279
				#回傳結果
280
				return $result;
280
				return $result;
281
				
281
 
282
				}#if end
282
				}#if end
283
		
283
 
284
			#取得輸出並複寫成字串
284
			#取得輸出並複寫成字串
285
			$conf["content"]=$getOutput["content"];
285
			$conf["content"]=$getOutput["content"];
286
		
286
 
287
			}#if end
287
			}#if end
288
	
288
 
289
		#如果要寫入 log 檔案
289
		#如果要寫入 log 檔案
290
		if($conf["returnOnly"]==="false"){
290
		if($conf["returnOnly"]==="false"){
291
		
291
 
292
			#涵式說明:
292
			#涵式說明:
293
			#將字串寫入到檔案
293
			#將字串寫入到檔案
294
			#回傳的結果:
294
			#回傳的結果:
295
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
295
			#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
296
			#$result["error"],錯誤訊息陣列.
296
			#$result["error"],錯誤訊息陣列.
Line 306... Line 306...
306
			#可省略的參數:
306
			#可省略的參數:
307
			#$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
307
			#$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
308
			$conf["fileAccess::writeTextIntoFile"]["fileName"]=$conf["path"];
308
			$conf["fileAccess::writeTextIntoFile"]["fileName"]=$conf["path"];
309
			#$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
309
			#$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
310
			$conf["fileAccess::writeTextIntoFile"]["inputString"]=$conf["content"];
310
			$conf["fileAccess::writeTextIntoFile"]["inputString"]=$conf["content"];
311
			
311
 
312
			#如果要重新寫入
312
			#如果要重新寫入
313
			if($conf["rewrite"]==="true"){
313
			if($conf["rewrite"]==="true"){
314
			
314
 
315
				#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
315
				#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
316
				$conf["fileAccess::writeTextIntoFile"]["writeMethod"]="w";
316
				$conf["fileAccess::writeTextIntoFile"]["writeMethod"]="w";
317
			
317
 
318
				}#if end
318
				}#if end
319
			
319
 
320
			#反之
320
			#反之
321
			else{
321
			else{
322
			
322
 
323
				#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
323
				#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
324
				$conf["fileAccess::writeTextIntoFile"]["writeMethod"]="a";
324
				$conf["fileAccess::writeTextIntoFile"]["writeMethod"]="a";
325
			
325
 
326
				}#else end
326
				}#else end
327
			
327
 
328
			#$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
328
			#$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
329
			#$conf["checkRepeat"]="";
329
			#$conf["checkRepeat"]="";
330
			#$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
330
			#$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
331
			#$conf["filenameExtensionStartPoint"]="";
331
			#$conf["filenameExtensionStartPoint"]="";
332
			#$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
332
			#$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
333
			#$conf["repeatNameRule"]="";
333
			#$conf["repeatNameRule"]="";
334
			$conf["fileAccess::writeTextIntoFile"]["web"]="false";#檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
334
			$conf["fileAccess::writeTextIntoFile"]["web"]="false";#檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
335
			#$conf["web"]="true";
335
			#$conf["web"]="true";
336
			$writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
336
			$writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
337
			unset($conf["fileAccess::writeTextIntoFile"]);
337
			unset($conf["fileAccess::writeTextIntoFile"]);
338
		
338
 
339
			#如果寫入檔案失敗
339
			#如果寫入檔案失敗
340
			if($writeTextIntoFile["status"]==="false"){
340
			if($writeTextIntoFile["status"]==="false"){
341
			
341
 
342
				#設置錯誤識別
342
				#設置錯誤識別
343
				$result["status"]="false";
343
				$result["status"]="false";
344
				
344
 
345
				#設置錯誤訊息
345
				#設置錯誤訊息
346
				$result["error"]=$writeTextIntoFile;
346
				$result["error"]=$writeTextIntoFile;
347
				
347
 
348
				#回傳結果
348
				#回傳結果
349
				return $result;
349
				return $result;
350
			
350
 
351
				}#if end
351
				}#if end
352
		
352
 
353
			}#if end
353
			}#if end
354
			
354
 
355
		#設置執行正常
355
		#設置執行正常
356
		$result["status"]="true";
356
		$result["status"]="true";
357
	
357
 
358
		#回傳結果
358
		#回傳結果
359
		return $result;
359
		return $result;
360
	
360
 
361
		}#function record end
361
		}#function record end
362
		
362
 
363
	/*
363
	/*
364
	#函式說明:
364
	#函式說明:
365
	#解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
365
	#解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
366
	#回傳結果:
366
	#回傳結果:
367
	#$result["status"],狀態,"true"或"false".
367
	#$result["status"],狀態,"true"或"false".
Line 381... Line 381...
381
	#$conf["sessionName"],字串,儲存log的session變數key.
381
	#$conf["sessionName"],字串,儲存log的session變數key.
382
	#$conf["sessionName"]="";
382
	#$conf["sessionName"]="";
383
	#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
383
	#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
384
	#$conf["line2start"]="";
384
	#$conf["line2start"]="";
385
	#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
385
	#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
386
	#$conf["linesPerTime"]="10";	
386
	#$conf["linesPerTime"]="10";
387
	#參考資料:
387
	#參考資料:
388
	#無.
388
	#無.
389
	#備註:
389
	#備註:
390
	#無.
390
	#無.
391
	*/
391
	*/
392
	public static function parseLog2session($conf){
392
	public static function parseLog2session($conf){
393
	
393
 
394
		#初始化要回傳的結果
394
		#初始化要回傳的結果
395
		$result=array();
395
		$result=array();
396
 
396
 
397
		#儲存當前執行的函數
397
		#儲存當前執行的函數
398
		$result["function"]=__FUNCTION__;
398
		$result["function"]=__FUNCTION__;
399
		
399
 
400
		#如果 $conf 不為陣列
400
		#如果 $conf 不為陣列
401
		if(gettype($conf)!="array"){
401
		if(gettype($conf)!="array"){
402
			
402
 
403
			#設置執行失敗
403
			#設置執行失敗
404
			$result["status"]="false";
404
			$result["status"]="false";
405
			
405
 
406
			#設置執行錯誤訊息
406
			#設置執行錯誤訊息
407
			$result["error"][]="\$conf變數須為陣列形態";
407
			$result["error"][]="\$conf變數須為陣列形態";
408
 
408
 
409
			#如果傳入的參數為 null
409
			#如果傳入的參數為 null
410
			if($conf==null){
410
			if($conf==null){
411
				
411
 
412
				#設置執行錯誤訊息
412
				#設置執行錯誤訊息
413
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
413
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
414
				
414
 
415
				}#if end
415
				}#if end
416
 
416
 
417
			#回傳結果
417
			#回傳結果
418
			return $result;
418
			return $result;
419
	
419
 
420
			}#if end
420
			}#if end
421
			
421
 
422
		#儲存使用的參數
422
		#儲存使用的參數
423
		$result["argu"]=$conf;
423
		$result["argu"]=$conf;
424
	
424
 
425
		#函式說明:
425
		#函式說明:
426
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
426
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
427
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
427
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
428
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
428
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
429
		#$result["function"],當前執行的函式名稱.
429
		#$result["function"],當前執行的函式名稱.
Line 468... Line 468...
468
		#$conf["arrayCountEqualCheck"][]=array();
468
		#$conf["arrayCountEqualCheck"][]=array();
469
		#參考資料來源:
469
		#參考資料來源:
470
		#array_keys=>http://php.net/manual/en/function.array-keys.php
470
		#array_keys=>http://php.net/manual/en/function.array-keys.php
471
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
471
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
472
		unset($conf["variableCheck::checkArguments"]);
472
		unset($conf["variableCheck::checkArguments"]);
473
		
473
 
474
		#如果檢查失敗
474
		#如果檢查失敗
475
		if($checkArguments["status"]=="false"){
475
		if($checkArguments["status"]=="false"){
476
			
476
 
477
			#設置錯誤識別
477
			#設置錯誤識別
478
			$result["status"]="false";
478
			$result["status"]="false";
479
			
479
 
480
			#設置錯誤訊息
480
			#設置錯誤訊息
481
			$result["error"]=$checkArguments;
481
			$result["error"]=$checkArguments;
482
			
482
 
483
			#回傳結果
483
			#回傳結果
484
			return $result;
484
			return $result;
485
			
485
 
486
			}#if end
486
			}#if end
487
	
487
 
488
		#如果檢查不通過
488
		#如果檢查不通過
489
		if($checkArguments["passed"]=="false"){
489
		if($checkArguments["passed"]=="false"){
490
			
490
 
491
			#設置錯誤識別
491
			#設置錯誤識別
492
			$result["status"]="false";
492
			$result["status"]="false";
493
			
493
 
494
			#設置錯誤訊息
494
			#設置錯誤訊息
495
			$result["error"]=$checkArguments;
495
			$result["error"]=$checkArguments;
496
			
496
 
497
			#回傳結果
497
			#回傳結果
498
			return $result;
498
			return $result;
499
			
499
 
500
			}#if end
500
			}#if end
501
		
501
 
502
		#涵式說明:
502
		#涵式說明:
503
		#從檔案尾部開始讀取
503
		#從檔案尾部開始讀取
504
		#回傳結果:
504
		#回傳結果:
505
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
505
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
506
		#$result["error"],錯誤訊息.
506
		#$result["error"],錯誤訊息.
507
		#$result["function"],當前執行的函數名稱.
507
		#$result["function"],當前執行的函數名稱.
508
		#$result["argu"],所使用的參數.	
508
		#$result["argu"],所使用的參數.
509
		#$result["content"],讀取到的內容陣列.
509
		#$result["content"],讀取到的內容陣列.
510
		#$result["totalLineCount"],檔案的總共行數.
510
		#$result["totalLineCount"],檔案的總共行數.
511
		#$result["lines"],取得輸出的行數.
511
		#$result["lines"],取得輸出的行數.
512
		#$result["lineNum"],取得當前行數.
512
		#$result["lineNum"],取得當前行數.
513
		#必填參數:
513
		#必填參數:
514
		#$conf["file"],字串,檔案的路徑與名稱.
514
		#$conf["file"],字串,檔案的路徑與名稱.
515
		$conf["fileAccess::tail"]["file"]=$conf["path"];
515
		$conf["fileAccess::tail"]["file"]=$conf["path"];
516
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
516
		#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
517
		$conf["fileAccess::tail"]["fileArgu"]=$conf["fileArgu"];
517
		$conf["fileAccess::tail"]["fileArgu"]=$conf["fileArgu"];
518
		#可省略參數:
518
		#可省略參數:
519
		
519
 
520
		#如果有 $conf["line2start"]
520
		#如果有 $conf["line2start"]
521
		if(isset($conf["line2start"])){
521
		if(isset($conf["line2start"])){
522
		
522
 
523
			#$conf["line2start"],字串,從第幾列開始,預設為總行書減去linesPerTime+1.
523
			#$conf["line2start"],字串,從第幾列開始,預設為總行書減去linesPerTime+1.
524
			$conf["fileAccess::tail"]["line2start"]=$conf["line2start"];
524
			$conf["fileAccess::tail"]["line2start"]=$conf["line2start"];
525
		
525
 
526
			}#if end
526
			}#if end
527
		
527
 
528
		#如果有設置 $conf["linesPerTime"]
528
		#如果有設置 $conf["linesPerTime"]
529
		if(isset($conf["linesPerTime"])){
529
		if(isset($conf["linesPerTime"])){
530
		
530
 
531
			#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
531
			#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
532
			$conf["fileAccess::tail"]["linesPerTime"]=$conf["linesPerTime"];
532
			$conf["fileAccess::tail"]["linesPerTime"]=$conf["linesPerTime"];
533
		
533
 
534
			}#if end
534
			}#if end
535
		
535
 
536
		$tail=fileAccess::tail($conf["fileAccess::tail"]);
536
		$tail=fileAccess::tail($conf["fileAccess::tail"]);
537
		unset($conf["fileAccess::tail"]);
537
		unset($conf["fileAccess::tail"]);
538
		
538
 
539
		#如果讀取內容失敗
539
		#如果讀取內容失敗
540
		if($tail["status"]==="false"){
540
		if($tail["status"]==="false"){
541
		
541
 
542
			#設置錯誤識別
542
			#設置錯誤識別
543
			$result["status"]="false";
543
			$result["status"]="false";
544
			
544
 
545
			#設置錯誤訊息
545
			#設置錯誤訊息
546
			$result["error"]=$tail;
546
			$result["error"]=$tail;
547
			
547
 
548
			#回傳結果
548
			#回傳結果
549
			return $result;
549
			return $result;
550
		
550
 
551
			}#if end
551
			}#if end
552
		
552
 
553
		#取得當前行數
553
		#取得當前行數
554
		$result["lineNum"]=$tail["lineNum"];
554
		$result["lineNum"]=$tail["lineNum"];
555
		
555
 
556
		#函式說明:
556
		#函式說明:
557
		#取得session變數裡面的數值,然後卸除該session變數
557
		#取得session變數裡面的數值,然後卸除該session變數
558
		#回傳的結果:
558
		#回傳的結果:
559
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
559
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
560
		#$result["error"],錯誤訊息.
560
		#$result["error"],錯誤訊息.
Line 575... Line 575...
575
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
575
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
576
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
576
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
577
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
577
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
578
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
578
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
579
		unset($conf["session::getSessionValu"]);
579
		unset($conf["session::getSessionValu"]);
580
		
580
 
581
		#如果讀取內容失敗
581
		#如果讀取內容失敗
582
		if($getSessionValue["status"]==="false"){
582
		if($getSessionValue["status"]==="false"){
583
		
583
 
584
			#設置錯誤識別
584
			#設置錯誤識別
585
			$result["status"]="false";
585
			$result["status"]="false";
586
			
586
 
587
			#設置錯誤訊息
587
			#設置錯誤訊息
588
			$result["error"]=$getSessionValue;
588
			$result["error"]=$getSessionValue;
589
			
589
 
590
			#回傳結果
590
			#回傳結果
591
			return $result;
591
			return $result;
592
		
592
 
593
			}#if end
593
			}#if end
594
			
594
 
595
		#如果 session 變數不存在
595
		#如果 session 變數不存在
596
		if($getSessionValue["founded"]==="false"){
596
		if($getSessionValue["founded"]==="false"){
597
						
597
 
598
			#設置錯誤識別
598
			#設置錯誤識別
599
			$result["status"]="false";
599
			$result["status"]="false";
600
			
600
 
601
			#設置錯誤訊息
601
			#設置錯誤訊息
602
			$result["error"]=$getSessionValue;
602
			$result["error"]=$getSessionValue;
603
			
603
 
604
			#回傳結果
604
			#回傳結果
605
			return $result;
605
			return $result;
606
		
606
 
607
			}#if end
607
			}#if end
608
				
608
 
609
		#初始化訊息陣列為空
609
		#初始化訊息陣列為空
610
		#$_SESSION[$conf["sessionName"]]=array();
610
		#$_SESSION[$conf["sessionName"]]=array();
611
				
611
 
612
		#函式說明:
612
		#函式說明:
613
		#取得session變數裡面的數值,然後卸除該session變數
613
		#取得session變數裡面的數值,然後卸除該session變數
614
		#回傳的結果:
614
		#回傳的結果:
615
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
615
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
616
		#$result["error"],錯誤訊息.
616
		#$result["error"],錯誤訊息.
Line 631... Line 631...
631
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
631
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
632
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
632
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
633
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
633
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
634
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
634
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
635
		unset($conf["session::getSessionValu"]);
635
		unset($conf["session::getSessionValu"]);
636
		
636
 
637
		#如果讀取內容失敗
637
		#如果讀取內容失敗
638
		if($getSessionValue["status"]==="false"){
638
		if($getSessionValue["status"]==="false"){
639
		
639
 
640
			#設置錯誤識別
640
			#設置錯誤識別
641
			$result["status"]="false";
641
			$result["status"]="false";
642
			
642
 
643
			#設置錯誤訊息
643
			#設置錯誤訊息
644
			$result["error"]=$getSessionValue;
644
			$result["error"]=$getSessionValue;
645
			
645
 
646
			#回傳結果
646
			#回傳結果
647
			return $result;
647
			return $result;
648
		
648
 
649
			}#if end
649
			}#if end
650
			
650
 
651
		#如果 session 變數不存在
651
		#如果 session 變數不存在
652
		if($getSessionValue["founded"]==="false"){
652
		if($getSessionValue["founded"]==="false"){
653
						
653
 
654
			#設置錯誤識別
654
			#設置錯誤識別
655
			$result["status"]="false";
655
			$result["status"]="false";
656
			
656
 
657
			#設置錯誤訊息
657
			#設置錯誤訊息
658
			$result["error"]=$getSessionValue;
658
			$result["error"]=$getSessionValue;
659
			
659
 
660
			#回傳結果
660
			#回傳結果
661
			return $result;
661
			return $result;
662
		
662
 
663
			}#if end	
663
			}#if end
664
			
664
 
665
		#函式說明:
665
		#函式說明:
666
		#取得session變數裡面的數值,然後卸除該session變數
666
		#取得session變數裡面的數值,然後卸除該session變數
667
		#回傳的結果:
667
		#回傳的結果:
668
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
668
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
669
		#$result["error"],錯誤訊息.
669
		#$result["error"],錯誤訊息.
Line 684... Line 684...
684
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
684
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
685
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
685
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
686
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
686
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
687
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
687
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
688
		unset($conf["session::getSessionValu"]);
688
		unset($conf["session::getSessionValu"]);
689
		
689
 
690
		#如果讀取內容失敗
690
		#如果讀取內容失敗
691
		if($getSessionValue["status"]==="false"){
691
		if($getSessionValue["status"]==="false"){
692
		
692
 
693
			#設置錯誤識別
693
			#設置錯誤識別
694
			$result["status"]="false";
694
			$result["status"]="false";
695
			
695
 
696
			#設置錯誤訊息
696
			#設置錯誤訊息
697
			$result["error"]=$getSessionValue;
697
			$result["error"]=$getSessionValue;
698
			
698
 
699
			#回傳結果
699
			#回傳結果
700
			return $result;
700
			return $result;
701
		
701
 
702
			}#if end
702
			}#if end
703
			
703
 
704
		#如果 session 變數不存在
704
		#如果 session 變數不存在
705
		if($getSessionValue["founded"]==="false"){
705
		if($getSessionValue["founded"]==="false"){
706
						
706
 
707
			#設置錯誤識別
707
			#設置錯誤識別
708
			$result["status"]="false";
708
			$result["status"]="false";
709
			
709
 
710
			#設置錯誤訊息
710
			#設置錯誤訊息
711
			$result["error"]=$getSessionValue;
711
			$result["error"]=$getSessionValue;
712
			
712
 
713
			#回傳結果
713
			#回傳結果
714
			return $result;
714
			return $result;
715
		
715
 
716
			}#if end
716
			}#if end
717
			
717
 
718
		#函式說明:
718
		#函式說明:
719
		#取得session變數裡面的數值,然後卸除該session變數
719
		#取得session變數裡面的數值,然後卸除該session變數
720
		#回傳的結果:
720
		#回傳的結果:
721
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
721
		#$result["status"],執行是否正常,"true"代表正常,"false"代表有誤.
722
		#$result["error"],錯誤訊息.
722
		#$result["error"],錯誤訊息.
Line 737... Line 737...
737
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
737
		#call-time-pass-by-reference-easy-fix-available=>http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available
738
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
738
		#可變變數=>http://emn178.pixnet.net/blog/post/80119035-php%E6%95%99%E5%AD%B8---%E8%AE%8A%E6%95%B8%28variables%29
739
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
739
		#卸除參考的原始變數=>http://stackoverflow.com/questions/6654538/php-function-to-unset-variables-passed-by-reference
740
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
740
		$getSessionValue=session::getSessionValue($conf["session::getSessionValu"]);
741
		unset($conf["session::getSessionValu"]);
741
		unset($conf["session::getSessionValu"]);
742
		
742
 
743
		#如果讀取內容失敗
743
		#如果讀取內容失敗
744
		if($getSessionValue["status"]==="false"){
744
		if($getSessionValue["status"]==="false"){
745
		
745
 
746
			#設置錯誤識別
746
			#設置錯誤識別
747
			$result["status"]="false";
747
			$result["status"]="false";
748
			
748
 
749
			#設置錯誤訊息
749
			#設置錯誤訊息
750
			$result["error"]=$getSessionValue;
750
			$result["error"]=$getSessionValue;
751
			
751
 
752
			#回傳結果
752
			#回傳結果
753
			return $result;
753
			return $result;
754
		
754
 
755
			}#if end
755
			}#if end
756
			
756
 
757
		#如果 session 變數不存在
757
		#如果 session 變數不存在
758
		if($getSessionValue["founded"]==="false"){
758
		if($getSessionValue["founded"]==="false"){
759
						
759
 
760
			#設置錯誤識別
760
			#設置錯誤識別
761
			$result["status"]="false";
761
			$result["status"]="false";
762
			
762
 
763
			#設置錯誤訊息
763
			#設置錯誤訊息
764
			$result["error"]=$getSessionValue;
764
			$result["error"]=$getSessionValue;
765
			
765
 
766
			#回傳結果
766
			#回傳結果
767
			return $result;
767
			return $result;
768
		
768
 
769
			}#if end
769
			}#if end
770
		
770
 
771
		/*
771
		/*
772
		
772
 
773
		#函式說明:
773
		#函式說明:
774
		#撰寫log
774
		#撰寫log
775
		#回傳結果:
775
		#回傳結果:
776
		#$result["status"],狀態,"true"或"false".
776
		#$result["status"],狀態,"true"或"false".
777
		#$result["error"],錯誤訊息陣列.
777
		#$result["error"],錯誤訊息陣列.
Line 787... Line 787...
787
		#可省略參數:
787
		#可省略參數:
788
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
788
		#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
789
		#$conf["rewrite"]="false";
789
		#$conf["rewrite"]="false";
790
		$record=logs::record($conf["logs::record"]);
790
		$record=logs::record($conf["logs::record"]);
791
		unset($conf["logs::record"]);
791
		unset($conf["logs::record"]);
792
		
792
 
793
		#如果執行失敗
793
		#如果執行失敗
794
		if($record["status"]==="false")
794
		if($record["status"]==="false")
795
		{
795
		{
796
			#印出結果
796
			#印出結果
797
			var_dump($record);
797
			var_dump($record);
798
			
798
 
799
			#結束執行
799
			#結束執行
800
			exit;
800
			exit;
801
		
801
 
802
		}#if end
802
		}#if end
803
		
803
 
804
		*/
804
		*/
805
		
805
 
806
		#針對讀取到每行內容
806
		#針對讀取到每行內容
807
		foreach($tail["content"] as $line){
807
		foreach($tail["content"] as $line){
808
		
808
 
809
			#儲存內容到單一訊息變數陣列
809
			#儲存內容到單一訊息變數陣列
810
			$_SESSION[$conf["sessionName"]."_aMsg"][]=$line;
810
			$_SESSION[$conf["sessionName"]."_aMsg"][]=$line;
811
		
811
 
812
			#如果被搜尋的長度大於等於關鍵字長度
812
			#如果被搜尋的長度大於等於關鍵字長度
813
			if( strlen($line)>=strlen($conf["msgStart"]) ){
813
			if( strlen($line)>=strlen($conf["msgStart"]) ){
814
			
814
 
815
				#涵式說明:
815
				#涵式說明:
816
				#取得符合特定字首與字尾的字串
816
				#取得符合特定字首與字尾的字串
817
				#回傳的結果:
817
				#回傳的結果:
818
				#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
818
				#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
819
				#$result["function"],當前執行的函數名稱.
819
				#$result["function"],當前執行的函數名稱.
Line 830... Line 830...
830
				#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
830
				#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
831
				#$conf["tailWord"]="";
831
				#$conf["tailWord"]="";
832
				#參考資料:
832
				#參考資料:
833
				#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
833
				#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
834
				$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
834
				$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
835
				unset($conf["search::getMeetConditionsString"]);	
835
				unset($conf["search::getMeetConditionsString"]);
836
			
836
 
837
				#如果讀取內容失敗
837
				#如果讀取內容失敗
838
				if($getMeetConditionsString["status"]==="false"){
838
				if($getMeetConditionsString["status"]==="false"){
839
				
839
 
840
					#設置錯誤識別
840
					#設置錯誤識別
841
					$result["status"]="false";
841
					$result["status"]="false";
842
					
842
 
843
					#設置錯誤訊息
843
					#設置錯誤訊息
844
					$result["error"]=$getMeetConditionsString;
844
					$result["error"]=$getMeetConditionsString;
845
					
845
 
846
					#回傳結果
846
					#回傳結果
847
					return $result;
847
					return $result;
848
				
848
 
849
					}#if end
849
					}#if end
850
					
850
 
851
				#如果是訊息的開頭
851
				#如果是訊息的開頭
852
				if($getMeetConditionsString["founded"]==="true"){
852
				if($getMeetConditionsString["founded"]==="true"){
853
				
853
 
854
					#如果 發現第一個訊息開頭 的識別為 "false"
854
					#如果 發現第一個訊息開頭 的識別為 "false"
855
					if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){
855
					if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){
856
					
856
 
857
						#將其設置為 "true"
857
						#將其設置為 "true"
858
						$_SESSION[$conf["sessionName"]."_msg1"]="true";
858
						$_SESSION[$conf["sessionName"]."_msg1"]="true";
859
					
859
 
860
						}#if end
860
						}#if end
861
						
861
 
862
					#反之如果 發現第二個訊息開頭 的識別為 "false"
862
					#反之如果 發現第二個訊息開頭 的識別為 "false"
863
					else if($_SESSION[$conf["sessionName"]."_msg2"]==="false"){
863
					else if($_SESSION[$conf["sessionName"]."_msg2"]==="false"){
864
					
864
 
865
						#將其設置為 "true"
865
						#將其設置為 "true"
866
						$_SESSION[$conf["sessionName"]."_msg2"]="true";
866
						$_SESSION[$conf["sessionName"]."_msg2"]="true";
867
					
867
 
868
						}#else end
868
						}#else end
869
						
869
 
870
					#如果遇到已經找到兩個訊息的開頭
870
					#如果遇到已經找到兩個訊息的開頭
871
					if($_SESSION[$conf["sessionName"]."_msg1"]==="true" && $_SESSION[$conf["sessionName"]."_msg2"]==="true"){
871
					if($_SESSION[$conf["sessionName"]."_msg1"]==="true" && $_SESSION[$conf["sessionName"]."_msg2"]==="true"){
872
					
872
 
873
						#移除下個訊息的時間戳記
873
						#移除下個訊息的時間戳記
874
						unset($_SESSION[$conf["sessionName"]."_aMsg"][count($_SESSION[$conf["sessionName"]."_aMsg"])-1]);
874
						unset($_SESSION[$conf["sessionName"]."_aMsg"][count($_SESSION[$conf["sessionName"]."_aMsg"])-1]);
875
						
875
 
876
						/*
876
						/*
877
						#debug
877
						#debug
878
						#函式說明:
878
						#函式說明:
879
						#撰寫log
879
						#撰寫log
880
						#回傳結果:
880
						#回傳結果:
Line 893... Line 893...
893
						#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
893
						#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
894
						#$conf["rewrite"]="false";
894
						#$conf["rewrite"]="false";
895
						logs::record($conf["logs::record"]);
895
						logs::record($conf["logs::record"]);
896
						unset($conf["logs::record"]);
896
						unset($conf["logs::record"]);
897
						*/
897
						*/
898
										
898
 
899
						#儲存單一訊息陣列
899
						#儲存單一訊息陣列
900
						$_SESSION[$conf["sessionName"]][]=$_SESSION[$conf["sessionName"]."_aMsg"];
900
						$_SESSION[$conf["sessionName"]][]=$_SESSION[$conf["sessionName"]."_aMsg"];
901
						
901
 
902
						#初始化訊息的內容為時間戳記而已
902
						#初始化訊息的內容為時間戳記而已
903
						$_SESSION[$conf["sessionName"]."_aMsg"]=array($line);
903
						$_SESSION[$conf["sessionName"]."_aMsg"]=array($line);
904
						
904
 
905
						#設置 發現第二個訊息開頭 的識別為 "false"
905
						#設置 發現第二個訊息開頭 的識別為 "false"
906
						$_SESSION[$conf["sessionName"]."_msg2"]==="false";
906
						$_SESSION[$conf["sessionName"]."_msg2"]==="false";
907
						
907
 
908
						}#if end
908
						}#if end
909
				
909
 
910
					}#if end
910
					}#if end
911
 
911
 
912
				}#if end
912
				}#if end
913
				
913
 
914
			#到這邊為訊息中間的內容
914
			#到這邊為訊息中間的內容
915
			#do nothing...	
915
			#do nothing...
916
			
916
 
917
			#如果 發現第一個訊息開頭 的識別為 "false"
917
			#如果 發現第一個訊息開頭 的識別為 "false"
918
			if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){
918
			if($_SESSION[$conf["sessionName"]."_msg1"]==="false"){
919
			
919
 
920
				#將其設置為 空陣列
920
				#將其設置為 空陣列
921
				$_SESSION[$conf["sessionName"]."_aMsg"]=array();
921
				$_SESSION[$conf["sessionName"]."_aMsg"]=array();
922
			
922
 
923
				}#if end
923
				}#if end
924
			
924
 
925
			}#foreach end
925
			}#foreach end
926
	
926
 
927
		#設置要回傳的訊息陣列
927
		#設置要回傳的訊息陣列
928
		$result["content"]=$_SESSION[$conf["sessionName"]];
928
		$result["content"]=$_SESSION[$conf["sessionName"]];
929
	
929
 
930
		#設置執行正常
930
		#設置執行正常
931
		$result["status"]="true";
931
		$result["status"]="true";
932
	
932
 
933
		#回傳結果
933
		#回傳結果
934
		return $result;
934
		return $result;
935
	
935
 
936
		}#function parseLog2session end
936
		}#function parseLog2session end
937
 
937
 
938
	/*
938
	/*
939
	#函式說明:
939
	#函式說明:
940
	#解析讀取到的log內容,分段成數個訊息(可以有多種)儲存到session陣列中並回傳完整的訊息部分.
940
	#解析讀取到的log內容,分段成數個訊息(可以有多種)儲存到session陣列中並回傳完整的訊息部分.
Line 956... Line 956...
956
	#$conf["sessionName"],字串,儲存log的session變數key.
956
	#$conf["sessionName"],字串,儲存log的session變數key.
957
	#$conf["sessionName"]="";
957
	#$conf["sessionName"]="";
958
	#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
958
	#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
959
	#$conf["line2start"]="";
959
	#$conf["line2start"]="";
960
	#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
960
	#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
961
	#$conf["linesPerTime"]="10";	
961
	#$conf["linesPerTime"]="10";
962
	#參考資料:
962
	#參考資料:
963
	#無.
963
	#無.
964
	#備註:
964
	#備註:
965
	#無.
965
	#無.
966
	*/
966
	*/
967
	public static function parseLog2sessionWithMultiMsgStartSupport($conf){
967
	public static function parseLog2sessionWithMultiMsgStartSupport($conf){
968
	
968
 
969
		#初始化要回傳的結果
969
		#初始化要回傳的結果
970
		$result=array();
970
		$result=array();
971
 
971
 
972
		#儲存當前執行的函數
972
		#儲存當前執行的函數
973
		$result["function"]=__FUNCTION__;
973
		$result["function"]=__FUNCTION__;
974
		
974
 
975
		#如果 $conf 不為陣列
975
		#如果 $conf 不為陣列
976
		if(gettype($conf)!="array"){
976
		if(gettype($conf)!="array"){
977
			
977
 
978
			#設置執行失敗
978
			#設置執行失敗
979
			$result["status"]="false";
979
			$result["status"]="false";
980
			
980
 
981
			#設置執行錯誤訊息
981
			#設置執行錯誤訊息
982
			$result["error"][]="\$conf變數須為陣列形態";
982
			$result["error"][]="\$conf變數須為陣列形態";
983
 
983
 
984
			#如果傳入的參數為 null
984
			#如果傳入的參數為 null
985
			if($conf==null){
985
			if($conf==null){
986
				
986
 
987
				#設置執行錯誤訊息
987
				#設置執行錯誤訊息
988
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
988
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
989
				
989
 
990
				}#if end
990
				}#if end
991
 
991
 
992
			#回傳結果
992
			#回傳結果
993
			return $result;
993
			return $result;
994
	
994
 
995
			}#if end
995
			}#if end
996
			
996
 
997
		#儲存使用的參數
997
		#儲存使用的參數
998
		$result["argu"]=$conf;
998
		$result["argu"]=$conf;
999
	
999
 
1000
		#函式說明:
1000
		#函式說明:
1001
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1001
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1002
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1002
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1003
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1003
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1004
		#$result["function"],當前執行的函式名稱.
1004
		#$result["function"],當前執行的函式名稱.
Line 1043... Line 1043...
1043
		#$conf["arrayCountEqualCheck"][]=array();
1043
		#$conf["arrayCountEqualCheck"][]=array();
1044
		#參考資料來源:
1044
		#參考資料來源:
1045
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1045
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1046
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1046
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1047
		unset($conf["variableCheck::checkArguments"]);
1047
		unset($conf["variableCheck::checkArguments"]);
1048
		
1048
 
1049
		#如果檢查失敗
1049
		#如果檢查失敗
1050
		if($checkArguments["status"]=="false"){
1050
		if($checkArguments["status"]=="false"){
1051
			
1051
 
1052
			#設置錯誤識別
1052
			#設置錯誤識別
1053
			$result["status"]="false";
1053
			$result["status"]="false";
1054
			
1054
 
1055
			#設置錯誤訊息
1055
			#設置錯誤訊息
1056
			$result["error"]=$checkArguments;
1056
			$result["error"]=$checkArguments;
1057
			
1057
 
1058
			#回傳結果
1058
			#回傳結果
1059
			return $result;
1059
			return $result;
1060
			
1060
 
1061
			}#if end
1061
			}#if end
1062
	
1062
 
1063
		#如果檢查不通過
1063
		#如果檢查不通過
1064
		if($checkArguments["passed"]=="false"){
1064
		if($checkArguments["passed"]=="false"){
1065
			
1065
 
1066
			#設置錯誤識別
1066
			#設置錯誤識別
1067
			$result["status"]="false";
1067
			$result["status"]="false";
1068
			
1068
 
1069
			#設置錯誤訊息
1069
			#設置錯誤訊息
1070
			$result["error"]=$checkArguments;
1070
			$result["error"]=$checkArguments;
1071
			
1071
 
1072
			#回傳結果
1072
			#回傳結果
1073
			return $result;
1073
			return $result;
1074
			
1074
 
1075
			}#if end
1075
			}#if end
1076
			
1076
 
1077
		#針對每種訊息格式的開頭
1077
		#針對每種訊息格式的開頭
1078
		foreach($conf["msgStart"] as $msgStart){
1078
		foreach($conf["msgStart"] as $msgStart){
1079
		
1079
 
1080
			#函式說明:
1080
			#函式說明:
1081
			#解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
1081
			#解析讀取到的log內容,分段成數個訊息儲存到session陣列中並回傳完整的訊息部分.
1082
			#回傳結果:
1082
			#回傳結果:
1083
			#$result["status"],狀態,"true"或"false".
1083
			#$result["status"],狀態,"true"或"false".
1084
			#$result["error"],錯誤訊息陣列.
1084
			#$result["error"],錯誤訊息陣列.
Line 1094... Line 1094...
1094
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1094
			#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
1095
			$conf["logs::parseLog2session"]["fileArgu"]=$conf["fileArgu"];
1095
			$conf["logs::parseLog2session"]["fileArgu"]=$conf["fileArgu"];
1096
			#可省略參數:
1096
			#可省略參數:
1097
			#$conf["sessionName"],字串,儲存log的session變數key.
1097
			#$conf["sessionName"],字串,儲存log的session變數key.
1098
			$conf["logs::parseLog2session"]["sessionName"]=$conf["sessionName"];
1098
			$conf["logs::parseLog2session"]["sessionName"]=$conf["sessionName"];
1099
			
1099
 
1100
			#如果有設定 $conf["line2start"]
1100
			#如果有設定 $conf["line2start"]
1101
			if(isset($conf["line2start"])){
1101
			if(isset($conf["line2start"])){
1102
			
1102
 
1103
				#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
1103
				#$conf["line2start"],字串,log從第幾列開始,預設為總行數減去linesPerTime+1.
1104
				$conf["logs::parseLog2session"]["line2start"]=$conf["line2start"];
1104
				$conf["logs::parseLog2session"]["line2start"]=$conf["line2start"];
1105
			
1105
 
1106
				}#if end
1106
				}#if end
1107
			
1107
 
1108
			#如果有設定 $conf["linesPerTime"]
1108
			#如果有設定 $conf["linesPerTime"]
1109
			if(isset($conf["linesPerTime"])){
1109
			if(isset($conf["linesPerTime"])){
1110
			
1110
 
1111
				#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
1111
				#$conf["linesPerTime"],字串,一次最多讀取幾列,預設爲10列.
1112
				$conf["logs::parseLog2session"]["linesPerTime"]=$conf["linesPerTime"];	
1112
				$conf["logs::parseLog2session"]["linesPerTime"]=$conf["linesPerTime"];
1113
			
1113
 
1114
				}#if end
1114
				}#if end
1115
			
1115
 
1116
			$parseLog2session=logs::parseLog2session($conf["logs::parseLog2session"]);
1116
			$parseLog2session=logs::parseLog2session($conf["logs::parseLog2session"]);
1117
			unset($conf["logs::parseLog2session"]);
1117
			unset($conf["logs::parseLog2session"]);
1118
		
1118
 
1119
			#如果執行失敗
1119
			#如果執行失敗
1120
			if($parseLog2session["status"]==="false"){
1120
			if($parseLog2session["status"]==="false"){
1121
			
1121
 
1122
				#設置錯誤識別
1122
				#設置錯誤識別
1123
				$result["status"]="false";
1123
				$result["status"]="false";
1124
				
1124
 
1125
				#設置錯誤訊息
1125
				#設置錯誤訊息
1126
				$result["error"]=$parseLog2session;
1126
				$result["error"]=$parseLog2session;
1127
				
1127
 
1128
				#回傳結果
1128
				#回傳結果
1129
				return $result;
1129
				return $result;
1130
				
1130
 
1131
				}#if end
1131
				}#if end
1132
				
1132
 
1133
			#記錄當前行數.
1133
			#記錄當前行數.
1134
			$result["lineNum"]=$parseLog2session["lineNum"];	
1134
			$result["lineNum"]=$parseLog2session["lineNum"];
1135
				
1135
 
1136
			#記錄結果
1136
			#記錄結果
1137
			$resultContent[]=$parseLog2session["content"];
1137
			$resultContent[]=$parseLog2session["content"];
1138
		
1138
 
1139
			}#foreach end
1139
			}#foreach end
1140
		
1140
 
1141
		#初始化要回傳的內容
1141
		#初始化要回傳的內容
1142
		$result["content"]=array();
1142
		$result["content"]=array();
1143
		
1143
 
1144
		#合併陣列
1144
		#合併陣列
1145
		foreach($resultContent as $rc){
1145
		foreach($resultContent as $rc){
1146
		
1146
 
1147
			#函式說明:
1147
			#函式說明:
1148
			#將多個一維陣列串聯起來,key從0開始排序.
1148
			#將多個一維陣列串聯起來,key從0開始排序.
1149
			#回傳的結果:
1149
			#回傳的結果:
1150
			#$result["status"],"true"表執行正常,"false"代表執行不正常.
1150
			#$result["status"],"true"表執行正常,"false"代表執行不正常.
1151
			#$result["error"],錯誤訊息陣列.
1151
			#$result["error"],錯誤訊息陣列.
Line 1157... Line 1157...
1157
			#可省略的參數:
1157
			#可省略的參數:
1158
			#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
1158
			#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
1159
			#$conf["allowRepeat"]="true";
1159
			#$conf["allowRepeat"]="true";
1160
			$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
1160
			$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
1161
			unset($conf["arrays::mergeArray"]);
1161
			unset($conf["arrays::mergeArray"]);
1162
			
1162
 
1163
			#如果檢查失敗
1163
			#如果檢查失敗
1164
			if($mergeArray["status"]=="false"){
1164
			if($mergeArray["status"]=="false"){
1165
				
1165
 
1166
				#設置錯誤識別
1166
				#設置錯誤識別
1167
				$result["status"]="false";
1167
				$result["status"]="false";
1168
				
1168
 
1169
				#設置錯誤訊息
1169
				#設置錯誤訊息
1170
				$result["error"]=$mergeArray;
1170
				$result["error"]=$mergeArray;
1171
				
1171
 
1172
				#回傳結果
1172
				#回傳結果
1173
				return $result;
1173
				return $result;
1174
				
1174
 
1175
				}#if end
1175
				}#if end
1176
			
1176
 
1177
			#取得合併好的一維陣列
1177
			#取得合併好的一維陣列
1178
			$result["content"]=$mergeArray["content"];
1178
			$result["content"]=$mergeArray["content"];
1179
			
1179
 
1180
			}#foreach end
1180
			}#foreach end
1181
		
1181
 
1182
		#重新設置 sesssion 變數
1182
		#重新設置 sesssion 變數
1183
		#涵式說明:
1183
		#涵式說明:
1184
		#建立session變數,並指派其內容
1184
		#建立session變數,並指派其內容
1185
		#回傳的結果:
1185
		#回傳的結果:
1186
		#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
1186
		#$result["status"],執行狀態,"true"代表執行成功;"false"代表執行失敗.
1187
		#$result["error"],錯誤訊息陣列.
1187
		#$result["error"],錯誤訊息陣列.
1188
		#$result["function"],當前執行的函數名稱.
1188
		#$result["function"],當前執行的函數名稱.
1189
		#必填的參數:
1189
		#必填的參數:
1190
		#$conf["sessionName"],字串,要建立的session變數名稱,建議可採用name1.name2.name3的格式.
1190
		#$conf["sessionName"],字串,要建立的session變數名稱,建議可採用name1.name2.name3的格式.
1191
		$conf["session::create"]["sessionName"]=$conf["sessionName"];
1191
		$conf["session::create"]["sessionName"]=$conf["sessionName"];
1192
		#可省略的參數: 
1192
		#可省略的參數:
1193
		#$conf["sessionValue"],字串,session變數的內容,預設為"".
1193
		#$conf["sessionValue"],字串,session變數的內容,預設為"".
1194
		$conf["session::create"]["sessionValue"]=$result["content"];
1194
		$conf["session::create"]["sessionValue"]=$result["content"];
1195
		$create=session::create($conf["session::create"]);
1195
		$create=session::create($conf["session::create"]);
1196
		unset($conf["session::create"]);
1196
		unset($conf["session::create"]);
1197
			
1197
 
1198
		#如果執行失敗
1198
		#如果執行失敗
1199
		if($create["status"]==="false"){
1199
		if($create["status"]==="false"){
1200
		
1200
 
1201
			#設置錯誤識別
1201
			#設置錯誤識別
1202
			$result["status"]="false";
1202
			$result["status"]="false";
1203
			
1203
 
1204
			#設置錯誤訊息
1204
			#設置錯誤訊息
1205
			$result["error"]=$create;
1205
			$result["error"]=$create;
1206
			
1206
 
1207
			#回傳結果
1207
			#回傳結果
1208
			return $result;
1208
			return $result;
1209
			
1209
 
1210
			}#if end	
1210
			}#if end
1211
				
1211
 
1212
		#設置執行正常
1212
		#設置執行正常
1213
		$result["status"]="true";
1213
		$result["status"]="true";
1214
		
1214
 
1215
		#回傳結果
1215
		#回傳結果
1216
		return $result;
1216
		return $result;
1217
	
1217
 
1218
		}#parseLog2sessionWithMultiMsgStartSupport
1218
		}#parseLog2sessionWithMultiMsgStartSupport
1219
 
1219
 
1220
	/*
1220
	/*
1221
	#函式說明:
1221
	#函式說明:
1222
	#解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
1222
	#解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
Line 1239... Line 1239...
1239
	#無.
1239
	#無.
1240
	#備註:
1240
	#備註:
1241
	#無.
1241
	#無.
1242
	*/
1242
	*/
1243
	public static function filterMsgPack($conf){
1243
	public static function filterMsgPack($conf){
1244
	
1244
 
1245
		#初始化要回傳的結果
1245
		#初始化要回傳的結果
1246
		$result=array();
1246
		$result=array();
1247
 
1247
 
1248
		#取得當前執行的函數名稱
1248
		#取得當前執行的函數名稱
1249
		$result["function"]=__FUNCTION__;
1249
		$result["function"]=__FUNCTION__;
Line 1284... Line 1284...
1284
 
1284
 
1285
			#回傳結果
1285
			#回傳結果
1286
			return $result;
1286
			return $result;
1287
 
1287
 
1288
			}#if end
1288
			}#if end
1289
		
1289
 
1290
		#初始化符合條件的訊息陣列
1290
		#初始化符合條件的訊息陣列
1291
		$result["content"]=array();	
1291
		$result["content"]=array();
1292
			
1292
 
1293
		#函式說明:
1293
		#函式說明:
1294
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1294
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1295
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1295
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1296
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1296
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1297
		#$result["function"],當前執行的函式名稱.
1297
		#$result["function"],當前執行的函式名稱.
Line 1336... Line 1336...
1336
		#$conf["arrayCountEqualCheck"][]=array();
1336
		#$conf["arrayCountEqualCheck"][]=array();
1337
		#參考資料來源:
1337
		#參考資料來源:
1338
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1338
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1339
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1339
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1340
		unset($conf["variableCheck::checkArguments"]);
1340
		unset($conf["variableCheck::checkArguments"]);
1341
	
1341
 
1342
		#如果檢查失敗
1342
		#如果檢查失敗
1343
		if($checkArguments["status"]=="false"){
1343
		if($checkArguments["status"]=="false"){
1344
			
1344
 
1345
			#設置錯誤識別
1345
			#設置錯誤識別
1346
			$result["status"]="false";
1346
			$result["status"]="false";
1347
			
1347
 
1348
			#設置錯誤訊息
1348
			#設置錯誤訊息
1349
			$result["error"]=$checkArguments;
1349
			$result["error"]=$checkArguments;
1350
			
1350
 
1351
			#回傳結果
1351
			#回傳結果
1352
			return $result;
1352
			return $result;
1353
			
1353
 
1354
			}#if end
1354
			}#if end
1355
	
1355
 
1356
		#如果檢查不通過
1356
		#如果檢查不通過
1357
		if($checkArguments["passed"]=="false"){
1357
		if($checkArguments["passed"]=="false"){
1358
			
1358
 
1359
			#設置錯誤識別
1359
			#設置錯誤識別
1360
			$result["status"]="false";
1360
			$result["status"]="false";
1361
			
1361
 
1362
			#設置錯誤訊息
1362
			#設置錯誤訊息
1363
			$result["error"]=$checkArguments;
1363
			$result["error"]=$checkArguments;
1364
			
1364
 
1365
			#回傳結果
1365
			#回傳結果
1366
			return $result;
1366
			return $result;
1367
			
1367
 
1368
			}#if end
1368
			}#if end
1369
		
1369
 
1370
		#初始化關鍵字最遠的位置為0
1370
		#初始化關鍵字最遠的位置為0
1371
		$farAddr=0;
1371
		$farAddr=0;
1372
			
1372
 
1373
		#尋找關鍵字裡面位置最遠者
1373
		#尋找關鍵字裡面位置最遠者
1374
		foreach($conf["keyWordAddr"] as $kwa){
1374
		foreach($conf["keyWordAddr"] as $kwa){
1375
		
1375
 
1376
			#如果發現更遠的
1376
			#如果發現更遠的
1377
			if($kwa>$farAddr){
1377
			if($kwa>$farAddr){
1378
			
1378
 
1379
				#套用之
1379
				#套用之
1380
				$farAddr=$kwa;
1380
				$farAddr=$kwa;
1381
			
1381
 
1382
				}#if end
1382
				}#if end
1383
		
1383
 
1384
			}#foreach end	
1384
			}#foreach end
1385
			
1385
 
1386
		#針對每個訊息
1386
		#針對每個訊息
1387
		foreach($conf["msgs"] as $msg){
1387
		foreach($conf["msgs"] as $msg){
1388
		
1388
 
1389
			/*
1389
			/*
1390
			#函式說明:
1390
			#函式說明:
1391
			#撰寫log
1391
			#撰寫log
1392
			#回傳結果:
1392
			#回傳結果:
1393
			#$result["status"],狀態,"true"或"false".
1393
			#$result["status"],狀態,"true"或"false".
Line 1405... Line 1405...
1405
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1405
			#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1406
			#$conf["rewrite"]="false";
1406
			#$conf["rewrite"]="false";
1407
			logs::record($conf["logs::record"]);
1407
			logs::record($conf["logs::record"]);
1408
			unset($conf["logs::record"]);
1408
			unset($conf["logs::record"]);
1409
			*/
1409
			*/
1410
		
1410
 
1411
			#針對訊息中的每一列
1411
			#針對訊息中的每一列
1412
			foreach($msg as $line){
1412
			foreach($msg as $line){
1413
			
1413
 
1414
				#如果該行內容的長度不到關鍵字的位置
1414
				#如果該行內容的長度不到關鍵字的位置
1415
				if(strlen($line)<($farAddr+1)){
1415
				if(strlen($line)<($farAddr+1)){
1416
				
1416
 
1417
					#換下一列
1417
					#換下一列
1418
					continue;
1418
					continue;
1419
				
1419
 
1420
					}#if end
1420
					}#if end
1421
					
1421
 
1422
				#到這裡代表長度ok
1422
				#到這裡代表長度ok
1423
				
1423
 
1424
				#debug
1424
				#debug
1425
				$left=array();$right=array();
1425
				$left=array();$right=array();
1426
				
1426
 
1427
				#針對每個關鍵字
1427
				#針對每個關鍵字
1428
				foreach($conf["keyWord"] as $index =>$keyWord){
1428
				foreach($conf["keyWord"] as $index =>$keyWord){
1429
				
1429
 
1430
					#如果被搜尋的列位置不等於對應的關鍵字
1430
					#如果被搜尋的列位置不等於對應的關鍵字
1431
					if($line[$conf["keyWordAddr"][$index]]!==$keyWord){
1431
					if($line[$conf["keyWordAddr"][$index]]!==$keyWord){
1432
					
1432
 
1433
						#換下一列
1433
						#換下一列
1434
						continue 2;
1434
						continue 2;
1435
					
1435
 
1436
						}#if end
1436
						}#if end
1437
				
1437
 
1438
					$left[]=$line[$conf["keyWordAddr"][$index]];
1438
					$left[]=$line[$conf["keyWordAddr"][$index]];
1439
					$right[]=$keyWord;
1439
					$right[]=$keyWord;
1440
				
1440
 
1441
					}#foreach end
1441
					}#foreach end
1442
			
1442
 
1443
				/*	
1443
				/*
1444
				#函式說明:
1444
				#函式說明:
1445
				#撰寫log
1445
				#撰寫log
1446
				#回傳結果:
1446
				#回傳結果:
1447
				#$result["status"],狀態,"true"或"false".
1447
				#$result["status"],狀態,"true"或"false".
1448
				#$result["error"],錯誤訊息陣列.
1448
				#$result["error"],錯誤訊息陣列.
Line 1459... Line 1459...
1459
				#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1459
				#$conf["rewrite"],預設為"false",接續寫入;反之"true"代表重新寫入.
1460
				#$conf["rewrite"]="false";
1460
				#$conf["rewrite"]="false";
1461
				logs::record($conf["logs::record"]);
1461
				logs::record($conf["logs::record"]);
1462
				unset($conf["logs::record"]);
1462
				unset($conf["logs::record"]);
1463
				*/
1463
				*/
1464
					
1464
 
1465
				#到這裡代關鍵字都符合位置
1465
				#到這裡代關鍵字都符合位置
1466
				
1466
 
1467
				#儲存符合條件的訊息
1467
				#儲存符合條件的訊息
1468
				$result["content"][]=$msg;
1468
				$result["content"][]=$msg;
1469
			
1469
 
1470
				}#foreach end
1470
				}#foreach end
1471
		
1471
 
1472
			}#foreach end
1472
			}#foreach end
1473
	
1473
 
1474
		#設置執行正常
1474
		#設置執行正常
1475
		$result["status"]="true";
1475
		$result["status"]="true";
1476
	
1476
 
1477
		#回傳結果
1477
		#回傳結果
1478
		return $result;
1478
		return $result;
1479
	
1479
 
1480
		}#function filterMsgPack end
1480
		}#function filterMsgPack end
1481
		
1481
 
1482
	/*
1482
	/*
1483
	#函式說明:
1483
	#函式說明:
1484
	#解析多個訊息陣列,尋找符合其中一組關鍵字出現的訊息,並回傳之.
1484
	#解析多個訊息陣列,尋找符合其中一組關鍵字出現的訊息,並回傳之.
1485
	#回傳結果:
1485
	#回傳結果:
1486
	#$result["status"],狀態,"true"或"false".
1486
	#$result["status"],狀態,"true"或"false".
Line 1501... Line 1501...
1501
	#無.
1501
	#無.
1502
	#備註:
1502
	#備註:
1503
	#無.
1503
	#無.
1504
	*/
1504
	*/
1505
	public static function filterMsgPackWithMultiKeywordSupport($conf){
1505
	public static function filterMsgPackWithMultiKeywordSupport($conf){
1506
	
1506
 
1507
		#初始化要回傳的結果
1507
		#初始化要回傳的結果
1508
		$result=array();
1508
		$result=array();
1509
 
1509
 
1510
		#取得當前執行的函數名稱
1510
		#取得當前執行的函數名稱
1511
		$result["function"]=__FUNCTION__;
1511
		$result["function"]=__FUNCTION__;
Line 1546... Line 1546...
1546
 
1546
 
1547
			#回傳結果
1547
			#回傳結果
1548
			return $result;
1548
			return $result;
1549
 
1549
 
1550
			}#if end
1550
			}#if end
1551
		
1551
 
1552
		#初始化符合條件的訊息陣列
1552
		#初始化符合條件的訊息陣列
1553
		$result["content"]=array();	
1553
		$result["content"]=array();
1554
			
1554
 
1555
		#函式說明:
1555
		#函式說明:
1556
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1556
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1557
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1557
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1558
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1558
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1559
		#$result["function"],當前執行的函式名稱.
1559
		#$result["function"],當前執行的函式名稱.
Line 1598... Line 1598...
1598
		#$conf["arrayCountEqualCheck"][]=array();
1598
		#$conf["arrayCountEqualCheck"][]=array();
1599
		#參考資料來源:
1599
		#參考資料來源:
1600
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1600
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1601
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1601
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1602
		unset($conf["variableCheck::checkArguments"]);
1602
		unset($conf["variableCheck::checkArguments"]);
1603
	
1603
 
1604
		#如果檢查失敗
1604
		#如果檢查失敗
1605
		if($checkArguments["status"]=="false"){
1605
		if($checkArguments["status"]=="false"){
1606
			
1606
 
1607
			#設置錯誤識別
1607
			#設置錯誤識別
1608
			$result["status"]="false";
1608
			$result["status"]="false";
1609
			
1609
 
1610
			#設置錯誤訊息
1610
			#設置錯誤訊息
1611
			$result["error"]=$checkArguments;
1611
			$result["error"]=$checkArguments;
1612
			
1612
 
1613
			#回傳結果
1613
			#回傳結果
1614
			return $result;
1614
			return $result;
1615
			
1615
 
1616
			}#if end
1616
			}#if end
1617
	
1617
 
1618
		#如果檢查不通過
1618
		#如果檢查不通過
1619
		if($checkArguments["passed"]=="false"){
1619
		if($checkArguments["passed"]=="false"){
1620
			
1620
 
1621
			#設置錯誤識別
1621
			#設置錯誤識別
1622
			$result["status"]="false";
1622
			$result["status"]="false";
1623
			
1623
 
1624
			#設置錯誤訊息
1624
			#設置錯誤訊息
1625
			$result["error"]=$checkArguments;
1625
			$result["error"]=$checkArguments;
1626
			
1626
 
1627
			#回傳結果
1627
			#回傳結果
1628
			return $result;
1628
			return $result;
1629
			
1629
 
1630
			}#if end
1630
			}#if end
1631
			
1631
 
1632
		#針對每個 $conf["keyWords"]
1632
		#針對每個 $conf["keyWords"]
1633
		foreach($conf["keyWords"] as $index=>$keyWord){
1633
		foreach($conf["keyWords"] as $index=>$keyWord){
1634
		
1634
 
1635
			#函式說明:
1635
			#函式說明:
1636
			#解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
1636
			#解析多個訊息陣列,尋找有關鍵字出現的訊息,並回傳之.
1637
			#回傳結果:
1637
			#回傳結果:
1638
			#$result["status"],狀態,"true"或"false".
1638
			#$result["status"],狀態,"true"或"false".
1639
			#$result["error"],錯誤訊息陣列.
1639
			#$result["error"],錯誤訊息陣列.
Line 1649... Line 1649...
1649
			$conf["logs::filterMsgPack"]["keyWordAddr"]=$conf["keyWordsAddr"][$index];
1649
			$conf["logs::filterMsgPack"]["keyWordAddr"]=$conf["keyWordsAddr"][$index];
1650
			#可省略參數:
1650
			#可省略參數:
1651
			#無
1651
			#無
1652
			$filterMsgPack=logs::filterMsgPack($conf["logs::filterMsgPack"]);
1652
			$filterMsgPack=logs::filterMsgPack($conf["logs::filterMsgPack"]);
1653
			unset($conf["logs::filterMsgPack"]);
1653
			unset($conf["logs::filterMsgPack"]);
1654
		
1654
 
1655
			#如果尋找關鍵字出現的訊息失敗
1655
			#如果尋找關鍵字出現的訊息失敗
1656
			if($filterMsgPack["status"]==="false"){
1656
			if($filterMsgPack["status"]==="false"){
1657
			
1657
 
1658
				#設置錯誤識別
1658
				#設置錯誤識別
1659
				$result["status"]="false";
1659
				$result["status"]="false";
1660
				
1660
 
1661
				#設置錯誤訊息
1661
				#設置錯誤訊息
1662
				$result["error"]=$filterMsgPack;
1662
				$result["error"]=$filterMsgPack;
1663
				
1663
 
1664
				#回傳結果
1664
				#回傳結果
1665
				return $result;
1665
				return $result;
1666
			
1666
 
1667
				}#if end
1667
				}#if end
1668
		
1668
 
1669
			#儲存有關鍵字的訊息
1669
			#儲存有關鍵字的訊息
1670
			$resContent[]=$filterMsgPack["content"];
1670
			$resContent[]=$filterMsgPack["content"];
1671
		
1671
 
1672
			}#foreach end
1672
			}#foreach end
1673
	
1673
 
1674
		#合併陣列
1674
		#合併陣列
1675
		foreach($resContent as $rc){
1675
		foreach($resContent as $rc){
1676
		
1676
 
1677
			#函式說明:
1677
			#函式說明:
1678
			#將多個一維陣列串聯起來,key從0開始排序.
1678
			#將多個一維陣列串聯起來,key從0開始排序.
1679
			#回傳的結果:
1679
			#回傳的結果:
1680
			#$result["status"],"true"表執行正常,"false"代表執行不正常.
1680
			#$result["status"],"true"表執行正常,"false"代表執行不正常.
1681
			#$result["error"],錯誤訊息陣列.
1681
			#$result["error"],錯誤訊息陣列.
Line 1687... Line 1687...
1687
			#可省略的參數:
1687
			#可省略的參數:
1688
			#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
1688
			#$conf["allowRepeat"],字串,預設為"true",允許重複的結果;若為"false"則不會出現重複的元素內容.
1689
			#$conf["allowRepeat"]="true";
1689
			#$conf["allowRepeat"]="true";
1690
			$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
1690
			$mergeArray=arrays::mergeArray($conf["arrays::mergeArray"]);
1691
			unset($conf["arrays::mergeArray"]);
1691
			unset($conf["arrays::mergeArray"]);
1692
			
1692
 
1693
			#如果檢查失敗
1693
			#如果檢查失敗
1694
			if($mergeArray["status"]=="false"){
1694
			if($mergeArray["status"]=="false"){
1695
				
1695
 
1696
				#設置錯誤識別
1696
				#設置錯誤識別
1697
				$result["status"]="false";
1697
				$result["status"]="false";
1698
				
1698
 
1699
				#設置錯誤訊息
1699
				#設置錯誤訊息
1700
				$result["error"]=$mergeArray;
1700
				$result["error"]=$mergeArray;
1701
				
1701
 
1702
				#回傳結果
1702
				#回傳結果
1703
				return $result;
1703
				return $result;
1704
				
1704
 
1705
				}#if end
1705
				}#if end
1706
			
1706
 
1707
			#取得合併好的一維陣列
1707
			#取得合併好的一維陣列
1708
			$result["content"]=$mergeArray["content"];
1708
			$result["content"]=$mergeArray["content"];
1709
			
1709
 
1710
			}#foreach end
1710
			}#foreach end
1711
	
1711
 
1712
		#設置執行正常
1712
		#設置執行正常
1713
		$result["status"]="true";
1713
		$result["status"]="true";
1714
	
1714
 
1715
		#回傳結果
1715
		#回傳結果
1716
		return $result;
1716
		return $result;
1717
	
1717
 
1718
		}#function filterMsgPackWithMultiKeywordSupport end
1718
		}#function filterMsgPackWithMultiKeywordSupport end
1719
 
1719
 
1720
	}#class log end
1720
	}#class log end