Subversion Repositories php-qbpwcf

Rev

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

Rev 220 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
	#將含有數個黑點的字串,處理成只剩下含有最後一個黑點的字串,結果會回傳合併後的字串。
108
	#將含有數個黑點的字串,處理成只剩下含有最後一個黑點的字串,結果會回傳合併後的字串。
109
	#如果字串中沒有黑點則會回傳原始字串
109
	#如果字串中沒有黑點則會回傳原始字串
110
	#回傳結果:
110
	#回傳結果:
Line 124... Line 124...
124
	*/
124
	*/
125
	public static function solveDotProblems(&$conf){
125
	public static function solveDotProblems(&$conf){
126
 
126
 
127
		#初始化要回傳的內容
127
		#初始化要回傳的內容
128
		$result=array();
128
		$result=array();
129
		
129
 
130
		#取得當前函數名稱
130
		#取得當前函數名稱
131
		$result["function"]=__FUNCTION__;
131
		$result["function"]=__FUNCTION__;
132
		
132
 
133
		#如果 $conf 不為陣列
133
		#如果 $conf 不為陣列
134
		if(gettype($conf)!="array"){
134
		if(gettype($conf)!="array"){
135
			
135
 
136
			#設置執行失敗
136
			#設置執行失敗
137
			$result["status"]="false";
137
			$result["status"]="false";
138
			
138
 
139
			#設置執行錯誤訊息
139
			#設置執行錯誤訊息
140
			$result["error"][]="\$conf變數須為陣列形態";
140
			$result["error"][]="\$conf變數須為陣列形態";
141
		
141
 
142
			#如果傳入的參數為 null
142
			#如果傳入的參數為 null
143
			if($conf==null){
143
			if($conf==null){
144
				
144
 
145
				#設置執行錯誤訊息
145
				#設置執行錯誤訊息
146
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
146
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
147
				
147
 
148
				}#if end
148
				}#if end
149
	
149
 
150
			#回傳結果
150
			#回傳結果
151
			return $result;
151
			return $result;
152
			
152
 
153
			}#if end
153
			}#if end
154
			
154
 
155
		#初始化要回傳的語法
155
		#初始化要回傳的語法
156
		$result["content"]="";
156
		$result["content"]="";
157
 
157
 
158
		#檢查參數
158
		#檢查參數
159
		#函式說明:
159
		#函式說明:
Line 171... Line 171...
171
		#必填寫的參數:
171
		#必填寫的參數:
172
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
172
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
173
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
173
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
174
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
174
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
175
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
175
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
176
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
176
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
177
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
177
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
178
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
178
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
179
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
179
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
180
		#可以省略的參數:
180
		#可以省略的參數:
181
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
181
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
182
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
182
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
183
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
183
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
184
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("ssl","serverIp","port");
184
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("ssl","serverIp","port");
185
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
185
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
186
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
186
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
187
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
187
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
188
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("true","127.0.0.1",null);
188
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("true","127.0.0.1",null);
189
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
189
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
190
		#$conf["arrayCountEqualCheck"][]=array();
190
		#$conf["arrayCountEqualCheck"][]=array();
191
		#參考資料來源:
191
		#參考資料來源:
192
		#array_keys=>http://php.net/manual/en/function.array-keys.php
192
		#array_keys=>http://php.net/manual/en/function.array-keys.php
193
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
193
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
194
		unset($conf["variableCheck::checkArguments"]);
194
		unset($conf["variableCheck::checkArguments"]);
195
		
195
 
196
		#如果檢查失敗
196
		#如果檢查失敗
197
		if($checkResult["status"]=="false"){
197
		if($checkResult["status"]=="false"){
198
			
198
 
199
			#設置執行不正常
199
			#設置執行不正常
200
			$result["status"]="false";
200
			$result["status"]="false";
201
			
201
 
202
			#設置錯誤訊息
202
			#設置錯誤訊息
203
			$result["error"]=$checkResult;
203
			$result["error"]=$checkResult;
204
			
204
 
205
			#回傳結果
205
			#回傳結果
206
			return $result;
206
			return $result;
207
			
207
 
208
			}#if end
208
			}#if end
209
		
209
 
210
		#如果檢查不通過
210
		#如果檢查不通過
211
		if($checkResult["passed"]=="false"){
211
		if($checkResult["passed"]=="false"){
212
 
212
 
213
			#設置執行不正常
213
			#設置執行不正常
214
			$result["status"]="false";
214
			$result["status"]="false";
215
			
215
 
216
			#設置錯誤訊息
216
			#設置錯誤訊息
217
			$result["error"]=$checkResult;
217
			$result["error"]=$checkResult;
218
			
218
 
219
			#回傳結果
219
			#回傳結果
220
			return $result;
220
			return $result;
221
 
221
 
222
			}#if end
222
			}#if end
223
 
223
 
224
		#宣告$str為string
224
		#宣告$str為string
225
		$str = "";
225
		$str = "";
226
 
226
 
227
		#取得該字串有幾個"."
227
		#取得該字串有幾個"."
228
		$numberDot = substr_count($conf["stringIn"],"."); 
228
		$numberDot = substr_count($conf["stringIn"],".");
229
	
229
 
230
		#開始分離
230
		#開始分離
231
		$changedString = explode(".",$conf["stringIn"]);
231
		$changedString = explode(".",$conf["stringIn"]);
232
 
232
 
233
		#開始重組
233
		#開始重組
234
		for($i=0;$i<=($numberDot-1);$i++){
234
		for($i=0;$i<=($numberDot-1);$i++){
235
 
235
 
236
			#將黑點前的所有字串合併
236
			#將黑點前的所有字串合併
237
			$str = $str.$changedString[$i];
237
			$str = $str.$changedString[$i];
238
			
238
 
239
			}#for end
239
			}#for end
240
 
240
 
241
		#如果黑點不等於0個
241
		#如果黑點不等於0個
242
		if($numberDot!=0){
242
		if($numberDot!=0){
243
 
243
 
244
			#加上黑點
244
			#加上黑點
245
			$str = $str.".";
245
			$str = $str.".";
246
		
246
 
247
			#加上副檔名
247
			#加上副檔名
248
			$str = $str.$changedString[$numberDot];
248
			$str = $str.$changedString[$numberDot];
249
			
249
 
250
			#設置執行正常
250
			#設置執行正常
251
			$result["status"]="true";
251
			$result["status"]="true";
252
			
252
 
253
			#設置要回傳的字串
253
			#設置要回傳的字串
254
			$result["content"]=$str;
254
			$result["content"]=$str;
255
			
255
 
256
			#回傳結果
256
			#回傳結果
257
			return $result;
257
			return $result;
258
			
258
 
259
			}#if end
259
			}#if end
260
	
260
 
261
		#反之,代表沒有副檔名
261
		#反之,代表沒有副檔名
262
		else{
262
		else{
263
			
263
 
264
			#設置執行正常
264
			#設置執行正常
265
			$result["status"]="true";
265
			$result["status"]="true";
266
			
266
 
267
			#設置要回傳的字串
267
			#設置要回傳的字串
268
			$result["content"]=$conf["stringIn"];
268
			$result["content"]=$conf["stringIn"];
269
			
269
 
270
			#回傳結果
270
			#回傳結果
271
			return $result;
271
			return $result;
272
			
272
 
273
			}#else end
273
			}#else end
274
		
274
 
275
		}#function solveDotProblems end
275
		}#function solveDotProblems end
276
 
276
 
277
	/*
277
	/*
278
	#函式說明:
278
	#函式說明:
279
	#將固定格式的字串開頭移除一個,例如"a,b,c,null"變成"b,c,null"
279
	#將固定格式的字串開頭移除一個,例如"a,b,c,null"變成"b,c,null"
Line 295... Line 295...
295
	#無.
295
	#無.
296
	#備註:
296
	#備註:
297
	#無.
297
	#無.
298
	*/
298
	*/
299
	public static function stringShift(&$conf){
299
	public static function stringShift(&$conf){
300
	
300
 
301
		#檢查參數
301
		#檢查參數
302
		#函式說明:
302
		#函式說明:
303
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
303
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
304
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
304
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
305
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
305
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 314... Line 314...
314
		#必填寫的參數:
314
		#必填寫的參數:
315
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
315
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
316
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
316
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
317
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
317
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
318
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
318
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
319
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
319
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
320
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
320
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
321
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
321
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
322
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
322
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
323
		#可以省略的參數:
323
		#可以省略的參數:
324
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
324
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
325
		#$conf["canBeEmptyString"]="false";
325
		#$conf["canBeEmptyString"]="false";
326
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
326
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
327
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("spiltSymbol","unshift");
327
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("spiltSymbol","unshift");
328
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
328
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
329
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
329
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
330
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
330
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
331
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(",","false");
331
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(",","false");
332
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
332
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
333
		#$conf["arrayCountEqualCheck"][]=array();
333
		#$conf["arrayCountEqualCheck"][]=array();
Line 336... Line 336...
336
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
336
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
337
		unset($conf["variableCheck::checkArguments"]);
337
		unset($conf["variableCheck::checkArguments"]);
338
 
338
 
339
		#如果檢查有誤
339
		#如果檢查有誤
340
		if($checkResult["status"]=="false"){
340
		if($checkResult["status"]=="false"){
341
			
341
 
342
			#設置錯誤識別
342
			#設置錯誤識別
343
			$result["status"]="false";
343
			$result["status"]="false";
344
			
344
 
345
			#設置錯誤訊息
345
			#設置錯誤訊息
346
			$result["error"]=$checkResult;
346
			$result["error"]=$checkResult;
347
			
347
 
348
			#回傳結果
348
			#回傳結果
349
			return $result;
349
			return $result;
350
			
350
 
351
			}#if end
351
			}#if end
352
		
352
 
353
		#如果檢查不通過
353
		#如果檢查不通過
354
		if($checkResult["passed"]=="false"){
354
		if($checkResult["passed"]=="false"){
355
			
355
 
356
			#設置錯誤識別
356
			#設置錯誤識別
357
			$result["status"]="false";
357
			$result["status"]="false";
358
			
358
 
359
			#設置錯誤訊息
359
			#設置錯誤訊息
360
			$result["error"]=$checkResult;
360
			$result["error"]=$checkResult;
361
			
361
 
362
			#回傳結果
362
			#回傳結果
363
			return $result;
363
			return $result;
364
			
364
 
365
			}#if end
365
			}#if end
366
	
366
 
367
		#函式說明:
367
		#函式說明:
368
		#將特定符號間隔的字串"a,b,c"變成陣列.
368
		#將特定符號間隔的字串"a,b,c"變成陣列.
369
		#回傳結果:
369
		#回傳結果:
370
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
370
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
371
		#$result["function"],當前執行的function名稱.
371
		#$result["function"],當前執行的function名稱.
Line 378... Line 378...
378
		#可省略參數:
378
		#可省略參數:
379
		#$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為","
379
		#$conf["spiltSymbol"],字串,用來區隔字串的符號,預設為","
380
		$conf["arrays::stringToArray"]["spiltSymbol"]=$conf["spiltSymbol"];
380
		$conf["arrays::stringToArray"]["spiltSymbol"]=$conf["spiltSymbol"];
381
		$stringToArray=arrays::stringToArray($conf["arrays::stringToArray"]);
381
		$stringToArray=arrays::stringToArray($conf["arrays::stringToArray"]);
382
		unset($conf["arrays::stringToArray"]);
382
		unset($conf["arrays::stringToArray"]);
383
	
383
 
384
		#如果轉換失敗
384
		#如果轉換失敗
385
		if($stringToArray["status"]==="false"){
385
		if($stringToArray["status"]==="false"){
386
		
386
 
387
			#設置錯誤識別
387
			#設置錯誤識別
388
			$result["status"]="false";
388
			$result["status"]="false";
389
			
389
 
390
			#設置錯誤訊息
390
			#設置錯誤訊息
391
			$result["error"]=$stringToArray;
391
			$result["error"]=$stringToArray;
392
			
392
 
393
			#回傳結果
393
			#回傳結果
394
			return $result;
394
			return $result;
395
		
395
 
396
			}#if end
396
			}#if end
397
			
397
 
398
		#取得分割好的陣列
398
		#取得分割好的陣列
399
		$array=$stringToArray["content"];
399
		$array=$stringToArray["content"];
400
	
400
 
401
		#如果沒有要丟棄結尾元素
401
		#如果沒有要丟棄結尾元素
402
		if($conf["unshift"]==="false"){
402
		if($conf["unshift"]==="false"){
403
	
403
 
404
			#取得被丟棄的元素
404
			#取得被丟棄的元素
405
			$result["dropElement"]=array_shift($array);
405
			$result["dropElement"]=array_shift($array);
406
		
406
 
407
			}#if end
407
			}#if end
408
			
408
 
409
		#反之要丟棄開頭元素
409
		#反之要丟棄開頭元素
410
		else{
410
		else{
411
		
411
 
412
			#取得被丟棄的元素,參考資料https://www.php.net/manual/en/function.array-pop.php
412
			#取得被丟棄的元素,參考資料https://www.php.net/manual/en/function.array-pop.php
413
			$result["dropElement"]=array_pop($array);
413
			$result["dropElement"]=array_pop($array);
414
		
414
 
415
			}#else end
415
			}#else end
416
		
416
 
417
		#函式說明:
417
		#函式說明:
418
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
418
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
419
		#回傳結果:
419
		#回傳結果:
420
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
420
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
421
		#$result["function"],當前執行的function名稱
421
		#$result["function"],當前執行的function名稱
Line 430... Line 430...
430
		$conf["arrays::arrayToString"]["spiltSymbol"]=$conf["spiltSymbol"];
430
		$conf["arrays::arrayToString"]["spiltSymbol"]=$conf["spiltSymbol"];
431
		#$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
431
		#$conf["skipEnd"],字串,結尾是否不要加上符號,預設為"false",要加上符號,"true"代表不要加上符號。
432
		$conf["arrays::arrayToString"]["skipEnd"]="true";
432
		$conf["arrays::arrayToString"]["skipEnd"]="true";
433
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
433
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
434
		unset($conf["arrays::arrayToString"]);
434
		unset($conf["arrays::arrayToString"]);
435
	
435
 
436
		#如果轉換失敗
436
		#如果轉換失敗
437
		if($arrayToString["status"]==="false"){
437
		if($arrayToString["status"]==="false"){
438
		
438
 
439
			#設置錯誤識別
439
			#設置錯誤識別
440
			$result["status"]="false";
440
			$result["status"]="false";
441
			
441
 
442
			#設置錯誤訊息
442
			#設置錯誤訊息
443
			$result["error"]=$arrayToString;
443
			$result["error"]=$arrayToString;
444
			
444
 
445
			#回傳結果
445
			#回傳結果
446
			return $result;
446
			return $result;
447
		
447
 
448
			}#if end
448
			}#if end
449
			
449
 
450
		#取得處理好的字串
450
		#取得處理好的字串
451
		$result["content"]=$arrayToString["content"];
451
		$result["content"]=$arrayToString["content"];
452
		
452
 
453
		#設置執行正常
453
		#設置執行正常
454
		$result["status"]="true";
454
		$result["status"]="true";
455
		
455
 
456
		#回傳結果
456
		#回傳結果
457
		return $result;
457
		return $result;
458
	
458
 
459
		}#function stringShift end
459
		}#function stringShift end
460
 
460
 
461
	/*
461
	/*
462
	#函式說明:
462
	#函式說明:
463
	#將固定格式的字串分開,並回傳分開的結果.
463
	#將固定格式的字串分開,並回傳分開的結果.
Line 491... Line 491...
491
		#取得當前執行的函數名稱
491
		#取得當前執行的函數名稱
492
		$result["function"]=__FUNCTION__;
492
		$result["function"]=__FUNCTION__;
493
 
493
 
494
		#如果 $conf 不為陣列
494
		#如果 $conf 不為陣列
495
		if(gettype($conf)!="array"){
495
		if(gettype($conf)!="array"){
496
			
496
 
497
			#設置執行失敗
497
			#設置執行失敗
498
			$result["status"]="false";
498
			$result["status"]="false";
499
			
499
 
500
			#設置執行錯誤訊息
500
			#設置執行錯誤訊息
501
			$result["error"][]="\$conf變數須為陣列形態";
501
			$result["error"][]="\$conf變數須為陣列形態";
502
 
502
 
503
			#如果傳入的參數為 null
503
			#如果傳入的參數為 null
504
			if($conf==null){
504
			if($conf==null){
505
				
505
 
506
				#設置執行錯誤訊息
506
				#設置執行錯誤訊息
507
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
507
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
508
				
508
 
509
				}#if end
509
				}#if end
510
 
510
 
511
			#回傳結果
511
			#回傳結果
512
			return $result;
512
			return $result;
513
			
513
 
514
			}#if end
514
			}#if end
515
 
515
 
516
		#記錄使用的參數
516
		#記錄使用的參數
517
		$result["argu"]=$conf;
517
		$result["argu"]=$conf;
518
 
518
 
Line 532... Line 532...
532
		#必填寫的參數:
532
		#必填寫的參數:
533
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
533
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
534
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
534
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
535
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
535
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
536
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
536
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
537
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
537
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
538
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
538
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
539
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
539
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
540
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
540
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
541
		#可以省略的參數:
541
		#可以省略的參數:
542
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
542
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
543
		#$conf["canBeEmptyString"]="false";
543
		#$conf["canBeEmptyString"]="false";
544
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
544
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
545
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("allowEmptyStr");
545
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("allowEmptyStr");
546
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
546
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
547
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
547
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
548
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
548
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
549
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
549
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
550
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
550
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
551
		#$conf["arrayCountEqualCheck"][]=array();
551
		#$conf["arrayCountEqualCheck"][]=array();
Line 554... Line 554...
554
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
554
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
555
		unset($conf["variableCheck::checkArguments"]);
555
		unset($conf["variableCheck::checkArguments"]);
556
 
556
 
557
		#如果檢查有誤
557
		#如果檢查有誤
558
		if($checkResult["status"]=="false"){
558
		if($checkResult["status"]=="false"){
559
			
559
 
560
			#設置錯誤識別
560
			#設置錯誤識別
561
			$result["status"]="false";
561
			$result["status"]="false";
562
			
562
 
563
			#設置錯誤訊息
563
			#設置錯誤訊息
564
			$result["error"]=$checkResult;
564
			$result["error"]=$checkResult;
565
			
565
 
566
			#回傳結果
566
			#回傳結果
567
			return $result;
567
			return $result;
568
			
568
 
569
			}#if end
569
			}#if end
570
		
570
 
571
		#如果檢查不通過
571
		#如果檢查不通過
572
		if($checkResult["passed"]=="false"){
572
		if($checkResult["passed"]=="false"){
573
			
573
 
574
			#設置錯誤識別
574
			#設置錯誤識別
575
			$result["status"]="false";
575
			$result["status"]="false";
576
			
576
 
577
			#設置錯誤訊息
577
			#設置錯誤訊息
578
			$result["error"]=$checkResult;
578
			$result["error"]=$checkResult;
579
			
579
 
580
			#回傳結果
580
			#回傳結果
581
			return $result;
581
			return $result;
582
			
582
 
583
			}#if end
583
			}#if end
584
		
584
 
585
		#取得 $conf["stringIn"] 的 unicode 長度
585
		#取得 $conf["stringIn"] 的 unicode 長度
586
		$stringInLength=mb_strlen($conf["stringIn"],"UTF-8");
586
		$stringInLength=mb_strlen($conf["stringIn"],"UTF-8");
587
		
587
 
588
		#取得 $conf["spiltSymbol"] 的 unicode 長度
588
		#取得 $conf["spiltSymbol"] 的 unicode 長度
589
		$spiltSymbolLength=mb_strlen($conf["spiltSymbol"],"UTF-8");
589
		$spiltSymbolLength=mb_strlen($conf["spiltSymbol"],"UTF-8");
590
		
590
 
591
		#置換$conf["stringIn"]成unicode字串
591
		#置換$conf["stringIn"]成unicode字串
592
		$conf["stringIn"]=mb_substr($conf["stringIn"],0,$stringInLength,"UTF-8");
592
		$conf["stringIn"]=mb_substr($conf["stringIn"],0,$stringInLength,"UTF-8");
593
		
593
 
594
		#置換$conf["spiltSymbol"]成unicode字串
594
		#置換$conf["spiltSymbol"]成unicode字串
595
		$conf["spiltSymbol"]=mb_substr($conf["spiltSymbol"],0,$spiltSymbolLength,"UTF-8");			
595
		$conf["spiltSymbol"]=mb_substr($conf["spiltSymbol"],0,$spiltSymbolLength,"UTF-8");
596
 
596
 
597
		#var_dump($conf["spiltSymbol"]);
597
		#var_dump($conf["spiltSymbol"]);
598
 
598
 
599
		#取得該字串有幾個 $conf["spiltSymbol"]
599
		#取得該字串有幾個 $conf["spiltSymbol"]
600
		$numberSymbol=substr_count($conf["stringIn"],$conf["spiltSymbol"]); 
600
		$numberSymbol=substr_count($conf["stringIn"],$conf["spiltSymbol"]);
601
 
601
 
602
		#如果裡面有分割用的符號
602
		#如果裡面有分割用的符號
603
		if($numberSymbol!==0){
603
		if($numberSymbol!==0){
604
 
604
 
605
			#設置沒有找到分割用的關鍵字
605
			#設置沒有找到分割用的關鍵字
606
			$result["found"]="true";
606
			$result["found"]="true";
607
 
607
 
608
			#依據 $spiltSymbol 分割,並將陣列變數存到 $result["dataArray"]
608
			#依據 $spiltSymbol 分割,並將陣列變數存到 $result["dataArray"]
609
			$result["dataArray"]=explode($conf["spiltSymbol"],$conf["stringIn"]);	
609
			$result["dataArray"]=explode($conf["spiltSymbol"],$conf["stringIn"]);
610
 
610
 
611
			#如果分割出來的結果是空的
611
			#如果分割出來的結果是空的
612
			if(count($result["dataArray"])==0){
612
			if(count($result["dataArray"])==0){
613
				
613
 
614
				#取得總共有多少段
614
				#取得總共有多少段
615
				$result["dataCounts"]=0;
615
				$result["dataCounts"]=0;
616
				
616
 
617
				}#if end
617
				}#if end
618
			
618
 
619
			#反之分割出來不是空的	
619
			#反之分割出來不是空的
620
			else{
620
			else{
621
 
621
 
622
				#如果存在最後一個選項
622
				#如果存在最後一個選項
623
				if(isset($result["dataArray"][count($result["dataArray"])-1])){
623
				if(isset($result["dataArray"][count($result["dataArray"])-1])){
624
 
624
 
625
					#如果最後一個選項為空
625
					#如果最後一個選項為空
626
					if($result["dataArray"][count($result["dataArray"])-1]==""){
626
					if($result["dataArray"][count($result["dataArray"])-1]==""){
627
						
627
 
628
						#卸除該元素
628
						#卸除該元素
629
						unset($result["dataArray"][count($result["dataArray"])-1]);
629
						unset($result["dataArray"][count($result["dataArray"])-1]);
630
						
630
 
631
						}#if end
631
						}#if end
632
						
632
 
633
					}#if end
633
					}#if end
634
				
634
 
635
				#取得總共有多少段
635
				#取得總共有多少段
636
				$result["dataCounts"]=count($result["dataArray"]);
636
				$result["dataCounts"]=count($result["dataArray"]);
637
					
637
 
638
				}#else end
638
				}#else end
639
 
639
 
640
			#取得原始要分割的字串
640
			#取得原始要分割的字串
641
			$result["oriStr"]=$conf["stringIn"];
641
			$result["oriStr"]=$conf["stringIn"];
642
 
642
 
643
			}#if end
643
			}#if end
644
			
644
 
645
		#反之
645
		#反之
646
		else{
646
		else{
647
			
647
 
648
			#設置只有一個片段
648
			#設置只有一個片段
649
			$result["dataCounts"]=1;
649
			$result["dataCounts"]=1;
650
			
650
 
651
			#取得第一個片段亦即原始字串的內容
651
			#取得第一個片段亦即原始字串的內容
652
			$result["dataArray"][0]=$conf["stringIn"];
652
			$result["dataArray"][0]=$conf["stringIn"];
653
 
653
 
654
			#取得原始要分割的字串
654
			#取得原始要分割的字串
655
			$result["oriStr"]=$conf["stringIn"];
655
			$result["oriStr"]=$conf["stringIn"];
656
			
656
 
657
			#設置沒有找到分割用的關鍵字
657
			#設置沒有找到分割用的關鍵字
658
			$result["found"]="false";
658
			$result["found"]="false";
659
			
659
 
660
			}#else end
660
			}#else end
661
			
661
 
662
		#如果不允許分割出空字串	
662
		#如果不允許分割出空字串
663
		if($conf["allowEmptyStr"]=="false"){
663
		if($conf["allowEmptyStr"]=="false"){
664
			
664
 
665
			#依據 $result["dataCounts"] 檢查分割好的片段內容是否有含有 "" 的內容
665
			#依據 $result["dataCounts"] 檢查分割好的片段內容是否有含有 "" 的內容
666
			for($i=0;$i<$result["dataCounts"];$i++){
666
			for($i=0;$i<$result["dataCounts"];$i++){
667
				
667
 
668
				#如果 分割好的片段內容含有 "" 的內容
668
				#如果 分割好的片段內容含有 "" 的內容
669
				if($result["dataArray"][$i]==""){
669
				if($result["dataArray"][$i]==""){
670
					
670
 
671
					#卸除其變數內容
671
					#卸除其變數內容
672
					unset($result["dataArray"][$i]);
672
					unset($result["dataArray"][$i]);
673
					
673
 
674
					}#if end
674
					}#if end
675
			
675
 
676
				}#for end
676
				}#for end
677
				
677
 
678
			#重新計數目前分割成幾段內容
678
			#重新計數目前分割成幾段內容
679
			$result["dataCounts"]=count($result["dataArray"]);
679
			$result["dataCounts"]=count($result["dataArray"]);
680
			
680
 
681
			#初始化計數當前要儲存的片段其key爲何
681
			#初始化計數當前要儲存的片段其key爲何
682
			$cilpKey=0;
682
			$cilpKey=0;
683
			
683
 
684
			#重新排序分割好片段的k
684
			#重新排序分割好片段的k
685
			foreach($result["dataArray"] as $cilpOriKey => $clipValue){
685
			foreach($result["dataArray"] as $cilpOriKey => $clipValue){
686
				
686
 
687
				#卸除原始元素所屬key的變數
687
				#卸除原始元素所屬key的變數
688
				unset($result["dataArray"][$cilpOriKey]);
688
				unset($result["dataArray"][$cilpOriKey]);
689
				
689
 
690
				#取得片段的內容,並指派key
690
				#取得片段的內容,並指派key
691
				$result["dataArray"][$cilpKey]=$clipValue;
691
				$result["dataArray"][$cilpKey]=$clipValue;
692
							
692
 
693
				#計數當前要儲存片段的key+1
693
				#計數當前要儲存片段的key+1
694
				$cilpKey++;
694
				$cilpKey++;
695
				
695
 
696
				}#foreache end
696
				}#foreache end
697
			
697
 
698
			}#if end
698
			}#if end
699
			
699
 
700
		#執行到這邊代表執行正常
700
		#執行到這邊代表執行正常
701
		$result["status"]="true";
701
		$result["status"]="true";
702
		
702
 
703
		#回傳結果
703
		#回傳結果
704
		return $result;
704
		return $result;
705
 
705
 
706
		}#funcion spiltString end
706
		}#funcion spiltString end
707
	
707
 
708
	/*
708
	/*
709
	#函式說明:
709
	#函式說明:
710
	#將mutf7的字串轉成uft8
710
	#將mutf7的字串轉成uft8
711
	#回傳結果:
711
	#回傳結果:
712
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
712
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
Line 723... Line 723...
723
	#https://www.php.net/manual/en/mbstring.supported-encodings.php
723
	#https://www.php.net/manual/en/mbstring.supported-encodings.php
724
	#備註:
724
	#備註:
725
	#無.
725
	#無.
726
	*/
726
	*/
727
	public static function utf7_imap_to_utf8($conf){
727
	public static function utf7_imap_to_utf8($conf){
728
	
728
 
729
		#初始化要回傳的內容
729
		#初始化要回傳的內容
730
		$result=array();
730
		$result=array();
731
 
731
 
732
		#取得當前執行的函數名稱
732
		#取得當前執行的函數名稱
733
		$result["function"]=__FUNCTION__;
733
		$result["function"]=__FUNCTION__;
734
 
734
 
735
		#如果 $conf 不為陣列
735
		#如果 $conf 不為陣列
736
		if(gettype($conf)!="array"){
736
		if(gettype($conf)!="array"){
737
			
737
 
738
			#設置執行失敗
738
			#設置執行失敗
739
			$result["status"]="false";
739
			$result["status"]="false";
740
			
740
 
741
			#設置執行錯誤訊息
741
			#設置執行錯誤訊息
742
			$result["error"][]="\$conf變數須為陣列形態";
742
			$result["error"][]="\$conf變數須為陣列形態";
743
 
743
 
744
			#如果傳入的參數為 null
744
			#如果傳入的參數為 null
745
			if($conf==null){
745
			if($conf==null){
746
				
746
 
747
				#設置執行錯誤訊息
747
				#設置執行錯誤訊息
748
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
748
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
749
				
749
 
750
				}#if end
750
				}#if end
751
 
751
 
752
			#回傳結果
752
			#回傳結果
753
			return $result;
753
			return $result;
754
			
754
 
755
			}#if end
755
			}#if end
756
 
756
 
757
		#檢查參數
757
		#檢查參數
758
		#函式說明:
758
		#函式說明:
759
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
759
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 770... Line 770...
770
		#必填寫的參數:
770
		#必填寫的參數:
771
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
771
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
772
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
772
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
773
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
773
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
774
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
774
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
775
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
775
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
776
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
776
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
777
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
777
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
778
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
778
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
779
		#可以省略的參數:
779
		#可以省略的參數:
780
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
780
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
781
		#$conf["canBeEmptyString"]="false";
781
		#$conf["canBeEmptyString"]="false";
782
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
782
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
783
		#$conf["skipableVariableName"]=array();
783
		#$conf["skipableVariableName"]=array();
784
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
784
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
785
		#$conf["skipableVariableType"]=array();
785
		#$conf["skipableVariableType"]=array();
786
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
786
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
787
		#$conf["skipableVarDefaultValue"]=array("");
787
		#$conf["skipableVarDefaultValue"]=array("");
788
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
788
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
789
		#$conf["arrayCountEqualCheck"][]=array();
789
		#$conf["arrayCountEqualCheck"][]=array();
Line 792... Line 792...
792
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
792
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
793
		unset($conf["variableCheck::checkArguments"]);
793
		unset($conf["variableCheck::checkArguments"]);
794
 
794
 
795
		#如果檢查有誤
795
		#如果檢查有誤
796
		if($checkResult["status"]==="false"){
796
		if($checkResult["status"]==="false"){
797
			
797
 
798
			#設置錯誤識別
798
			#設置錯誤識別
799
			$result["status"]="false";
799
			$result["status"]="false";
800
			
800
 
801
			#設置錯誤訊息
801
			#設置錯誤訊息
802
			$result["error"]=$checkResult;
802
			$result["error"]=$checkResult;
803
			
803
 
804
			#回傳結果
804
			#回傳結果
805
			return $result;
805
			return $result;
806
			
806
 
807
			}#if end
807
			}#if end
808
		
808
 
809
		#如果檢查不通過
809
		#如果檢查不通過
810
		if($checkResult["passed"]==="false"){
810
		if($checkResult["passed"]==="false"){
811
			
811
 
812
			#設置錯誤識別
812
			#設置錯誤識別
813
			$result["status"]="false";
813
			$result["status"]="false";
814
			
814
 
815
			#設置錯誤訊息
815
			#設置錯誤訊息
816
			$result["error"]=$checkResult;
816
			$result["error"]=$checkResult;
817
			
817
 
818
			#回傳結果
818
			#回傳結果
819
			return $result;
819
			return $result;
820
			
820
 
821
			}#if end
821
			}#if end
822
	
822
 
823
		#取得轉好編碼的內容
823
		#取得轉好編碼的內容
824
		$result["content"]=mb_convert_encoding($conf["stringIn"],"UTF8","UTF7-IMAP");
824
		$result["content"]=mb_convert_encoding($conf["stringIn"],"UTF8","UTF7-IMAP");
825
	
825
 
826
		#設置執行正常
826
		#設置執行正常
827
		$result["status"]="true";
827
		$result["status"]="true";
828
	
828
 
829
		#回傳結果
829
		#回傳結果
830
		return $result;
830
		return $result;
831
	
831
 
832
		}#function utf7_imap_to_utf8 end
832
		}#function utf7_imap_to_utf8 end
833
	
833
 
834
	/*
834
	/*
835
	#函式說明:
835
	#函式說明:
836
	#將多個固定格式的字串分開,並回傳分開的結果
836
	#將多個固定格式的字串分開,並回傳分開的結果
837
	#回傳結果:
837
	#回傳結果:
838
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
838
	#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
Line 862... Line 862...
862
		#取得當前執行的函數名稱
862
		#取得當前執行的函數名稱
863
		$result["function"]=__FUNCTION__;
863
		$result["function"]=__FUNCTION__;
864
 
864
 
865
		#如果 $conf 不為陣列
865
		#如果 $conf 不為陣列
866
		if(gettype($conf)!="array"){
866
		if(gettype($conf)!="array"){
867
			
867
 
868
			#設置執行失敗
868
			#設置執行失敗
869
			$result["status"]="false";
869
			$result["status"]="false";
870
			
870
 
871
			#設置執行錯誤訊息
871
			#設置執行錯誤訊息
872
			$result["error"][]="\$conf變數須為陣列形態";
872
			$result["error"][]="\$conf變數須為陣列形態";
873
 
873
 
874
			#如果傳入的參數為 null
874
			#如果傳入的參數為 null
875
			if($conf==null){
875
			if($conf==null){
876
				
876
 
877
				#設置執行錯誤訊息
877
				#設置執行錯誤訊息
878
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
878
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
879
				
879
 
880
				}#if end
880
				}#if end
881
 
881
 
882
			#回傳結果
882
			#回傳結果
883
			return $result;
883
			return $result;
884
			
884
 
885
			}#if end
885
			}#if end
886
 
886
 
887
		#檢查參數
887
		#檢查參數
888
		#函式說明:
888
		#函式說明:
889
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
889
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 900... Line 900...
900
		#必填寫的參數:
900
		#必填寫的參數:
901
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
901
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
902
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
902
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
903
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
903
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
904
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
904
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","spiltSymbol");
905
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
905
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
906
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
906
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
907
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
907
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
908
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
908
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
909
		#可以省略的參數:
909
		#可以省略的參數:
910
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
910
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
911
		#$conf["canBeEmptyString"]="false";
911
		#$conf["canBeEmptyString"]="false";
912
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
912
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
913
		#$conf["skipableVariableName"]=array();
913
		#$conf["skipableVariableName"]=array();
914
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
914
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
915
		#$conf["skipableVariableType"]=array();
915
		#$conf["skipableVariableType"]=array();
916
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
916
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
917
		#$conf["skipableVarDefaultValue"]=array("");
917
		#$conf["skipableVarDefaultValue"]=array("");
918
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
918
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
919
		#$conf["arrayCountEqualCheck"][]=array();
919
		#$conf["arrayCountEqualCheck"][]=array();
Line 922... Line 922...
922
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
922
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
923
		unset($conf["variableCheck::checkArguments"]);
923
		unset($conf["variableCheck::checkArguments"]);
924
 
924
 
925
		#如果檢查有誤
925
		#如果檢查有誤
926
		if($checkResult["status"]=="false"){
926
		if($checkResult["status"]=="false"){
927
			
927
 
928
			#設置錯誤識別
928
			#設置錯誤識別
929
			$result["status"]="false";
929
			$result["status"]="false";
930
			
930
 
931
			#設置錯誤訊息
931
			#設置錯誤訊息
932
			$result["error"]=$checkResult;
932
			$result["error"]=$checkResult;
933
			
933
 
934
			#回傳結果
934
			#回傳結果
935
			return $result;
935
			return $result;
936
			
936
 
937
			}#if end
937
			}#if end
938
		
938
 
939
		#如果檢查不通過
939
		#如果檢查不通過
940
		if($checkResult["passed"]=="false"){
940
		if($checkResult["passed"]=="false"){
941
			
941
 
942
			#設置錯誤識別
942
			#設置錯誤識別
943
			$result["status"]="false";
943
			$result["status"]="false";
944
			
944
 
945
			#設置錯誤訊息
945
			#設置錯誤訊息
946
			$result["error"]=$checkResult;
946
			$result["error"]=$checkResult;
947
			
947
 
948
			#回傳結果
948
			#回傳結果
949
			return $result;
949
			return $result;
950
			
950
 
951
			}#if end
951
			}#if end
952
	
952
 
953
		#初始化 $result_spiltString
953
		#初始化 $result_spiltString
954
		$result_spiltString=array();
954
		$result_spiltString=array();
955
 
955
 
956
		#根據有幾個字串要進行切割,就執行幾次
956
		#根據有幾個字串要進行切割,就執行幾次
957
		#for($i=0;$i<count($conf["stringIn"]);$i++){
957
		#for($i=0;$i<count($conf["stringIn"]);$i++){
Line 967... Line 967...
967
			#必填參數:
967
			#必填參數:
968
			$conf_spiltString["stringIn"]=$value;#要處理的字串。
968
			$conf_spiltString["stringIn"]=$value;#要處理的字串。
969
			$conf_spiltString["spiltSymbol"]=$conf["spiltSymbol"];#爲以哪個符號作爲分割
969
			$conf_spiltString["spiltSymbol"]=$conf["spiltSymbol"];#爲以哪個符號作爲分割
970
			$spiltString=stringProcess::spiltString($conf_spiltString);
970
			$spiltString=stringProcess::spiltString($conf_spiltString);
971
			unset($conf_spiltString);
971
			unset($conf_spiltString);
972
			
972
 
973
			#如果分開字串失敗
973
			#如果分開字串失敗
974
			if($spiltString["status"]=="false"){
974
			if($spiltString["status"]=="false"){
975
				
975
 
976
				#設置錯誤識別
976
				#設置錯誤識別
977
				$result["status"]="false";
977
				$result["status"]="false";
978
				
978
 
979
				#設置錯誤訊息
979
				#設置錯誤訊息
980
				$result["error"]=$spiltString;
980
				$result["error"]=$spiltString;
981
				
981
 
982
				#回傳結果
982
				#回傳結果
983
				return $result;
983
				return $result;
984
				
984
 
985
				}#if end
985
				}#if end
986
			
986
 
987
			#取得分割字串後的結果
987
			#取得分割字串後的結果
988
			$result_spiltString[]=$spiltString;
988
			$result_spiltString[]=$spiltString;
989
 
989
 
990
			}#for end
990
			}#for end
991
		
991
 
992
		#取得所有字串分割的結果
992
		#取得所有字串分割的結果
993
		$result["spiltString"]=$result_spiltString;
993
		$result["spiltString"]=$result_spiltString;
994
 
994
 
995
		#通過以上檢測,將執行狀態結果設爲 "true"
995
		#通過以上檢測,將執行狀態結果設爲 "true"
996
		$result["status"]="true";
996
		$result["status"]="true";
997
 
997
 
998
		#回傳結果
998
		#回傳結果
999
		return $result;
999
		return $result;
1000
					
1000
 
1001
		}#function spiltMutiString end
1001
		}#function spiltMutiString end
1002
 
1002
 
1003
	/*
1003
	/*
1004
	#函式說明:
1004
	#函式說明:
1005
	#將多行內容的字串,依行切割,切割的依據為"\r\n".
1005
	#將多行內容的字串,依行切割,切割的依據為"\r\n".
Line 1019... Line 1019...
1019
	#http://dragonspring.pixnet.net/blog/post/33146613-%5blinux%5d%5btips%5d%e5%8e%bb%e9%99%a4dos%e6%aa%94%e6%a1%88%e8%a1%8c%e5%b0%be%e7%9a%84%5em => windows 與 linux 換行字元
1019
	#http://dragonspring.pixnet.net/blog/post/33146613-%5blinux%5d%5btips%5d%e5%8e%bb%e9%99%a4dos%e6%aa%94%e6%a1%88%e8%a1%8c%e5%b0%be%e7%9a%84%5em => windows 與 linux 換行字元
1020
	#備註:
1020
	#備註:
1021
	#無.
1021
	#無.
1022
	*/
1022
	*/
1023
	public static function spiltMutiLineString(&$conf){
1023
	public static function spiltMutiLineString(&$conf){
1024
		
1024
 
1025
		#初始化要回傳的內容
1025
		#初始化要回傳的內容
1026
		$result=array();
1026
		$result=array();
1027
 
1027
 
1028
		#取得當前執行的函數名稱
1028
		#取得當前執行的函數名稱
1029
		$result["function"]=__FUNCTION__;
1029
		$result["function"]=__FUNCTION__;
1030
 
1030
 
1031
		#如果 $conf 不為陣列
1031
		#如果 $conf 不為陣列
1032
		if(gettype($conf)!="array"){
1032
		if(gettype($conf)!="array"){
1033
			
1033
 
1034
			#設置執行失敗
1034
			#設置執行失敗
1035
			$result["status"]="false";
1035
			$result["status"]="false";
1036
			
1036
 
1037
			#設置執行錯誤訊息
1037
			#設置執行錯誤訊息
1038
			$result["error"][]="\$conf變數須為陣列形態";
1038
			$result["error"][]="\$conf變數須為陣列形態";
1039
 
1039
 
1040
			#如果傳入的參數為 null
1040
			#如果傳入的參數為 null
1041
			if($conf==null){
1041
			if($conf==null){
1042
				
1042
 
1043
				#設置執行錯誤訊息
1043
				#設置執行錯誤訊息
1044
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1044
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1045
				
1045
 
1046
				}#if end
1046
				}#if end
1047
 
1047
 
1048
			#回傳結果
1048
			#回傳結果
1049
			return $result;
1049
			return $result;
1050
			
1050
 
1051
			}#if end
1051
			}#if end
1052
 
1052
 
1053
		#檢查參數
1053
		#檢查參數
1054
		#函式說明:
1054
		#函式說明:
1055
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1055
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 1066... Line 1066...
1066
		#必填寫的參數:
1066
		#必填寫的參數:
1067
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1067
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1068
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1068
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1069
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1069
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1070
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1070
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1071
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
1071
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
1072
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1072
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1073
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1073
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1074
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1074
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1075
		#可以省略的參數:
1075
		#可以省略的參數:
1076
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1076
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1077
		#$conf["canBeEmptyString"]="false";
1077
		#$conf["canBeEmptyString"]="false";
1078
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1078
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1079
		#$conf["skipableVariableName"]=array();
1079
		#$conf["skipableVariableName"]=array();
1080
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1080
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1081
		#$conf["skipableVariableType"]=array();
1081
		#$conf["skipableVariableType"]=array();
1082
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1082
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1083
		#$conf["skipableVarDefaultValue"]=array("");
1083
		#$conf["skipableVarDefaultValue"]=array("");
1084
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1084
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1085
		#$conf["arrayCountEqualCheck"][]=array();
1085
		#$conf["arrayCountEqualCheck"][]=array();
Line 1088... Line 1088...
1088
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1088
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1089
		unset($conf["variableCheck::checkArguments"]);
1089
		unset($conf["variableCheck::checkArguments"]);
1090
 
1090
 
1091
		#如果檢查有誤
1091
		#如果檢查有誤
1092
		if($checkResult["status"]=="false"){
1092
		if($checkResult["status"]=="false"){
1093
			
1093
 
1094
			#設置錯誤識別
1094
			#設置錯誤識別
1095
			$result["status"]="false";
1095
			$result["status"]="false";
1096
			
1096
 
1097
			#設置錯誤訊息
1097
			#設置錯誤訊息
1098
			$result["error"]=$checkResult;
1098
			$result["error"]=$checkResult;
1099
			
1099
 
1100
			#回傳結果
1100
			#回傳結果
1101
			return $result;
1101
			return $result;
1102
			
1102
 
1103
			}#if end
1103
			}#if end
1104
		
1104
 
1105
		#如果檢查不通過
1105
		#如果檢查不通過
1106
		if($checkResult["passed"]=="false"){
1106
		if($checkResult["passed"]=="false"){
1107
			
1107
 
1108
			#設置錯誤識別
1108
			#設置錯誤識別
1109
			$result["status"]="false";
1109
			$result["status"]="false";
1110
			
1110
 
1111
			#設置錯誤訊息
1111
			#設置錯誤訊息
1112
			$result["error"]=$checkResult;
1112
			$result["error"]=$checkResult;
1113
			
1113
 
1114
			#回傳結果
1114
			#回傳結果
1115
			return $result;
1115
			return $result;
1116
			
1116
 
1117
			}#if end
1117
			}#if end
1118
		
1118
 
1119
		#儲存要分割的原始字串內容
1119
		#儲存要分割的原始字串內容
1120
		$result["oriStr"]=$conf["stringIn"];
1120
		$result["oriStr"]=$conf["stringIn"];
1121
		
1121
 
1122
		#檢查多行文字是用\r\n還是\n來換行
1122
		#檢查多行文字是用\r\n還是\n來換行
1123
		#函式說明:
1123
		#函式說明:
1124
		#檢查字串裡面有無指定的關鍵字
1124
		#檢查字串裡面有無指定的關鍵字
1125
		#回傳結果:
1125
		#回傳結果:
1126
		#$result["status"],"true"代表執行成功,"false"代表執行失敗。
1126
		#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 1133... Line 1133...
1133
		$conf["search::findKeyWord"]["string"]=$conf["stringIn"];#要被搜尋的字串內容
1133
		$conf["search::findKeyWord"]["string"]=$conf["stringIn"];#要被搜尋的字串內容
1134
		#可省略參數:
1134
		#可省略參數:
1135
		$conf["search::findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
1135
		$conf["search::findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
1136
		$findKeyWord=search::findKeyWord($conf["search::findKeyWord"]);
1136
		$findKeyWord=search::findKeyWord($conf["search::findKeyWord"]);
1137
		unset($conf["search::findKeyWord"]);
1137
		unset($conf["search::findKeyWord"]);
1138
		
1138
 
1139
		#如果檢查出錯
1139
		#如果檢查出錯
1140
		if($findKeyWord["status"]=="false"){
1140
		if($findKeyWord["status"]=="false"){
1141
			
1141
 
1142
			#設置錯誤識別
1142
			#設置錯誤識別
1143
			$result["status"]="false";
1143
			$result["status"]="false";
1144
			
1144
 
1145
			#設置錯誤訊息
1145
			#設置錯誤訊息
1146
			$result["error"]=$findKeyWord;
1146
			$result["error"]=$findKeyWord;
1147
			
1147
 
1148
			#回傳結果
1148
			#回傳結果
1149
			return $result;
1149
			return $result;
1150
			
1150
 
1151
			}#if end
1151
			}#if end
1152
		
1152
 
1153
		#預設換行的符號
1153
		#預設換行的符號
1154
		$spiltSymbol="\n";
1154
		$spiltSymbol="\n";
1155
			
1155
 
1156
		#如果有找到關鍵字
1156
		#如果有找到關鍵字
1157
		if($findKeyWord["founded"]=="true"){
1157
		if($findKeyWord["founded"]=="true"){
1158
			
1158
 
1159
			#更換換行的符號
1159
			#更換換行的符號
1160
			$spiltSymbol="\r\n";
1160
			$spiltSymbol="\r\n";
1161
			
1161
 
1162
			}#if end
1162
			}#if end
1163
		
1163
 
1164
		#函式說明:
1164
		#函式說明:
1165
		#將固定格式的字串分開,並回傳分開的結果。
1165
		#將固定格式的字串分開,並回傳分開的結果。
1166
		#回傳的參數:
1166
		#回傳的參數:
1167
		#$result["oriStr"],要分割的原始字串內容
1167
		#$result["oriStr"],要分割的原始字串內容
1168
		#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
1168
		#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 1170... Line 1170...
1170
		#必填參數:
1170
		#必填參數:
1171
		$conf["stringProcess"]["spiltString"]["stringIn"]=$conf["stringIn"];#要處理的字串。
1171
		$conf["stringProcess"]["spiltString"]["stringIn"]=$conf["stringIn"];#要處理的字串。
1172
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=$spiltSymbol;#爲以哪個符號作爲分割
1172
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=$spiltSymbol;#爲以哪個符號作爲分割
1173
		$spiltString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
1173
		$spiltString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
1174
		unset($conf["stringProcess"]["spiltString"]);
1174
		unset($conf["stringProcess"]["spiltString"]);
1175
		
1175
 
1176
		#如果分割字串失敗
1176
		#如果分割字串失敗
1177
		if($spiltString["status"]=="false"){
1177
		if($spiltString["status"]=="false"){
1178
			
1178
 
1179
			#設置錯誤識別
1179
			#設置錯誤識別
1180
			$result["status"]="false";
1180
			$result["status"]="false";
1181
			
1181
 
1182
			#設置錯誤訊息
1182
			#設置錯誤訊息
1183
			$result["error"]=$checkResult;
1183
			$result["error"]=$checkResult;
1184
			
1184
 
1185
			#回傳結果
1185
			#回傳結果
1186
			return $result;
1186
			return $result;
1187
			
1187
 
1188
			}#if end
1188
			}#if end
1189
		
1189
 
1190
		#儲存每一行的內容
1190
		#儲存每一行的內容
1191
		$result["dataArray"]=$spiltString["dataArray"];
1191
		$result["dataArray"]=$spiltString["dataArray"];
1192
		
1192
 
1193
		#取得分成幾行
1193
		#取得分成幾行
1194
		$result["dataCounts"]=$spiltString["dataCounts"];
1194
		$result["dataCounts"]=$spiltString["dataCounts"];
1195
		
1195
 
1196
		#執行到這邊,代表執行成功
1196
		#執行到這邊,代表執行成功
1197
		$result["status"]="true";
1197
		$result["status"]="true";
1198
		
1198
 
1199
		#回傳每行的內容
1199
		#回傳每行的內容
1200
		return $result;
1200
		return $result;
1201
		
1201
 
1202
		}#funcrion spiltMutiLineString end
1202
		}#funcrion spiltMutiLineString end
1203
 
1203
 
1204
	/*
1204
	/*
1205
	#函式說明:
1205
	#函式說明:
1206
	#將一字串的前幾個文字轉爲ACSII並存到陣列裏面
1206
	#將一字串的前幾個文字轉爲ACSII並存到陣列裏面
Line 1218... Line 1218...
1218
	#$conf["wordsLong"]="";
1218
	#$conf["wordsLong"]="";
1219
	#參考資料:
1219
	#參考資料:
1220
	#無.
1220
	#無.
1221
	#備註:
1221
	#備註:
1222
	#無.
1222
	#無.
1223
	*/	
1223
	*/
1224
	function StringToASCII(&$conf){
1224
	function StringToASCII(&$conf){
1225
 
1225
 
1226
		#初始化要回傳的內容
1226
		#初始化要回傳的內容
1227
		$result=array();
1227
		$result=array();
1228
 
1228
 
1229
		#取得當前執行的函數名稱
1229
		#取得當前執行的函數名稱
1230
		$result["function"]=__FUNCTION__;
1230
		$result["function"]=__FUNCTION__;
1231
 
1231
 
1232
		#如果 $conf 不為陣列
1232
		#如果 $conf 不為陣列
1233
		if(gettype($conf)!="array"){
1233
		if(gettype($conf)!="array"){
1234
			
1234
 
1235
			#設置執行失敗
1235
			#設置執行失敗
1236
			$result["status"]="false";
1236
			$result["status"]="false";
1237
			
1237
 
1238
			#設置執行錯誤訊息
1238
			#設置執行錯誤訊息
1239
			$result["error"][]="\$conf變數須為陣列形態";
1239
			$result["error"][]="\$conf變數須為陣列形態";
1240
 
1240
 
1241
			#回傳結果
1241
			#回傳結果
1242
			return $result;
1242
			return $result;
1243
			
1243
 
1244
			}#if end
1244
			}#if end
1245
 
1245
 
1246
		#檢查參數
1246
		#檢查參數
1247
		#函式說明:
1247
		#函式說明:
1248
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1248
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 1259... Line 1259...
1259
		#必填寫的參數:
1259
		#必填寫的參數:
1260
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1260
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1261
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1261
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1262
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1262
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1263
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1263
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1264
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
1264
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
1265
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1265
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1266
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1266
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1267
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1267
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1268
		#可以省略的參數:
1268
		#可以省略的參數:
1269
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1269
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1270
		#$conf["canBeEmptyString"]="false";
1270
		#$conf["canBeEmptyString"]="false";
1271
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1271
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1272
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
1272
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
1273
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1273
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1274
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
1274
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
1275
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1275
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1276
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
1276
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
1277
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1277
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1278
		#$conf["arrayCountEqualCheck"][]=array();
1278
		#$conf["arrayCountEqualCheck"][]=array();
Line 1281... Line 1281...
1281
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1281
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1282
		unset($conf["variableCheck::checkArguments"]);
1282
		unset($conf["variableCheck::checkArguments"]);
1283
 
1283
 
1284
		#如果檢查有誤
1284
		#如果檢查有誤
1285
		if($checkResult["status"]=="false"){
1285
		if($checkResult["status"]=="false"){
1286
			
1286
 
1287
			#設置錯誤識別
1287
			#設置錯誤識別
1288
			$result["status"]="false";
1288
			$result["status"]="false";
1289
			
1289
 
1290
			#設置錯誤訊息
1290
			#設置錯誤訊息
1291
			$result["error"]=$checkResult;
1291
			$result["error"]=$checkResult;
1292
			
1292
 
1293
			#回傳結果
1293
			#回傳結果
1294
			return $result;
1294
			return $result;
1295
			
1295
 
1296
			}#if end
1296
			}#if end
1297
		
1297
 
1298
		#如果檢查不通過
1298
		#如果檢查不通過
1299
		if($checkResult["passed"]=="false"){
1299
		if($checkResult["passed"]=="false"){
1300
			
1300
 
1301
			#設置錯誤識別
1301
			#設置錯誤識別
1302
			$result["status"]="false";
1302
			$result["status"]="false";
1303
			
1303
 
1304
			#設置錯誤訊息
1304
			#設置錯誤訊息
1305
			$result["error"]=$checkResult;
1305
			$result["error"]=$checkResult;
1306
			
1306
 
1307
			#回傳結果
1307
			#回傳結果
1308
			return $result;
1308
			return $result;
1309
			
1309
 
1310
			}#if end
1310
			}#if end
1311
 
1311
 
1312
		#將 $string 分割成一個個字元,並存到陣列 #stringCharArray		
1312
		#將 $string 分割成一個個字元,並存到陣列 #stringCharArray
1313
		$stringCharArray=str_split($conf["stringIn"]);	
1313
		$stringCharArray=str_split($conf["stringIn"]);
1314
 
1314
 
1315
		#取得分割成幾個字元
1315
		#取得分割成幾個字元
1316
		$stringCharArrayCounts=count($stringCharArray);
1316
		$stringCharArrayCounts=count($stringCharArray);
1317
 
1317
 
1318
		#如果沒有限定要前面幾個字則將全部都轉成ASCII
1318
		#如果沒有限定要前面幾個字則將全部都轉成ASCII
1319
		if(!isset($conf["wordsLong"])){
1319
		if(!isset($conf["wordsLong"])){
1320
			
1320
 
1321
			$conf["wordsLong"]=$stringCharArrayCounts;
1321
			$conf["wordsLong"]=$stringCharArrayCounts;
1322
			
1322
 
1323
			}#if end
1323
			}#if end
1324
 
1324
 
1325
		#將前面 $wordsLong 個字轉換成ASCII並存到 $charASCII 陣列裏面
1325
		#將前面 $wordsLong 個字轉換成ASCII並存到 $charASCII 陣列裏面
1326
		for($i=0;$i<$conf["wordsLong"];$i++){
1326
		for($i=0;$i<$conf["wordsLong"];$i++){
1327
			
1327
 
1328
			$charASCII[$i]=ord($stringCharArray[$i]);			
1328
			$charASCII[$i]=ord($stringCharArray[$i]);
1329
			
1329
 
1330
			}#for end
1330
			}#for end
1331
	
1331
 
1332
		#取得總共有幾個字的ACSII
1332
		#取得總共有幾個字的ACSII
1333
		$result["dataCounts"]=count($charASCII);
1333
		$result["dataCounts"]=count($charASCII);
1334
 
1334
 
1335
		#取得每個字轉好的ACSII陣列
1335
		#取得每個字轉好的ACSII陣列
1336
		$result["acsiiArray"]=$charASCII;
1336
		$result["acsiiArray"]=$charASCII;
1337
 
1337
 
1338
		#設置執行正常
1338
		#設置執行正常
1339
		$result["status"]="true";
1339
		$result["status"]="true";
1340
 
1340
 
1341
		#回傳結果
1341
		#回傳結果
1342
		return $result;	
1342
		return $result;
1343
		
1343
 
1344
		}#function StringToASCII end
1344
		}#function StringToASCII end
1345
 
1345
 
1346
	/*
1346
	/*
1347
	#函式說明:
1347
	#函式說明:
1348
	#將數字字串轉換成實際的數字
1348
	#將數字字串轉換成實際的數字
Line 1370... Line 1370...
1370
		#取得當前執行的函數名稱
1370
		#取得當前執行的函數名稱
1371
		$result["function"]=__FUNCTION__;
1371
		$result["function"]=__FUNCTION__;
1372
 
1372
 
1373
		#如果 $conf 不為陣列
1373
		#如果 $conf 不為陣列
1374
		if(gettype($conf)!="array"){
1374
		if(gettype($conf)!="array"){
1375
			
1375
 
1376
			#設置執行失敗
1376
			#設置執行失敗
1377
			$result["status"]="false";
1377
			$result["status"]="false";
1378
			
1378
 
1379
			#設置執行錯誤訊息
1379
			#設置執行錯誤訊息
1380
			$result["error"][]="\$conf變數須為陣列形態";
1380
			$result["error"][]="\$conf變數須為陣列形態";
1381
 
1381
 
1382
			#如果傳入的參數為 null
1382
			#如果傳入的參數為 null
1383
			if($conf==null){
1383
			if($conf==null){
1384
				
1384
 
1385
				#設置執行錯誤訊息
1385
				#設置執行錯誤訊息
1386
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1386
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1387
				
1387
 
1388
				}#if end
1388
				}#if end
1389
 
1389
 
1390
			#回傳結果
1390
			#回傳結果
1391
			return $result;
1391
			return $result;
1392
			
1392
 
1393
			}#if end
1393
			}#if end
1394
 
1394
 
1395
		#檢查參數
1395
		#檢查參數
1396
		#函式說明:
1396
		#函式說明:
1397
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1397
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 1408... Line 1408...
1408
		#必填寫的參數:
1408
		#必填寫的參數:
1409
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1409
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1410
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1410
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1411
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1411
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1412
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1412
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1413
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
1413
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
1414
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1414
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1415
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1415
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1416
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1416
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1417
		#可以省略的參數:
1417
		#可以省略的參數:
1418
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1418
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
1419
		#$conf["canBeEmptyString"]="false";
1419
		#$conf["canBeEmptyString"]="false";
1420
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1420
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1421
		#$conf["skipableVariableName"]=array();
1421
		#$conf["skipableVariableName"]=array();
1422
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1422
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1423
		#$conf["skipableVariableType"]=array();
1423
		#$conf["skipableVariableType"]=array();
1424
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1424
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1425
		#$conf["skipableVarDefaultValue"]=array("");
1425
		#$conf["skipableVarDefaultValue"]=array("");
1426
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1426
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1427
		#$conf["arrayCountEqualCheck"][]=array();
1427
		#$conf["arrayCountEqualCheck"][]=array();
Line 1430... Line 1430...
1430
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1430
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1431
		unset($conf["variableCheck::checkArguments"]);
1431
		unset($conf["variableCheck::checkArguments"]);
1432
 
1432
 
1433
		#如果檢查有誤
1433
		#如果檢查有誤
1434
		if($checkResult["status"]=="false"){
1434
		if($checkResult["status"]=="false"){
1435
			
1435
 
1436
			#設置錯誤識別
1436
			#設置錯誤識別
1437
			$result["status"]="false";
1437
			$result["status"]="false";
1438
			
1438
 
1439
			#設置錯誤訊息
1439
			#設置錯誤訊息
1440
			$result["error"]=$checkResult;
1440
			$result["error"]=$checkResult;
1441
			
1441
 
1442
			#回傳結果
1442
			#回傳結果
1443
			return $result;
1443
			return $result;
1444
			
1444
 
1445
			}#if end
1445
			}#if end
1446
		
1446
 
1447
		#如果檢查不通過
1447
		#如果檢查不通過
1448
		if($checkResult["passed"]=="false"){
1448
		if($checkResult["passed"]=="false"){
1449
			
1449
 
1450
			#設置錯誤識別
1450
			#設置錯誤識別
1451
			$result["status"]="false";
1451
			$result["status"]="false";
1452
			
1452
 
1453
			#設置錯誤訊息
1453
			#設置錯誤訊息
1454
			$result["error"]=$checkResult;
1454
			$result["error"]=$checkResult;
1455
			
1455
 
1456
			#回傳結果
1456
			#回傳結果
1457
			return $result;
1457
			return $result;
1458
			
1458
 
1459
			}#if end
1459
			}#if end
1460
			
1460
 
1461
		#取得原始的內容
1461
		#取得原始的內容
1462
		$result["ori"]=$conf["stringIn"];
1462
		$result["ori"]=$conf["stringIn"];
1463
 
1463
 
1464
		#取得轉換好的數字
1464
		#取得轉換好的數字
1465
		$result["content"]=(int)$conf["stringIn"];
1465
		$result["content"]=(int)$conf["stringIn"];
Line 1467... Line 1467...
1467
		#設置執行正常
1467
		#設置執行正常
1468
		$result["status"]="true";
1468
		$result["status"]="true";
1469
 
1469
 
1470
		#回傳結果
1470
		#回傳結果
1471
		return $result;
1471
		return $result;
1472
			
1472
 
1473
		}#function stringIntToInt end
1473
		}#function stringIntToInt end
1474
 
1474
 
1475
	/*
1475
	/*
1476
	#函式說明:
1476
	#函式說明:
1477
	#將字串中的特定內容取代.
1477
	#將字串中的特定內容取代.
1478
	#回傳結果:
1478
	#回傳結果:
1479
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1479
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1480
	#$result["function"],當前執行的函數.
1480
	#$result["function"],當前執行的函數.
1481
	#$result["content"],爲處理好的字串.
1481
	#$result["content"],爲處理好的字串.
1482
	#$result["error"],錯誤訊息陣列.
1482
	#$result["error"],錯誤訊息陣列.
1483
	#$result["argu"],使用的參數. 
1483
	#$result["argu"],使用的參數.
1484
	#必填參數:
1484
	#必填參數:
1485
	#$conf["stringIn"],字串,爲要處理的字串
1485
	#$conf["stringIn"],字串,爲要處理的字串
1486
	$conf["stringIn"]="";
1486
	$conf["stringIn"]="";
1487
	#$conf["selectedCharacter"],字串,爲被選擇要處理的字串/字元,\n」代表換行,「\t」代表tab鍵的間隔.
1487
	#$conf["selectedCharacter"],字串,爲被選擇要處理的字串/字元,\n」代表換行,「\t」代表tab鍵的間隔.
1488
	$conf["selectedCharacter"]="";
1488
	$conf["selectedCharacter"]="";
Line 1492... Line 1492...
1492
	#無.
1492
	#無.
1493
	#備註:
1493
	#備註:
1494
	#無.
1494
	#無.
1495
	*/
1495
	*/
1496
	public static function replaceOnce(&$conf){
1496
	public static function replaceOnce(&$conf){
1497
	
1497
 
1498
		#初始化要回傳的結果
1498
		#初始化要回傳的結果
1499
		$result=array();
1499
		$result=array();
1500
		
1500
 
1501
		#設置當前執行函數
1501
		#設置當前執行函數
1502
		$result["function"]=__FUNCTION__;
1502
		$result["function"]=__FUNCTION__;
1503
		
1503
 
1504
		#初始化要回傳的主要內容
1504
		#初始化要回傳的主要內容
1505
		$result["content"]="";
1505
		$result["content"]="";
1506
 
1506
 
1507
		#如果 $conf 不為陣列
1507
		#如果 $conf 不為陣列
1508
		if(gettype($conf)!="array"){
1508
		if(gettype($conf)!="array"){
1509
			
1509
 
1510
			#設置執行失敗
1510
			#設置執行失敗
1511
			$result["status"]="false";
1511
			$result["status"]="false";
1512
			
1512
 
1513
			#設置執行錯誤訊息
1513
			#設置執行錯誤訊息
1514
			$result["error"][]="\$conf變數須為陣列形態";
1514
			$result["error"][]="\$conf變數須為陣列形態";
1515
 
1515
 
1516
			#如果傳入的參數為 null
1516
			#如果傳入的參數為 null
1517
			if($conf==null){
1517
			if($conf==null){
1518
				
1518
 
1519
				#設置執行錯誤訊息
1519
				#設置執行錯誤訊息
1520
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1520
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1521
				
1521
 
1522
				}#if end
1522
				}#if end
1523
 
1523
 
1524
			#回傳結果
1524
			#回傳結果
1525
			return $result;
1525
			return $result;
1526
			
1526
 
1527
			}#if end
1527
			}#if end
1528
 
1528
 
1529
		#取得參數 
1529
		#取得參數
1530
		$result["argu"]=$conf;
1530
		$result["argu"]=$conf;
1531
 
1531
 
1532
		#函式說明:
1532
		#函式說明:
1533
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1533
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1534
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1534
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 1541... Line 1541...
1541
		#必填寫的參數:
1541
		#必填寫的參數:
1542
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1542
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1543
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1543
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1544
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1544
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1545
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn","selectedCharacter","changeTo");
1545
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn","selectedCharacter","changeTo");
1546
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1546
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1547
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
1547
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
1548
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1548
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1549
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1549
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1550
		#可以省略的參數:
1550
		#可以省略的參數:
1551
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1551
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1552
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1552
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1553
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1553
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1554
		#$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("");
1554
		#$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("");
1555
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1555
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1556
		#$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1556
		#$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1557
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1557
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1558
		#$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1558
		#$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1559
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1559
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1560
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
1560
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
1561
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1561
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1562
		unset($conf["variableCheck.checkArguments"]);
1562
		unset($conf["variableCheck.checkArguments"]);
1563
		
1563
 
1564
		#如果檢查失敗
1564
		#如果檢查失敗
1565
		if($checkResult["status"]=="false"){
1565
		if($checkResult["status"]=="false"){
1566
			
1566
 
1567
			#設置執行失敗
1567
			#設置執行失敗
1568
			$result["status"]="false";
1568
			$result["status"]="false";
1569
			
1569
 
1570
			#設置錯誤訊息
1570
			#設置錯誤訊息
1571
			$result["error"]=$checkResult;
1571
			$result["error"]=$checkResult;
1572
			
1572
 
1573
			#回傳結果
1573
			#回傳結果
1574
			return $result;
1574
			return $result;
1575
			
1575
 
1576
			}#if end
1576
			}#if end
1577
			
1577
 
1578
		#如果檢查不通過
1578
		#如果檢查不通過
1579
		if($checkResult["passed"]=="false"){
1579
		if($checkResult["passed"]=="false"){
1580
			
1580
 
1581
			#設置執行失敗
1581
			#設置執行失敗
1582
			$result["status"]="false";
1582
			$result["status"]="false";
1583
			
1583
 
1584
			#設置錯誤訊息
1584
			#設置錯誤訊息
1585
			$result["error"]=$checkResult;
1585
			$result["error"]=$checkResult;
1586
			
1586
 
1587
			#回傳結果
1587
			#回傳結果
1588
			return $result;
1588
			return $result;
1589
			
1589
 
1590
			}#if end
1590
			}#if end
1591
	
1591
 
1592
		#只取代一次
1592
		#只取代一次
1593
		$one=1;
1593
		$one=1;
1594
	
1594
 
1595
		#取得進行替換後的結果
1595
		#取得進行替換後的結果
1596
		$result["content"]=str_replace($conf["selectedCharacter"],$conf["changeTo"],$conf["stringIn"],$one);
1596
		$result["content"]=str_replace($conf["selectedCharacter"],$conf["changeTo"],$conf["stringIn"],$one);
1597
 
1597
 
1598
		#檢查變數內容
1598
		#檢查變數內容
1599
		$result["status"]="true";
1599
		$result["status"]="true";
1600
		
1600
 
1601
		#回傳經過整理的字串
1601
		#回傳經過整理的字串
1602
		return $result;
1602
		return $result;
1603
	
1603
 
1604
		}#function replaceOnce end
1604
		}#function replaceOnce end
1605
 
1605
 
1606
	/*
1606
	/*
1607
	#函式說明:
1607
	#函式說明:
1608
	#處理字串避免網頁出錯
1608
	#處理字串避免網頁出錯
1609
	#回傳結果:
1609
	#回傳結果:
1610
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1610
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1611
	#$result["function"],當前執行的函數.
1611
	#$result["function"],當前執行的函數.
1612
	#$result["content"],爲處理好的字串.
1612
	#$result["content"],爲處理好的字串.
1613
	#$result["error"],錯誤訊息陣列.
1613
	#$result["error"],錯誤訊息陣列.
1614
	#$result["argu"],使用的參數. 
1614
	#$result["argu"],使用的參數.
1615
	#必填參數:
1615
	#必填參數:
1616
	#$conf["stringIn"],字串,爲要處理的字串
1616
	#$conf["stringIn"],字串,爲要處理的字串
1617
	$conf["stringIn"]="";
1617
	$conf["stringIn"]="";
1618
	#可省略參數:
1618
	#可省略參數:
1619
	#$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
1619
	#$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
Line 1622... Line 1622...
1622
	#$conf["changeTo"]=array("");
1622
	#$conf["changeTo"]=array("");
1623
	#參考資料:
1623
	#參考資料:
1624
	#無.
1624
	#無.
1625
	#備註:
1625
	#備註:
1626
	#無.
1626
	#無.
1627
	*/	
1627
	*/
1628
	public static function correctCharacter(&$conf){
1628
	public static function correctCharacter(&$conf){
1629
 
1629
 
1630
		#初始化要回傳的結果
1630
		#初始化要回傳的結果
1631
		$result=array();
1631
		$result=array();
1632
			
1632
 
1633
		#設置當前執行函數
1633
		#設置當前執行函數
1634
		$result["function"]=__FUNCTION__;
1634
		$result["function"]=__FUNCTION__;
1635
			
1635
 
1636
		#初始化要回傳的主要內容
1636
		#初始化要回傳的主要內容
1637
		$result["content"]="";
1637
		$result["content"]="";
1638
 
1638
 
1639
		#如果 $conf 不為陣列
1639
		#如果 $conf 不為陣列
1640
		if(gettype($conf)!="array"){
1640
		if(gettype($conf)!="array"){
1641
			
1641
 
1642
			#設置執行失敗
1642
			#設置執行失敗
1643
			$result["status"]="false";
1643
			$result["status"]="false";
1644
			
1644
 
1645
			#設置執行錯誤訊息
1645
			#設置執行錯誤訊息
1646
			$result["error"][]="\$conf變數須為陣列形態";
1646
			$result["error"][]="\$conf變數須為陣列形態";
1647
 
1647
 
1648
			#如果傳入的參數為 null
1648
			#如果傳入的參數為 null
1649
			if($conf==null){
1649
			if($conf==null){
1650
				
1650
 
1651
				#設置執行錯誤訊息
1651
				#設置執行錯誤訊息
1652
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1652
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1653
				
1653
 
1654
				}#if end
1654
				}#if end
1655
 
1655
 
1656
			#回傳結果
1656
			#回傳結果
1657
			return $result;
1657
			return $result;
1658
			
1658
 
1659
			}#if end
1659
			}#if end
1660
 
1660
 
1661
		#取得參數 
1661
		#取得參數
1662
		$result["argu"]=$conf;
1662
		$result["argu"]=$conf;
1663
 
1663
 
1664
		#函式說明:
1664
		#函式說明:
1665
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1665
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1666
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1666
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 1673... Line 1673...
1673
		#必填寫的參數:
1673
		#必填寫的參數:
1674
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1674
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1675
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1675
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1676
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1676
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1677
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1677
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1678
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1678
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1679
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");
1679
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string");
1680
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1680
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1681
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1681
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1682
		#可以省略的參數:
1682
		#可以省略的參數:
1683
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1683
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1684
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1684
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1685
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1685
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些變數不可以為空字串或集合.
1686
		$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("selectedCharacter");
1686
		$conf["variableCheck.checkArguments"]["skipableVariableCanNotBeEmpty"]=array("selectedCharacter");
1687
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1687
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1688
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1688
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1689
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1689
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1690
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1690
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1691
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1691
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1692
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
1692
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array("<",">","=","//","'","$","%","&","|","/*","*/","#","\""),null);
1693
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1693
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1694
		unset($conf["variableCheck.checkArguments"]);
1694
		unset($conf["variableCheck.checkArguments"]);
1695
		
1695
 
1696
		#如果檢查失敗
1696
		#如果檢查失敗
1697
		if($checkResult["status"]=="false"){
1697
		if($checkResult["status"]=="false"){
1698
			
1698
 
1699
			#設置執行失敗
1699
			#設置執行失敗
1700
			$result["status"]="false";
1700
			$result["status"]="false";
1701
			
1701
 
1702
			#設置錯誤訊息
1702
			#設置錯誤訊息
1703
			$result["error"]=$checkResult;
1703
			$result["error"]=$checkResult;
1704
			
1704
 
1705
			#回傳結果
1705
			#回傳結果
1706
			return $result;
1706
			return $result;
1707
			
1707
 
1708
			}#if end
1708
			}#if end
1709
			
1709
 
1710
		#如果檢查不通過
1710
		#如果檢查不通過
1711
		if($checkResult["passed"]=="false"){
1711
		if($checkResult["passed"]=="false"){
1712
			
1712
 
1713
			#設置執行失敗
1713
			#設置執行失敗
1714
			$result["status"]="false";
1714
			$result["status"]="false";
1715
			
1715
 
1716
			#設置錯誤訊息
1716
			#設置錯誤訊息
1717
			$result["error"]=$checkResult;
1717
			$result["error"]=$checkResult;
1718
			
1718
 
1719
			#回傳結果
1719
			#回傳結果
1720
			return $result;
1720
			return $result;
1721
			
1721
 
1722
			}#if end
1722
			}#if end
1723
 
1723
 
1724
		#取得有幾種字串要處理
1724
		#取得有幾種字串要處理
1725
		$num=count($conf["selectedCharacter"]);
1725
		$num=count($conf["selectedCharacter"]);
1726
 
1726
 
1727
		#如果 $conf["changeTo"] 有設定
1727
		#如果 $conf["changeTo"] 有設定
1728
		if(isset($conf["changeTo"])){
1728
		if(isset($conf["changeTo"])){
1729
			
1729
 
1730
			#如果 count($conf["selectedCharacter"]) 與 count($conf["changeTo"]) 不相等
1730
			#如果 count($conf["selectedCharacter"]) 與 count($conf["changeTo"]) 不相等
1731
			if(count($conf["selectedCharacter"])!=count($conf["changeTo"])){
1731
			if(count($conf["selectedCharacter"])!=count($conf["changeTo"])){
1732
				
1732
 
1733
				#設置執行失敗
1733
				#設置執行失敗
1734
				$result["status"]="false";
1734
				$result["status"]="false";
1735
				
1735
 
1736
				#設置錯誤訊息
1736
				#設置錯誤訊息
1737
				$result["error"][]="\$conf[\"selectedCharacter\"] 與 \$conf[\"changeTo\"] 的元素數量不相等!";
1737
				$result["error"][]="\$conf[\"selectedCharacter\"] 與 \$conf[\"changeTo\"] 的元素數量不相等!";
1738
				
1738
 
1739
				#回傳結果
1739
				#回傳結果
1740
				return $result;
1740
				return $result;
1741
				
1741
 
1742
				}#if end
1742
				}#if end
1743
			
1743
 
1744
			}#if end
1744
			}#if end
1745
 
1745
 
1746
		#如果 $conf["changeTo"] 爲空,則將每個要處理的字串,替換成""。
1746
		#如果 $conf["changeTo"] 爲空,則將每個要處理的字串,替換成""。
1747
		if(!isset($conf["changeTo"])){
1747
		if(!isset($conf["changeTo"])){
1748
 
1748
 
1749
			#有幾種要處理的字元就放進去幾個要對照替換的字串。
1749
			#有幾種要處理的字元就放進去幾個要對照替換的字串。
1750
			for($i=0;$i<$num;$i++){
1750
			for($i=0;$i<$num;$i++){
1751
				
1751
 
1752
				$conf["changeTo"][$i]="";
1752
				$conf["changeTo"][$i]="";
1753
 
1753
 
1754
				}#for end
1754
				}#for end
1755
 
1755
 
1756
			}#if end
1756
			}#if end
Line 1758... Line 1758...
1758
		#處理 $num 次
1758
		#處理 $num 次
1759
		for($i=0;$i<$num;$i++){
1759
		for($i=0;$i<$num;$i++){
1760
 
1760
 
1761
			#如果要處理的字元為空字串
1761
			#如果要處理的字元為空字串
1762
			if($conf["selectedCharacter"][$i]==""){
1762
			if($conf["selectedCharacter"][$i]==""){
1763
				
1763
 
1764
				#debug
1764
				#debug
1765
				#echo "<p>空字串不處理</p>";
1765
				#echo "<p>空字串不處理</p>";
1766
				
1766
 
1767
				#跳過該此處理
1767
				#跳過該此處理
1768
				continue;
1768
				continue;
1769
				
1769
 
1770
				}#if end
1770
				}#if end
1771
 
1771
 
1772
			#進行轉換
1772
			#進行轉換
1773
			$conf["stringIn"] = str_replace($conf["selectedCharacter"][$i],$conf["changeTo"][$i],$conf["stringIn"]);
1773
			$conf["stringIn"] = str_replace($conf["selectedCharacter"][$i],$conf["changeTo"][$i],$conf["stringIn"]);
1774
 
1774
 
Line 1777... Line 1777...
1777
		#取得處理好的結果
1777
		#取得處理好的結果
1778
		$result["content"]=$conf["stringIn"];
1778
		$result["content"]=$conf["stringIn"];
1779
 
1779
 
1780
		#檢查變數內容
1780
		#檢查變數內容
1781
		$result["status"]="true";
1781
		$result["status"]="true";
1782
		
1782
 
1783
		#回傳經過整理的字串
1783
		#回傳經過整理的字串
1784
		return $result;
1784
		return $result;
1785
 
1785
 
1786
		}#function correctCharacter end
1786
		}#function correctCharacter end
1787
		
1787
 
1788
	/*
1788
	/*
1789
	#函式說明:
1789
	#函式說明:
1790
	#處理多個字串避免網頁出錯
1790
	#處理多個字串避免網頁出錯
1791
	#回傳結果:
1791
	#回傳結果:
1792
	#$result["status"],"true"代表執行成功,"false"代表執行失敗.
1792
	#$result["status"],"true"代表執行成功,"false"代表執行失敗.
Line 1796... Line 1796...
1796
	#必填參數:
1796
	#必填參數:
1797
	#$conf["stringIn"],字串陣列,爲要處理的字串陣列.
1797
	#$conf["stringIn"],字串陣列,爲要處理的字串陣列.
1798
	#$conf["stringIn"]=array("");
1798
	#$conf["stringIn"]=array("");
1799
	#可省略參數:
1799
	#可省略參數:
1800
	#$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
1800
	#$conf["selectedCharacter"],字串陣列,爲被選擇要處理的字串/字元,須爲陣列值。若不設定則預設爲要將這些字串作替換 ("<",">","=","//","'","$","%","&","|","/*","*","#","\"").特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
1801
	#$conf["selectedCharacter"]=array("");	
1801
	#$conf["selectedCharacter"]=array("");
1802
	#$conf["changeTo"],字串陣列,爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
1802
	#$conf["changeTo"],字串陣列,爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串).
1803
	#$conf["changeTo"]=array();
1803
	#$conf["changeTo"]=array();
1804
	#參考資料:
1804
	#參考資料:
1805
	#無.
1805
	#無.
1806
	#備註:
1806
	#備註:
1807
	#無.
1807
	#無.
1808
	*/	
1808
	*/
1809
	public static function correctMutiStrCharacter(&$conf){
1809
	public static function correctMutiStrCharacter(&$conf){
1810
		
1810
 
1811
		#初始化要回傳的結果
1811
		#初始化要回傳的結果
1812
		$result=array();
1812
		$result=array();
1813
			
1813
 
1814
		#設置當前執行函數
1814
		#設置當前執行函數
1815
		$result["function"]=__FUNCTION__;	
1815
		$result["function"]=__FUNCTION__;
1816
			
1816
 
1817
		#初始化要回傳的主要內容
1817
		#初始化要回傳的主要內容
1818
		$result["content"]="";
1818
		$result["content"]="";
1819
 
1819
 
1820
		#如果 $conf 不為陣列
1820
		#如果 $conf 不為陣列
1821
		if(gettype($conf)!="array"){
1821
		if(gettype($conf)!="array"){
1822
			
1822
 
1823
			#設置執行失敗
1823
			#設置執行失敗
1824
			$result["status"]="false";
1824
			$result["status"]="false";
1825
			
1825
 
1826
			#設置執行錯誤訊息
1826
			#設置執行錯誤訊息
1827
			$result["error"][]="\$conf變數須為陣列形態";
1827
			$result["error"][]="\$conf變數須為陣列形態";
1828
 
1828
 
1829
			#如果傳入的參數為 null
1829
			#如果傳入的參數為 null
1830
			if($conf==null){
1830
			if($conf==null){
1831
				
1831
 
1832
				#設置執行錯誤訊息
1832
				#設置執行錯誤訊息
1833
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1833
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1834
				
1834
 
1835
				}#if end
1835
				}#if end
1836
 
1836
 
1837
			#回傳結果
1837
			#回傳結果
1838
			return $result;
1838
			return $result;
1839
			
1839
 
1840
			}#if end		
1840
			}#if end
1841
			
1841
 
1842
		#檢查參數
1842
		#檢查參數
1843
		#函式說明:
1843
		#函式說明:
1844
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1844
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1845
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1845
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1846
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
1846
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 1852... Line 1852...
1852
		#必填寫的參數:
1852
		#必填寫的參數:
1853
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1853
		#$conf["varInput"],陣列變數,要檢查的陣列變數.
1854
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1854
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
1855
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1855
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1856
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1856
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("stringIn");
1857
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1857
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1858
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array");
1858
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array");
1859
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1859
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1860
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1860
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
1861
		#可以省略的參數:
1861
		#可以省略的參數:
1862
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1862
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
1863
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1863
		$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
1864
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1864
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1865
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1865
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("selectedCharacter","changeTo");
1866
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1866
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1867
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1867
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array");
1868
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1868
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
1869
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1869
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(null,null);
1870
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1870
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
1871
		unset($conf["variableCheck.checkArguments"]);
1871
		unset($conf["variableCheck.checkArguments"]);
1872
		
1872
 
1873
		#如果檢查失敗
1873
		#如果檢查失敗
1874
		if($checkResult["status"]=="false"){
1874
		if($checkResult["status"]=="false"){
1875
			
1875
 
1876
			#設置執行失敗
1876
			#設置執行失敗
1877
			$result["status"]="false";
1877
			$result["status"]="false";
1878
			
1878
 
1879
			#設置錯誤訊息
1879
			#設置錯誤訊息
1880
			$result["error"]=$checkResult;
1880
			$result["error"]=$checkResult;
1881
			
1881
 
1882
			#回傳結果
1882
			#回傳結果
1883
			return $result;
1883
			return $result;
1884
			
1884
 
1885
			}#if end
1885
			}#if end
1886
			
1886
 
1887
		#如果檢查不通過
1887
		#如果檢查不通過
1888
		if($checkResult["passed"]=="false"){
1888
		if($checkResult["passed"]=="false"){
1889
			
1889
 
1890
			#設置執行失敗
1890
			#設置執行失敗
1891
			$result["status"]="false";
1891
			$result["status"]="false";
1892
			
1892
 
1893
			#設置錯誤訊息
1893
			#設置錯誤訊息
1894
			$result["error"]=$checkResult;
1894
			$result["error"]=$checkResult;
1895
			
1895
 
1896
			#回傳結果
1896
			#回傳結果
1897
			return $result;
1897
			return $result;
1898
			
1898
 
1899
			}#if end	
1899
			}#if end
1900
						
1900
 
1901
		#針對每個 $unProcessedStr 的元素執行一次
1901
		#針對每個 $unProcessedStr 的元素執行一次
1902
		foreach($conf["stringIn"] as $unProcessedStrKey=>$unProcessedStrValue){
1902
		foreach($conf["stringIn"] as $unProcessedStrKey=>$unProcessedStrValue){
1903
			
1903
 
1904
			#如果該行為 ""
1904
			#如果該行為 ""
1905
			if($unProcessedStrValue===""){
1905
			if($unProcessedStrValue===""){
1906
			
1906
 
1907
				#不處理直接儲存成 ""
1907
				#不處理直接儲存成 ""
1908
				$result["processedStrArray"][$unProcessedStrKey]="";
1908
				$result["processedStrArray"][$unProcessedStrKey]="";
1909
			
1909
 
1910
				#跳過該回合
1910
				#跳過該回合
1911
				continue;
1911
				continue;
1912
				
1912
 
1913
				}#if end
1913
				}#if end
1914
			
1914
 
1915
			#函式說明:
1915
			#函式說明:
1916
			#處理字串避免網頁出錯
1916
			#處理字串避免網頁出錯
1917
			#回傳結果:
1917
			#回傳結果:
1918
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1918
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1919
			#$result["content"],爲處理好的字串。
1919
			#$result["content"],爲處理好的字串。
1920
			#$result["error"],錯誤訊息陣列
1920
			#$result["error"],錯誤訊息陣列
1921
			#必填參數:
1921
			#必填參數:
1922
			$conf["variableCheck.correctCharacter"]["stringIn"]=$unProcessedStrValue;#爲要處理的字串
1922
			$conf["variableCheck.correctCharacter"]["stringIn"]=$unProcessedStrValue;#爲要處理的字串
1923
			#可省略參數:
1923
			#可省略參數:
1924
			
1924
 
1925
			#如果 $conf["selectedCharacter"] 有設定
1925
			#如果 $conf["selectedCharacter"] 有設定
1926
			if(isset($conf["selectedCharacter"])){
1926
			if(isset($conf["selectedCharacter"])){
1927
				
1927
 
1928
				$conf["variableCheck.correctCharacter"]["selectedCharacter"]=$conf["selectedCharacter"];#爲被選擇要處理的字串/字元,須爲陣列值。
1928
				$conf["variableCheck.correctCharacter"]["selectedCharacter"]=$conf["selectedCharacter"];#爲被選擇要處理的字串/字元,須爲陣列值。
1929
				#若不設定則預設爲要將這些字串作替換("<",">","=","//","'","$","%","&","|","/*","*\/","#","\"")。
1929
				#若不設定則預設爲要將這些字串作替換("<",">","=","//","'","$","%","&","|","/*","*\/","#","\"")。
1930
				#特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
1930
				#特殊字元,「\n」代表換行,「\t」代表tab鍵的間隔
1931
				
1931
 
1932
				}#if end
1932
				}#if end
1933
			
1933
 
1934
			#如果 $conf["changeTo"] 有設定
1934
			#如果 $conf["changeTo"] 有設定
1935
			if(isset($conf["changeTo"])){
1935
			if(isset($conf["changeTo"])){
1936
				
1936
 
1937
				$conf["variableCheck.correctCharacter"]["changeTo"]=$conf["changeTo"];#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
1937
				$conf["variableCheck.correctCharacter"]["changeTo"]=$conf["changeTo"];#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
1938
				
1938
 
1939
				}#if end	
1939
				}#if end
1940
			
1940
 
1941
			$processedStrResult=stringProcess::correctCharacter($conf["variableCheck.correctCharacter"]);
1941
			$processedStrResult=stringProcess::correctCharacter($conf["variableCheck.correctCharacter"]);
1942
			unset($conf["variableCheck.correctCharacter"]);				
1942
			unset($conf["variableCheck.correctCharacter"]);
1943
			
1943
 
1944
			#如果 $processedStrResult["status"] 等於 "false" 
1944
			#如果 $processedStrResult["status"] 等於 "false"
1945
			if($processedStrResult["status"]=="false"){
1945
			if($processedStrResult["status"]=="false"){
1946
			
1946
 
1947
				#設置錯誤
1947
				#設置錯誤
1948
				$result["status"]="false";
1948
				$result["status"]="false";
1949
						
1949
 
1950
				#設置錯誤訊息
1950
				#設置錯誤訊息
1951
				$result["error"]=$processedStrResult;
1951
				$result["error"]=$processedStrResult;
1952
						
1952
 
1953
				#回傳結果
1953
				#回傳結果
1954
				return $result;
1954
				return $result;
1955
			
1955
 
1956
				}#if end
1956
				}#if end
1957
			
1957
 
1958
			#取得處理好的字串
1958
			#取得處理好的字串
1959
			$result["processedStrArray"][$unProcessedStrKey]=$processedStrResult["content"];
1959
			$result["processedStrArray"][$unProcessedStrKey]=$processedStrResult["content"];
1960
			
1960
 
1961
			}#foreach end
1961
			}#foreach end
1962
			
1962
 
1963
		#執行到這邊代表執行成功
1963
		#執行到這邊代表執行成功
1964
		$result["status"]="true";
1964
		$result["status"]="true";
1965
		
1965
 
1966
		#回傳結果
1966
		#回傳結果
1967
		return $result;
1967
		return $result;
1968
				
1968
 
1969
		}#function correctMutiStrCharacter end
1969
		}#function correctMutiStrCharacter end
1970
 
1970
 
1971
	/*
1971
	/*
1972
	#函式說明:
1972
	#函式說明:
1973
	#將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
1973
	#將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
Line 1987... Line 1987...
1987
	#無.
1987
	#無.
1988
	#備註:
1988
	#備註:
1989
	#考慮用realpath取代
1989
	#考慮用realpath取代
1990
	*/
1990
	*/
1991
	public static function changeDirByDotDotSolidus(&$conf){
1991
	public static function changeDirByDotDotSolidus(&$conf){
1992
		
1992
 
1993
		#初始化要回傳的內容
1993
		#初始化要回傳的內容
1994
		$result=array();
1994
		$result=array();
1995
 
1995
 
1996
		#取得當前執行的函數名稱
1996
		#取得當前執行的函數名稱
1997
		$result["function"]=__FUNCTION__;
1997
		$result["function"]=__FUNCTION__;
1998
 
1998
 
1999
		#如果 $conf 不為陣列
1999
		#如果 $conf 不為陣列
2000
		if(gettype($conf)!="array"){
2000
		if(gettype($conf)!="array"){
2001
			
2001
 
2002
			#設置執行失敗
2002
			#設置執行失敗
2003
			$result["status"]="false";
2003
			$result["status"]="false";
2004
			
2004
 
2005
			#設置執行錯誤訊息
2005
			#設置執行錯誤訊息
2006
			$result["error"][]="\$conf變數須為陣列形態";
2006
			$result["error"][]="\$conf變數須為陣列形態";
2007
 
2007
 
2008
			#如果傳入的參數為 null
2008
			#如果傳入的參數為 null
2009
			if($conf==null){
2009
			if($conf==null){
2010
				
2010
 
2011
				#設置執行錯誤訊息
2011
				#設置執行錯誤訊息
2012
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2012
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2013
				
2013
 
2014
				}#if end
2014
				}#if end
2015
 
2015
 
2016
			#回傳結果
2016
			#回傳結果
2017
			return $result;
2017
			return $result;
2018
			
2018
 
2019
			}#if end
2019
			}#if end
2020
 
2020
 
2021
		#取得使用的參數
2021
		#取得使用的參數
2022
		$result["argu"]=$conf;
2022
		$result["argu"]=$conf;
2023
 
2023
 
Line 2037... Line 2037...
2037
		#必填寫的參數:
2037
		#必填寫的參數:
2038
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2038
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2039
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2039
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2040
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2040
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2041
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dirStr");
2041
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dirStr");
2042
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2042
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
2043
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
2043
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
2044
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2044
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2045
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2045
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2046
		#可以省略的參數:
2046
		#可以省略的參數:
2047
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2047
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2048
		#$conf["canBeEmptyString"]="false";
2048
		#$conf["canBeEmptyString"]="false";
2049
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2049
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2050
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
2050
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
2051
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2051
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2052
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
2052
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
2053
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2053
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2054
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
2054
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
2055
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2055
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2056
		#$conf["arrayCountEqualCheck"][]=array();
2056
		#$conf["arrayCountEqualCheck"][]=array();
Line 2059... Line 2059...
2059
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2059
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2060
		unset($conf["variableCheck::checkArguments"]);
2060
		unset($conf["variableCheck::checkArguments"]);
2061
 
2061
 
2062
		#如果檢查有誤
2062
		#如果檢查有誤
2063
		if($checkResult["status"]=="false"){
2063
		if($checkResult["status"]=="false"){
2064
			
2064
 
2065
			#設置錯誤識別
2065
			#設置錯誤識別
2066
			$result["status"]="false";
2066
			$result["status"]="false";
2067
			
2067
 
2068
			#設置錯誤訊息
2068
			#設置錯誤訊息
2069
			$result["error"]=$checkResult;
2069
			$result["error"]=$checkResult;
2070
			
2070
 
2071
			#回傳結果
2071
			#回傳結果
2072
			return $result;
2072
			return $result;
2073
			
2073
 
2074
			}#if end
2074
			}#if end
2075
		
2075
 
2076
		#如果檢查不通過
2076
		#如果檢查不通過
2077
		if($checkResult["passed"]=="false"){
2077
		if($checkResult["passed"]=="false"){
2078
			
2078
 
2079
			#設置錯誤識別
2079
			#設置錯誤識別
2080
			$result["status"]="false";
2080
			$result["status"]="false";
2081
			
2081
 
2082
			#設置錯誤訊息
2082
			#設置錯誤訊息
2083
			$result["error"]=$checkResult;
2083
			$result["error"]=$checkResult;
2084
			
2084
 
2085
			#回傳結果
2085
			#回傳結果
2086
			return $result;
2086
			return $result;
2087
			
2087
 
2088
			}#if end
2088
			}#if end
2089
		
2089
 
2090
		#初始化儲存原始路徑字串
2090
		#初始化儲存原始路徑字串
2091
		$result["oriPath"]=$conf["dirStr"];
2091
		$result["oriPath"]=$conf["dirStr"];
2092
			
2092
 
2093
		#初始化用來儲存輸出內容的元素.
2093
		#初始化用來儲存輸出內容的元素.
2094
		$result["changedPath"]="";
2094
		$result["changedPath"]="";
2095
		
2095
 
2096
		#初始化暫存的字串目錄
2096
		#初始化暫存的字串目錄
2097
		$tempDirStrArray=array();
2097
		$tempDirStrArray=array();
2098
		
2098
 
2099
		#用 / 進行分割
2099
		#用 / 進行分割
2100
		#函式說明:
2100
		#函式說明:
2101
		#將固定格式的字串分開,並回傳分開的結果。
2101
		#將固定格式的字串分開,並回傳分開的結果。
2102
		#回傳的參數:
2102
		#回傳的參數:
2103
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2103
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 2109... Line 2109...
2109
		#必填參數:
2109
		#必填參數:
2110
		$conf["stringProcess::spiltString"]["stringIn"]=$conf["dirStr"];#要處理的字串。
2110
		$conf["stringProcess::spiltString"]["stringIn"]=$conf["dirStr"];#要處理的字串。
2111
		$conf["stringProcess::spiltString"]["spiltSymbol"]="/";#爲以哪個符號作爲分割
2111
		$conf["stringProcess::spiltString"]["spiltSymbol"]="/";#爲以哪個符號作爲分割
2112
		$spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
2112
		$spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
2113
		unset($conf["stringProcess::spiltString"]);
2113
		unset($conf["stringProcess::spiltString"]);
2114
		
2114
 
2115
		#如果分割失敗
2115
		#如果分割失敗
2116
		if($spiltString["status"]=="false"){
2116
		if($spiltString["status"]=="false"){
2117
			
2117
 
2118
			#設置錯誤識別
2118
			#設置錯誤識別
2119
			$result["status"]="false";
2119
			$result["status"]="false";
2120
			
2120
 
2121
			#設置錯誤訊息
2121
			#設置錯誤訊息
2122
			$result["error"]=$spiltString;
2122
			$result["error"]=$spiltString;
2123
			
2123
 
2124
			#回傳結果
2124
			#回傳結果
2125
			return $result;
2125
			return $result;
2126
			
2126
 
2127
			}#if end
2127
			}#if end
2128
			
2128
 
2129
		#分成幾段就執行幾次
2129
		#分成幾段就執行幾次
2130
		for($i=0;$i<$spiltString["dataCounts"];$i++){
2130
		for($i=0;$i<$spiltString["dataCounts"];$i++){
2131
			
2131
 
2132
			#如果是往上層目錄的「..」
2132
			#如果是往上層目錄的「..」
2133
			if($spiltString["dataArray"][$i]===".."){
2133
			if($spiltString["dataArray"][$i]===".."){
2134
			
2134
 
2135
				#如果陣列不為空
2135
				#如果陣列不為空
2136
				if($tempDirStrArray!==array()){
2136
				if($tempDirStrArray!==array()){
2137
				
2137
 
2138
					#如果前面有非 ".." 的目錄名稱
2138
					#如果前面有非 ".." 的目錄名稱
2139
					if($tempDirStrArray[count($tempDirStrArray)-1]!==".."){
2139
					if($tempDirStrArray[count($tempDirStrArray)-1]!==".."){
2140
				
2140
 
2141
						#函式說明:
2141
						#函式說明:
2142
						#將陣列中特定元素剔除,並重新按照順序排序
2142
						#將陣列中特定元素剔除,並重新按照順序排序
2143
						#回傳結果:
2143
						#回傳結果:
2144
						#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2144
						#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2145
						#$result["error"],錯誤訊息
2145
						#$result["error"],錯誤訊息
Line 2147... Line 2147...
2147
						#$result["empty"],移除完元素後是否為空陣列,"true"為是,"false"為否.
2147
						#$result["empty"],移除完元素後是否為空陣列,"true"為是,"false"為否.
2148
						#$result["content"]["byName"],剔除掉特定元素的陣列,使用原來陣列的key來儲存.
2148
						#$result["content"]["byName"],剔除掉特定元素的陣列,使用原來陣列的key來儲存.
2149
						#$result["content"]["byNumber"],剔除掉特定元素的陣列,使用從0開始的整數key來儲存.
2149
						#$result["content"]["byNumber"],剔除掉特定元素的陣列,使用從0開始的整數key來儲存.
2150
						#必填參數:
2150
						#必填參數:
2151
						$conf["arrays::eraseElement"]["rawInputArray"]=$tempDirStrArray;#要處理的原始數字陣列
2151
						$conf["arrays::eraseElement"]["rawInputArray"]=$tempDirStrArray;#要處理的原始數字陣列
2152
						$conf["arrays::eraseElement"]["eraseElementKey"]="".(count($tempDirStrArray)-1)."";#要移除的元素key值  
2152
						$conf["arrays::eraseElement"]["eraseElementKey"]="".(count($tempDirStrArray)-1)."";#要移除的元素key值
2153
						$eraseElement=arrays::eraseElement($conf["arrays::eraseElement"]);
2153
						$eraseElement=arrays::eraseElement($conf["arrays::eraseElement"]);
2154
						unset($conf["arrays::eraseElement"]);
2154
						unset($conf["arrays::eraseElement"]);
2155
						
2155
 
2156
						#如果移除失敗
2156
						#如果移除失敗
2157
						if($eraseElement["status"]=="false"){
2157
						if($eraseElement["status"]=="false"){
2158
							
2158
 
2159
							#設置錯誤識別
2159
							#設置錯誤識別
2160
							$result["status"]="false";
2160
							$result["status"]="false";
2161
							
2161
 
2162
							#設置錯誤訊息
2162
							#設置錯誤訊息
2163
							$result["error"]=$eraseElement;
2163
							$result["error"]=$eraseElement;
2164
							
2164
 
2165
							#回傳結果
2165
							#回傳結果
2166
							return $result;
2166
							return $result;
2167
							
2167
 
2168
							}#if end
2168
							}#if end
2169
							
2169
 
2170
						#取得新陣列
2170
						#取得新陣列
2171
						$tempDirStrArray=$eraseElement["content"]["byNumber"];
2171
						$tempDirStrArray=$eraseElement["content"]["byNumber"];
2172
						
2172
 
2173
						}#if end
2173
						}#if end
2174
					
2174
 
2175
					#反之	
2175
					#反之
2176
					else{
2176
					else{
2177
					
2177
 
2178
						#儲存 ".."
2178
						#儲存 ".."
2179
						$tempDirStrArray[]=$spiltString["dataArray"][$i];
2179
						$tempDirStrArray[]=$spiltString["dataArray"][$i];
2180
						
2180
 
2181
						}
2181
						}
2182
															
2182
 
2183
					}#if end			
2183
					}#if end
2184
				
2184
 
2185
				#反之
2185
				#反之
2186
				else{
2186
				else{
2187
					
2187
 
2188
					#儲存 ".."
2188
					#儲存 ".."
2189
					$tempDirStrArray[]=$spiltString["dataArray"][$i];
2189
					$tempDirStrArray[]=$spiltString["dataArray"][$i];
2190
										
2190
 
2191
					}#else end
2191
					}#else end
2192
				
2192
 
2193
				}#if end
2193
				}#if end
2194
				
2194
 
2195
			#反之
2195
			#反之
2196
			else{
2196
			else{
2197
				
2197
 
2198
				#儲存路徑片段
2198
				#儲存路徑片段
2199
				$tempDirStrArray[]=$spiltString["dataArray"][$i];
2199
				$tempDirStrArray[]=$spiltString["dataArray"][$i];
2200
				
2200
 
2201
				}#else end
2201
				}#else end
2202
			
2202
 
2203
			}#for end
2203
			}#for end
2204
			
2204
 
2205
		#debug
2205
		#debug
2206
		#var_dump($tempDirStrArray);exit;
2206
		#var_dump($tempDirStrArray);exit;
2207
			
2207
 
2208
		#檢查 $conf["dirStr"] 是否為 「/」 開頭
2208
		#檢查 $conf["dirStr"] 是否為 「/」 開頭
2209
		#函式說明:
2209
		#函式說明:
2210
		#取得符合特定字首與字尾的字串
2210
		#取得符合特定字首與字尾的字串
2211
		#回傳結果:
2211
		#回傳結果:
2212
		#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
2212
		#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
Line 2224... Line 2224...
2224
		#$conf["tailWord"]="";
2224
		#$conf["tailWord"]="";
2225
		#參考資料:
2225
		#參考資料:
2226
		#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
2226
		#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
2227
		$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
2227
		$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
2228
		unset($conf["search::getMeetConditionsString"]);
2228
		unset($conf["search::getMeetConditionsString"]);
2229
		
2229
 
2230
		#如果尋找關鍵字失敗
2230
		#如果尋找關鍵字失敗
2231
		if($getMeetConditionsString["status"]=="false"){
2231
		if($getMeetConditionsString["status"]=="false"){
2232
			
2232
 
2233
			#設置錯誤識別
2233
			#設置錯誤識別
2234
			$result["status"]="false";
2234
			$result["status"]="false";
2235
			
2235
 
2236
			#設置錯誤訊息
2236
			#設置錯誤訊息
2237
			$result["error"]=$spiltString;
2237
			$result["error"]=$spiltString;
2238
			
2238
 
2239
			#回傳結果
2239
			#回傳結果
2240
			return $result;
2240
			return $result;
2241
			
2241
 
2242
			}#if end
2242
			}#if end
2243
			
2243
 
2244
		#如果有關鍵字「/」在開頭
2244
		#如果有關鍵字「/」在開頭
2245
		if($getMeetConditionsString["founded"]=="true"){
2245
		if($getMeetConditionsString["founded"]=="true"){
2246
			
2246
 
2247
			#初始化改變好的路徑為「/」開頭
2247
			#初始化改變好的路徑為「/」開頭
2248
			$result["changedPath"]="/";
2248
			$result["changedPath"]="/";
2249
			
2249
 
2250
			}#if end
2250
			}#if end
2251
		
2251
 
2252
		#$tempDirStrArray有幾個元素就執行幾次
2252
		#$tempDirStrArray有幾個元素就執行幾次
2253
		for($i=0;$i<count($tempDirStrArray);$i++){
2253
		for($i=0;$i<count($tempDirStrArray);$i++){
2254
			
2254
 
2255
			#如果是最後一個元素
2255
			#如果是最後一個元素
2256
			if($i==(count($tempDirStrArray)-1)){
2256
			if($i==(count($tempDirStrArray)-1)){
2257
				
2257
 
2258
				#檢查 $conf["dirStr"] 是否有 「/」 結尾
2258
				#檢查 $conf["dirStr"] 是否有 「/」 結尾
2259
				#函式說明:
2259
				#函式說明:
2260
				#取得符合特定字首與字尾的字串
2260
				#取得符合特定字首與字尾的字串
2261
				#回傳結果:
2261
				#回傳結果:
2262
				#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
2262
				#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
Line 2274... Line 2274...
2274
				$conf["search::getMeetConditionsString"]["tailWord"]="/";
2274
				$conf["search::getMeetConditionsString"]["tailWord"]="/";
2275
				#參考資料:
2275
				#參考資料:
2276
				#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
2276
				#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
2277
				$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
2277
				$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
2278
				unset($conf["search::getMeetConditionsString"]);
2278
				unset($conf["search::getMeetConditionsString"]);
2279
				
2279
 
2280
				#如果尋找關鍵字失敗
2280
				#如果尋找關鍵字失敗
2281
				if($getMeetConditionsString["status"]=="false"){
2281
				if($getMeetConditionsString["status"]=="false"){
2282
					
2282
 
2283
					#設置錯誤識別
2283
					#設置錯誤識別
2284
					$result["status"]="false";
2284
					$result["status"]="false";
2285
					
2285
 
2286
					#設置錯誤訊息
2286
					#設置錯誤訊息
2287
					$result["error"]=$spiltString;
2287
					$result["error"]=$spiltString;
2288
					
2288
 
2289
					#回傳結果
2289
					#回傳結果
2290
					return $result;
2290
					return $result;
2291
					
2291
 
2292
					}#if end
2292
					}#if end
2293
					
2293
 
2294
				#如果有關鍵字「/」在結尾
2294
				#如果有關鍵字「/」在結尾
2295
				if($getMeetConditionsString["founded"]=="true"){
2295
				if($getMeetConditionsString["founded"]=="true"){
2296
					
2296
 
2297
					#串接直觀的路徑與結尾加上「/」
2297
					#串接直觀的路徑與結尾加上「/」
2298
					$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";
2298
					$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";
2299
					
2299
 
2300
					}#if end
2300
					}#if end
2301
					
2301
 
2302
				#反之
2302
				#反之
2303
				else{
2303
				else{
2304
					
2304
 
2305
					#串接直觀的路徑與結尾加上「/」
2305
					#串接直觀的路徑與結尾加上「/」
2306
					$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i];
2306
					$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i];
2307
					
2307
 
2308
					}#else end
2308
					}#else end
2309
				
2309
 
2310
				}#if end
2310
				}#if end
2311
			
2311
 
2312
			#反之	
2312
			#反之
2313
			else{
2313
			else{
2314
				
2314
 
2315
				#串接直觀的路徑與結尾加上「/」
2315
				#串接直觀的路徑與結尾加上「/」
2316
				$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";
2316
				$result["changedPath"]=$result["changedPath"].$tempDirStrArray[$i]."/";
2317
				
2317
 
2318
				}#else end
2318
				}#else end
2319
			
2319
 
2320
			}#for end
2320
			}#for end
2321
			
2321
 
2322
		#設置執行成功的識別
2322
		#設置執行成功的識別
2323
		$result["status"]="true";
2323
		$result["status"]="true";
2324
		
2324
 
2325
		#回傳結果
2325
		#回傳結果
2326
		return $result;
2326
		return $result;
2327
		
2327
 
2328
		}#function changeDirByDotDotSolidus end
2328
		}#function changeDirByDotDotSolidus end
2329
 
2329
 
2330
	/*
2330
	/*
2331
	#函式說明:
2331
	#函式說明:
2332
	#將陣列裡的元素內容用特定符號連接在一起變成字串. 
2332
	#將陣列裡的元素內容用特定符號連接在一起變成字串.
2333
	#回傳結果:
2333
	#回傳結果:
2334
	#$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
2334
	#$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
2335
	#$result["function"],當前執行的函數.
2335
	#$result["function"],當前執行的函數.
2336
	#$result["error"],錯誤訊息陣列.
2336
	#$result["error"],錯誤訊息陣列.
2337
	#$result["content"],處理過後的字串.
2337
	#$result["content"],處理過後的字串.
Line 2346... Line 2346...
2346
	#無.
2346
	#無.
2347
	#備註:
2347
	#備註:
2348
	#無.
2348
	#無.
2349
	*/
2349
	*/
2350
	public static function combineElementWithSymbol(&$conf){
2350
	public static function combineElementWithSymbol(&$conf){
2351
		
2351
 
2352
		#初始化要回傳的內容
2352
		#初始化要回傳的內容
2353
		$result=array();
2353
		$result=array();
2354
 
2354
 
2355
		#取得當前執行的函數名稱
2355
		#取得當前執行的函數名稱
2356
		$result["function"]=__FUNCTION__;
2356
		$result["function"]=__FUNCTION__;
2357
 
2357
 
2358
		#如果 $conf 不為陣列
2358
		#如果 $conf 不為陣列
2359
		if(gettype($conf)!="array"){
2359
		if(gettype($conf)!="array"){
2360
			
2360
 
2361
			#設置執行失敗
2361
			#設置執行失敗
2362
			$result["status"]="false";
2362
			$result["status"]="false";
2363
			
2363
 
2364
			#設置執行錯誤訊息
2364
			#設置執行錯誤訊息
2365
			$result["error"][]="\$conf變數須為陣列形態";
2365
			$result["error"][]="\$conf變數須為陣列形態";
2366
 
2366
 
2367
			#如果傳入的參數為 null
2367
			#如果傳入的參數為 null
2368
			if($conf==null){
2368
			if($conf==null){
2369
				
2369
 
2370
				#設置執行錯誤訊息
2370
				#設置執行錯誤訊息
2371
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2371
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2372
				
2372
 
2373
				}#if end
2373
				}#if end
2374
 
2374
 
2375
			#回傳結果
2375
			#回傳結果
2376
			return $result;
2376
			return $result;
2377
			
2377
 
2378
			}#if end
2378
			}#if end
2379
 
2379
 
2380
		#檢查參數
2380
		#檢查參數
2381
		#函式說明:
2381
		#函式說明:
2382
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2382
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 2393... Line 2393...
2393
		#必填寫的參數:
2393
		#必填寫的參數:
2394
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2394
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2395
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2395
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2396
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2396
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2397
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputArray","combineSymbol");
2397
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputArray","combineSymbol");
2398
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2398
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
2399
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
2399
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("array","string");
2400
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2400
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2401
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2401
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2402
		#可以省略的參數:
2402
		#可以省略的參數:
2403
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2403
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2404
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
2404
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
2405
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2405
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2406
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
2406
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("wordsLong");
2407
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2407
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2408
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
2408
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
2409
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2409
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2410
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
2410
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
2411
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2411
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2412
		#$conf["arrayCountEqualCheck"][]=array();
2412
		#$conf["arrayCountEqualCheck"][]=array();
Line 2415... Line 2415...
2415
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2415
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2416
		unset($conf["variableCheck::checkArguments"]);
2416
		unset($conf["variableCheck::checkArguments"]);
2417
 
2417
 
2418
		#如果檢查有誤
2418
		#如果檢查有誤
2419
		if($checkResult["status"]=="false"){
2419
		if($checkResult["status"]=="false"){
2420
			
2420
 
2421
			#設置錯誤識別
2421
			#設置錯誤識別
2422
			$result["status"]="false";
2422
			$result["status"]="false";
2423
			
2423
 
2424
			#設置錯誤訊息
2424
			#設置錯誤訊息
2425
			$result["error"]=$checkResult;
2425
			$result["error"]=$checkResult;
2426
			
2426
 
2427
			#回傳結果
2427
			#回傳結果
2428
			return $result;
2428
			return $result;
2429
			
2429
 
2430
			}#if end
2430
			}#if end
2431
		
2431
 
2432
		#如果檢查不通過
2432
		#如果檢查不通過
2433
		if($checkResult["passed"]=="false"){
2433
		if($checkResult["passed"]=="false"){
2434
			
2434
 
2435
			#設置錯誤識別
2435
			#設置錯誤識別
2436
			$result["status"]="false";
2436
			$result["status"]="false";
2437
			
2437
 
2438
			#設置錯誤訊息
2438
			#設置錯誤訊息
2439
			$result["error"]=$checkResult;
2439
			$result["error"]=$checkResult;
2440
			
2440
 
2441
			#回傳結果
2441
			#回傳結果
2442
			return $result;
2442
			return $result;
2443
			
2443
 
2444
			}#if end
2444
			}#if end
2445
		
2445
 
2446
		#初始化要回傳的字串
2446
		#初始化要回傳的字串
2447
		$result["content"]="";
2447
		$result["content"]="";
2448
			
2448
 
2449
		#針對 $conf["inputArray"] 的每個元素
2449
		#針對 $conf["inputArray"] 的每個元素
2450
		for($i=0;$i<count($conf["inputArray"]);$i++){
2450
		for($i=0;$i<count($conf["inputArray"]);$i++){
2451
			
2451
 
2452
			#如果是第一筆
2452
			#如果是第一筆
2453
			if($i==0){
2453
			if($i==0){
2454
				
2454
 
2455
				#將字串連接在一塊
2455
				#將字串連接在一塊
2456
				$result["content"]=$result["content"].$conf["inputArray"][$i];
2456
				$result["content"]=$result["content"].$conf["inputArray"][$i];
2457
				
2457
 
2458
				}#if end
2458
				}#if end
2459
			
2459
 
2460
			#反之是最後一筆
2460
			#反之是最後一筆
2461
			else{
2461
			else{
2462
			
2462
 
2463
				#將字串連接在一塊
2463
				#將字串連接在一塊
2464
				$result["content"]=$result["content"].$conf["combineSymbol"].$conf["inputArray"][$i];
2464
				$result["content"]=$result["content"].$conf["combineSymbol"].$conf["inputArray"][$i];
2465
			
2465
 
2466
				}#else end
2466
				}#else end
2467
			
2467
 
2468
			}#foreach end
2468
			}#foreach end
2469
		
2469
 
2470
		#執行到這邊代表執行正常
2470
		#執行到這邊代表執行正常
2471
		$result["status"]="true";
2471
		$result["status"]="true";
2472
		
2472
 
2473
		#回傳結果
2473
		#回傳結果
2474
		return $result;
2474
		return $result;
2475
		
2475
 
2476
		}#function combineElementWithSymbol end
2476
		}#function combineElementWithSymbol end
2477
 
2477
 
2478
	/*
2478
	/*
2479
	#函式說明:
2479
	#函式說明:
2480
	#unicode的字串分割,比str_split的支援度高.
2480
	#unicode的字串分割,比str_split的支援度高.
2481
	#回傳結果:
2481
	#回傳結果:
2482
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2482
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2483
	#$result["error"],錯誤訊息陣列.	
2483
	#$result["error"],錯誤訊息陣列.
2484
	#$result["function"],當前執行的函數名稱.
2484
	#$result["function"],當前執行的函數名稱.
2485
	#$result["content"],分割好的內容陣列.
2485
	#$result["content"],分割好的內容陣列.
2486
	#$result["length"],unicode字串的長度.
2486
	#$result["length"],unicode字串的長度.
2487
	#必填參數:
2487
	#必填參數:
2488
	#$conf["str"],字串",要分割的字串.
2488
	#$conf["str"],字串",要分割的字串.
Line 2494... Line 2494...
2494
	#http://php.net/manual/en/function.str-split.php
2494
	#http://php.net/manual/en/function.str-split.php
2495
	#備註:
2495
	#備註:
2496
	#無.
2496
	#無.
2497
	*/
2497
	*/
2498
	public static function str_split_unicode(&$conf){
2498
	public static function str_split_unicode(&$conf){
2499
		
2499
 
2500
		#檢查參數
2500
		#檢查參數
2501
		#函式說明:
2501
		#函式說明:
2502
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2502
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2503
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2503
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2504
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2504
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 2529... Line 2529...
2529
		#$conf["canBeEmpty"]=array();
2529
		#$conf["canBeEmpty"]=array();
2530
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
2530
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
2531
		#$conf["skipableVariableCanNotBeEmpty"]=array();
2531
		#$conf["skipableVariableCanNotBeEmpty"]=array();
2532
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2532
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2533
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("length");
2533
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("length");
2534
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2534
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2535
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("integer");
2535
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("integer");
2536
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2536
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2537
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(1);
2537
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(1);
2538
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2538
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2539
		#$conf["arrayCountEqualCheck"][]=array();
2539
		#$conf["arrayCountEqualCheck"][]=array();
Line 2541... Line 2541...
2541
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2541
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2542
		#建議:
2542
		#建議:
2543
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
2543
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
2544
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2544
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2545
		unset($conf["variableCheck::checkArguments"]);
2545
		unset($conf["variableCheck::checkArguments"]);
2546
			
2546
 
2547
		#如果檢查參數失敗
2547
		#如果檢查參數失敗
2548
		if($checkArguments["status"]==="false"){
2548
		if($checkArguments["status"]==="false"){
2549
			
2549
 
2550
			#設置執行失敗
2550
			#設置執行失敗
2551
			$result["status"]="false";
2551
			$result["status"]="false";
2552
			
2552
 
2553
			#設置執行錯誤訊息
2553
			#設置執行錯誤訊息
2554
			$result["error"]=$checkArguments;
2554
			$result["error"]=$checkArguments;
2555
			
2555
 
2556
			#回傳結果
2556
			#回傳結果
2557
			return $result;
2557
			return $result;
2558
			
2558
 
2559
			}#if end	
2559
			}#if end
2560
			
2560
 
2561
		#如果檢查參數不通過
2561
		#如果檢查參數不通過
2562
		if($checkArguments["passed"]==="false"){
2562
		if($checkArguments["passed"]==="false"){
2563
			
2563
 
2564
			#設置執行失敗
2564
			#設置執行失敗
2565
			$result["status"]="false";
2565
			$result["status"]="false";
2566
			
2566
 
2567
			#設置執行錯誤訊息
2567
			#設置執行錯誤訊息
2568
			$result["error"]=$checkArguments;
2568
			$result["error"]=$checkArguments;
2569
			
2569
 
2570
			#回傳結果
2570
			#回傳結果
2571
			return $result;
2571
			return $result;
2572
			
2572
 
2573
			}#if end
2573
			}#if end
2574
		
2574
 
2575
		#要分割的長度若小於1
2575
		#要分割的長度若小於1
2576
		if($conf["length"]<1){
2576
		if($conf["length"]<1){
2577
			
2577
 
2578
			#設置執行失敗
2578
			#設置執行失敗
2579
			$result["status"]="false";
2579
			$result["status"]="false";
2580
			
2580
 
2581
			#設置執行錯誤訊息
2581
			#設置執行錯誤訊息
2582
			$result["error"][]="參數 \$conf[\"length\"] 不得小於 1";
2582
			$result["error"][]="參數 \$conf[\"length\"] 不得小於 1";
2583
			
2583
 
2584
			#回傳結果
2584
			#回傳結果
2585
			return $result;
2585
			return $result;
2586
			
2586
 
2587
			}#if end
2587
			}#if end
2588
			
2588
 
2589
		#初始化要回傳的字串陣列
2589
		#初始化要回傳的字串陣列
2590
		$result["content"]=array();
2590
		$result["content"]=array();
2591
		
2591
 
2592
		#取得 $conf["str"] 的長度
2592
		#取得 $conf["str"] 的長度
2593
		$result["length"]=mb_strlen($conf["str"],"UTF-8");
2593
		$result["length"]=mb_strlen($conf["str"],"UTF-8");
2594
		
2594
 
2595
		#依據 $conf["str"] 與 $conf["length"]
2595
		#依據 $conf["str"] 與 $conf["length"]
2596
		for($i=0;$i<$result["length"];$i=$i+$conf["length"]){
2596
		for($i=0;$i<$result["length"];$i=$i+$conf["length"]){
2597
			
2597
 
2598
			#從位置 $i 往後讀 $conf["length"] 個字,編碼為"UTF-8"
2598
			#從位置 $i 往後讀 $conf["length"] 個字,編碼為"UTF-8"
2599
			$result["content"][]=mb_substr($conf["str"], $i, $conf["length"],"UTF-8");
2599
			$result["content"][]=mb_substr($conf["str"], $i, $conf["length"],"UTF-8");
2600
			
2600
 
2601
			}#for end
2601
			}#for end
2602
			
2602
 
2603
		#設置執行正常
2603
		#設置執行正常
2604
		$result["status"]="true";	
2604
		$result["status"]="true";
2605
			
2605
 
2606
		#回傳結果	
2606
		#回傳結果
2607
		return $result;
2607
		return $result;
2608
			
2608
 
2609
		}#function str_split_unicode end
2609
		}#function str_split_unicode end
2610
 
2610
 
2611
	/*
2611
	/*
2612
	#函式說明:
2612
	#函式說明:
2613
	#將字串特定關鍵字與其前面的內容剔除
2613
	#將字串特定關鍵字與其前面的內容剔除
Line 2635... Line 2635...
2635
	#無.
2635
	#無.
2636
	#備註:
2636
	#備註:
2637
	#無.
2637
	#無.
2638
	*/
2638
	*/
2639
	public static function delStrBeforeKeyWord(&$conf){
2639
	public static function delStrBeforeKeyWord(&$conf){
2640
		
2640
 
2641
		#初始化要回傳的內容
2641
		#初始化要回傳的內容
2642
		$result=array();
2642
		$result=array();
2643
 
2643
 
2644
		#取得當前執行的函數名稱
2644
		#取得當前執行的函數名稱
2645
		$result["function"]=__FUNCTION__;
2645
		$result["function"]=__FUNCTION__;
2646
 
2646
 
2647
		#如果 $conf 不為陣列
2647
		#如果 $conf 不為陣列
2648
		if(gettype($conf)!="array"){
2648
		if(gettype($conf)!="array"){
2649
			
2649
 
2650
			#設置執行失敗
2650
			#設置執行失敗
2651
			$result["status"]="false";
2651
			$result["status"]="false";
2652
			
2652
 
2653
			#設置執行錯誤訊息
2653
			#設置執行錯誤訊息
2654
			$result["error"][]="\$conf變數須為陣列形態";
2654
			$result["error"][]="\$conf變數須為陣列形態";
2655
 
2655
 
2656
			#如果傳入的參數為 null
2656
			#如果傳入的參數為 null
2657
			if($conf==null){
2657
			if($conf==null){
2658
				
2658
 
2659
				#設置執行錯誤訊息
2659
				#設置執行錯誤訊息
2660
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2660
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2661
				
2661
 
2662
				}#if end
2662
				}#if end
2663
 
2663
 
2664
			#回傳結果
2664
			#回傳結果
2665
			return $result;
2665
			return $result;
2666
			
2666
 
2667
			}#if end
2667
			}#if end
2668
 
2668
 
2669
		#取得參數
2669
		#取得參數
2670
		$result["argu"]=$conf;
2670
		$result["argu"]=$conf;
2671
 
2671
 
Line 2685... Line 2685...
2685
		#必填寫的參數:
2685
		#必填寫的參數:
2686
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2686
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2687
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2687
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2688
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2688
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2689
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
2689
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
2690
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
2690
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
2691
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
2691
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
2692
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2692
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2693
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2693
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2694
		#可以省略的參數:
2694
		#可以省略的參數:
2695
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2695
		#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
2696
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
2696
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="true";
2697
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2697
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2698
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive","lastResult");
2698
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive","lastResult");
2699
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2699
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2700
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array");
2700
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","array");
2701
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2701
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2702
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false",null);
2702
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false",null);
2703
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2703
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2704
		#$conf["arrayCountEqualCheck"][]=array();
2704
		#$conf["arrayCountEqualCheck"][]=array();
Line 2711... Line 2711...
2711
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2711
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2712
		unset($conf["variableCheck::checkArguments"]);
2712
		unset($conf["variableCheck::checkArguments"]);
2713
 
2713
 
2714
		#如果檢查有誤
2714
		#如果檢查有誤
2715
		if($checkResult["status"]==="false"){
2715
		if($checkResult["status"]==="false"){
2716
			
2716
 
2717
			#設置錯誤識別
2717
			#設置錯誤識別
2718
			$result["status"]="false";
2718
			$result["status"]="false";
2719
			
2719
 
2720
			#設置錯誤訊息
2720
			#設置錯誤訊息
2721
			$result["error"]=$checkResult;
2721
			$result["error"]=$checkResult;
2722
			
2722
 
2723
			#回傳結果
2723
			#回傳結果
2724
			return $result;
2724
			return $result;
2725
			
2725
 
2726
			}#if end
2726
			}#if end
2727
		
2727
 
2728
		#如果檢查不通過
2728
		#如果檢查不通過
2729
		if($checkResult["passed"]==="false"){
2729
		if($checkResult["passed"]==="false"){
2730
			
2730
 
2731
			#設置錯誤識別
2731
			#設置錯誤識別
2732
			$result["status"]="false";
2732
			$result["status"]="false";
2733
			
2733
 
2734
			#設置錯誤訊息
2734
			#設置錯誤訊息
2735
			$result["error"]=$checkResult;
2735
			$result["error"]=$checkResult;
2736
			
2736
 
2737
			#回傳結果
2737
			#回傳結果
2738
			return $result;
2738
			return $result;
2739
			
2739
 
2740
			}#if end
2740
			}#if end
2741
		
2741
 
2742
		#如果要處理的字串已經為空了
2742
		#如果要處理的字串已經為空了
2743
		if($conf["stringIn"]===""){
2743
		if($conf["stringIn"]===""){
2744
		
2744
 
2745
			#擁有上次執行的結果.
2745
			#擁有上次執行的結果.
2746
			if(isset($conf["lastResult"])){
2746
			if(isset($conf["lastResult"])){
2747
			
2747
 
2748
				#回傳上次結果
2748
				#回傳上次結果
2749
				return $conf["lastResult"];
2749
				return $conf["lastResult"];
2750
			
2750
 
2751
				}#if end
2751
				}#if end
2752
				
2752
 
2753
			#如果關鍵字也是空字串
2753
			#如果關鍵字也是空字串
2754
			if($conf["keyWord"]===""){
2754
			if($conf["keyWord"]===""){
2755
			
2755
 
2756
				#設置有找到關鍵字
2756
				#設置有找到關鍵字
2757
				$result["founded"]="true";
2757
				$result["founded"]="true";
2758
				
2758
 
2759
				#初始化儲存原始的字串
2759
				#初始化儲存原始的字串
2760
				$result["oriStr"]=$conf["stringIn"];
2760
				$result["oriStr"]=$conf["stringIn"];
2761
				
2761
 
2762
				#結果跟原始字串一樣
2762
				#結果跟原始字串一樣
2763
				$result["content"]=$result["oriStr"];
2763
				$result["content"]=$result["oriStr"];
2764
				
2764
 
2765
				#設置執行正常識別
2765
				#設置執行正常識別
2766
				$result["status"]="true";
2766
				$result["status"]="true";
2767
				
2767
 
2768
				#回傳結果
2768
				#回傳結果
2769
				return $result;
2769
				return $result;
2770
			
2770
 
2771
				}#if end
2771
				}#if end
2772
		
2772
 
2773
			#設置執行正常識別
2773
			#設置執行正常識別
2774
			$result["status"]="true";
2774
			$result["status"]="true";
2775
			
2775
 
2776
			#設置警告訊息
2776
			#設置警告訊息
2777
			$result["warning"][]="要處理的參數 stringIn 為空,且沒有參數 lastResult 存在";
2777
			$result["warning"][]="要處理的參數 stringIn 為空,且沒有參數 lastResult 存在";
2778
			
2778
 
2779
			#初始化儲存原始的字串
2779
			#初始化儲存原始的字串
2780
			$result["oriStr"]=$conf["stringIn"];
2780
			$result["oriStr"]=$conf["stringIn"];
2781
			
2781
 
2782
			#結果跟原始字串一樣
2782
			#結果跟原始字串一樣
2783
			$result["content"]=$result["oriStr"];
2783
			$result["content"]=$result["oriStr"];
2784
			
2784
 
2785
			#設置沒有找到關鍵字
2785
			#設置沒有找到關鍵字
2786
			$result["founded"]="false";
2786
			$result["founded"]="false";
2787
			
2787
 
2788
			#回傳結果
2788
			#回傳結果
2789
			return $result;
2789
			return $result;
2790
			
2790
 
2791
			}#if end
2791
			}#if end
2792
		
2792
 
2793
		#如果要判斷的輸入為空字串
2793
		#如果要判斷的輸入為空字串
2794
		if($conf["stringIn"]===""){
2794
		if($conf["stringIn"]===""){
2795
		
2795
 
2796
			#初始化分割好內容
2796
			#初始化分割好內容
2797
			$spiltedStringIn=array();
2797
			$spiltedStringIn=array();
2798
		
2798
 
2799
			}#if end
2799
			}#if end
2800
			
2800
 
2801
		#反之
2801
		#反之
2802
		else{
2802
		else{
2803
		
2803
 
2804
			#將要處理的字串用unicode編碼來一個個字分割.
2804
			#將要處理的字串用unicode編碼來一個個字分割.
2805
			#函式說明:
2805
			#函式說明:
2806
			#unicode的字串分割,比str_split的支援度高.
2806
			#unicode的字串分割,比str_split的支援度高.
2807
			#回傳結果:
2807
			#回傳結果:
2808
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2808
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2809
			#$result["error"],錯誤訊息陣列.	
2809
			#$result["error"],錯誤訊息陣列.
2810
			#$result["function"],當前執行的函數名稱.
2810
			#$result["function"],當前執行的函數名稱.
2811
			#$result["content"],分割好的內容.
2811
			#$result["content"],分割好的內容.
2812
			#$result["length"],unicode字串的長度.
2812
			#$result["length"],unicode字串的長度.
2813
			#必填參數:
2813
			#必填參數:
2814
			#$conf["str"],字串",要分割的字串.
2814
			#$conf["str"],字串",要分割的字串.
Line 2818... Line 2818...
2818
			#$conf["length"]=1;
2818
			#$conf["length"]=1;
2819
			#參考資料:
2819
			#參考資料:
2820
			#http://php.net/manual/en/function.str-split.php
2820
			#http://php.net/manual/en/function.str-split.php
2821
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
2821
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
2822
			unset($conf["stringProcess::str_split_unicode"]);
2822
			unset($conf["stringProcess::str_split_unicode"]);
2823
			
2823
 
2824
			#如果分割字串失敗
2824
			#如果分割字串失敗
2825
			if($str_split_unicode["status"]==="false"){
2825
			if($str_split_unicode["status"]==="false"){
2826
				
2826
 
2827
				#設置錯誤識別
2827
				#設置錯誤識別
2828
				$result["status"]="false";
2828
				$result["status"]="false";
2829
				
2829
 
2830
				#設置錯誤訊息
2830
				#設置錯誤訊息
2831
				$result["error"]=$str_split_unicode;
2831
				$result["error"]=$str_split_unicode;
2832
				
2832
 
2833
				#回傳結果
2833
				#回傳結果
2834
				return $result;
2834
				return $result;
2835
				
2835
 
2836
				}#if end
2836
				}#if end
2837
			
2837
 
2838
			#取得分割好的字串
2838
			#取得分割好的字串
2839
			$spiltedStringIn=$str_split_unicode["content"];
2839
			$spiltedStringIn=$str_split_unicode["content"];
2840
		
2840
 
2841
			}#else 
2841
			}#else
2842
		
2842
 
2843
		#如果關鍵字為空字串
2843
		#如果關鍵字為空字串
2844
		if($conf["keyWord"]===""){
2844
		if($conf["keyWord"]===""){
2845
		
2845
 
2846
			#初始化分割好內容
2846
			#初始化分割好內容
2847
			$spiltedKeyWord=array();
2847
			$spiltedKeyWord=array();
2848
		
2848
 
2849
			}#if end
2849
			}#if end
2850
		
2850
 
2851
		#反之
2851
		#反之
2852
		else{
2852
		else{
2853
		
2853
 
2854
			#將要處理的關鍵字用unicode編碼來一個個字分割.
2854
			#將要處理的關鍵字用unicode編碼來一個個字分割.
2855
			#函式說明:
2855
			#函式說明:
2856
			#unicode的字串分割,比str_split的支援度高.
2856
			#unicode的字串分割,比str_split的支援度高.
2857
			#回傳結果:
2857
			#回傳結果:
2858
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2858
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2859
			#$result["error"],錯誤訊息陣列.	
2859
			#$result["error"],錯誤訊息陣列.
2860
			#$result["function"],當前執行的函數名稱.
2860
			#$result["function"],當前執行的函數名稱.
2861
			#$result["content"],分割好的內容.
2861
			#$result["content"],分割好的內容.
2862
			#$result["length"],unicode字串的長度.
2862
			#$result["length"],unicode字串的長度.
2863
			#必填參數:
2863
			#必填參數:
2864
			#$conf["str"],字串",要分割的字串.
2864
			#$conf["str"],字串",要分割的字串.
Line 2868... Line 2868...
2868
			#$conf["length"]=1;
2868
			#$conf["length"]=1;
2869
			#參考資料:
2869
			#參考資料:
2870
			#http://php.net/manual/en/function.str-split.php
2870
			#http://php.net/manual/en/function.str-split.php
2871
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
2871
			$str_split_unicode=self::str_split_unicode($conf["stringProcess::str_split_unicode"]);
2872
			unset($conf["stringProcess::str_split_unicode"]);
2872
			unset($conf["stringProcess::str_split_unicode"]);
2873
			
2873
 
2874
			#如果分割字串失敗
2874
			#如果分割字串失敗
2875
			if($str_split_unicode["status"]==="false"){
2875
			if($str_split_unicode["status"]==="false"){
2876
				
2876
 
2877
				#設置錯誤識別
2877
				#設置錯誤識別
2878
				$result["status"]="false";
2878
				$result["status"]="false";
2879
				
2879
 
2880
				#設置錯誤訊息
2880
				#設置錯誤訊息
2881
				$result["error"]=$str_split_unicode;
2881
				$result["error"]=$str_split_unicode;
2882
				
2882
 
2883
				#回傳結果
2883
				#回傳結果
2884
				return $result;
2884
				return $result;
2885
				
2885
 
2886
				}#if end
2886
				}#if end
2887
			
2887
 
2888
			#取得分割好的字串
2888
			#取得分割好的字串
2889
			$spiltedKeyWord=$str_split_unicode["content"];
2889
			$spiltedKeyWord=$str_split_unicode["content"];
2890
		
2890
 
2891
			}#else end
2891
			}#else end
2892
		
2892
 
2893
		#如果關鍵字比要處理的字串長
2893
		#如果關鍵字比要處理的字串長
2894
		if(count($spiltedKeyWord)>count($spiltedStringIn)){
2894
		if(count($spiltedKeyWord)>count($spiltedStringIn)){
2895
			
2895
 
2896
			#如果有前次的結果
2896
			#如果有前次的結果
2897
			if(isset($conf["lastResult"])){
2897
			if(isset($conf["lastResult"])){
2898
			
2898
 
2899
				#回傳之
2899
				#回傳之
2900
				return $conf["lastResult"];
2900
				return $conf["lastResult"];
2901
			
2901
 
2902
				}#if end
2902
				}#if end
2903
			
2903
 
2904
			#設置錯誤識別
2904
			#設置錯誤識別
2905
			$result["status"]="true";
2905
			$result["status"]="true";
2906
			
2906
 
2907
			#設置錯誤訊息
2907
			#設置錯誤訊息
2908
			$result["warning"][]="變數 keyWord 不應該比變數 stringIn 長";
2908
			$result["warning"][]="變數 keyWord 不應該比變數 stringIn 長";
2909
			
2909
 
2910
			#初始化儲存原始的字串
2910
			#初始化儲存原始的字串
2911
			$result["oriStr"]=$conf["stringIn"];
2911
			$result["oriStr"]=$conf["stringIn"];
2912
			
2912
 
2913
			#結果跟原始字串一樣
2913
			#結果跟原始字串一樣
2914
			$result["content"]=$result["oriStr"];
2914
			$result["content"]=$result["oriStr"];
2915
			
2915
 
2916
			#設置沒有找到關鍵字
2916
			#設置沒有找到關鍵字
2917
			$result["founded"]="false";
2917
			$result["founded"]="false";
2918
			
2918
 
2919
			#回傳結果
2919
			#回傳結果
2920
			return $result;
2920
			return $result;
2921
			
2921
 
2922
			}#if end
2922
			}#if end
2923
		
2923
 
2924
		#初始化儲存要移除第幾個字之前的內容(索引從0開始)
2924
		#初始化儲存要移除第幾個字之前的內容(索引從0開始)
2925
		$delCount=-1;
2925
		$delCount=-1;
2926
		
2926
 
2927
		#初始化暫存關鍵字的第幾個字
2927
		#初始化暫存關鍵字的第幾個字
2928
		$wordCount=0;
2928
		$wordCount=0;
2929
		
2929
 
2930
		#無窮迴圈
2930
		#無窮迴圈
2931
		for($i=0;$i<count($spiltedStringIn);$i++){
2931
		for($i=0;$i<count($spiltedStringIn);$i++){
2932
			
2932
 
2933
			#如果關鍵字不存在
2933
			#如果關鍵字不存在
2934
			if(!isset($spiltedKeyWord[$wordCount])){
2934
			if(!isset($spiltedKeyWord[$wordCount])){
2935
			
2935
 
2936
				#debug
2936
				#debug
2937
				#var_dump(__LINE__,$spiltedStringIn,$spiltedStringIn[$i]);
2937
				#var_dump(__LINE__,$spiltedStringIn,$spiltedStringIn[$i]);
2938
			
2938
 
2939
				#跳過
2939
				#跳過
2940
				continue;
2940
				continue;
2941
			
2941
 
2942
				}#if end
2942
				}#if end
2943
			
2943
 
2944
			#如果有遇到相符合的字元
2944
			#如果有遇到相符合的字元
2945
			if($spiltedStringIn[$i]===$spiltedKeyWord[$wordCount]){
2945
			if($spiltedStringIn[$i]===$spiltedKeyWord[$wordCount]){
2946
				
2946
 
2947
				#換尋找下個字元有無符合
2947
				#換尋找下個字元有無符合
2948
				$wordCount++;
2948
				$wordCount++;
2949
				
2949
 
2950
				#如果下一個關鍵字字元不存在
2950
				#如果下一個關鍵字字元不存在
2951
				if(!isset($spiltedKeyWord[$wordCount])){
2951
				if(!isset($spiltedKeyWord[$wordCount])){
2952
					
2952
 
2953
					#代表有找到符合條件的關鍵字了
2953
					#代表有找到符合條件的關鍵字了
2954
					$delCount=$i;
2954
					$delCount=$i;
2955
					
2955
 
2956
					#跳出迴圈
2956
					#跳出迴圈
2957
					break;
2957
					break;
2958
					
2958
 
2959
					}#if end
2959
					}#if end
2960
				
2960
 
2961
				}#if end
2961
				}#if end
2962
				
2962
 
2963
			#反之沒有遇到相符合的字元
2963
			#反之沒有遇到相符合的字元
2964
			else{
2964
			else{
2965
				
2965
 
2966
				#初始化 $j 為 0
2966
				#初始化 $j 為 0
2967
				$wordCount=0;
2967
				$wordCount=0;
2968
				
2968
 
2969
				}#else end
2969
				}#else end
2970
			
2970
 
2971
			}#for end
2971
			}#for end
2972
		
2972
 
2973
		#初始化儲存原始的字串
2973
		#初始化儲存原始的字串
2974
		$result["oriStr"]=$conf["stringIn"];
2974
		$result["oriStr"]=$conf["stringIn"];
2975
		
2975
 
2976
		#初始化處理好的字串
2976
		#初始化處理好的字串
2977
		$result["content"]="";
2977
		$result["content"]="";
2978
 
2978
 
2979
		#如果有要剔除的字
2979
		#如果有要剔除的字
2980
		if($delCount>-1){
2980
		if($delCount>-1){
Line 2982... Line 2982...
2982
			#初始化移除的內容
2982
			#初始化移除的內容
2983
			$result["deleted"]="";
2983
			$result["deleted"]="";
2984
 
2984
 
2985
			#取得剩下的內容
2985
			#取得剩下的內容
2986
			for($i=0;$i<$delCount+1;$i++){
2986
			for($i=0;$i<$delCount+1;$i++){
2987
				
2987
 
2988
				#逐字取得字串
2988
				#逐字取得字串
2989
				$result["deleted"]=$result["deleted"].$spiltedStringIn[$i];
2989
				$result["deleted"]=$result["deleted"].$spiltedStringIn[$i];
2990
				
2990
 
2991
				}#for end
2991
				}#for end
2992
 
2992
 
2993
			#取得剩下的內容
2993
			#取得剩下的內容
2994
			for($i=$delCount+1;$i<count($spiltedStringIn);$i++){
2994
			for($i=$delCount+1;$i<count($spiltedStringIn);$i++){
2995
				
2995
 
2996
				#逐字取得字串
2996
				#逐字取得字串
2997
				$result["content"]=$result["content"].$spiltedStringIn[$i];
2997
				$result["content"]=$result["content"].$spiltedStringIn[$i];
2998
				
2998
 
2999
				}#for end
2999
				}#for end
3000
				
3000
 
3001
			#設置有找到關鍵字串
3001
			#設置有找到關鍵字串
3002
			$result["founded"]="true";
3002
			$result["founded"]="true";
3003
			
3003
 
3004
			}#if end
3004
			}#if end
3005
			
3005
 
3006
		#反之沒有要處理的字串
3006
		#反之沒有要處理的字串
3007
		else{
3007
		else{
3008
			
3008
 
3009
			#取得原始字串
3009
			#取得原始字串
3010
			$result["content"]=$result["oriStr"];
3010
			$result["content"]=$result["oriStr"];
3011
			
3011
 
3012
			#設置沒有找到關鍵字串
3012
			#設置沒有找到關鍵字串
3013
			$result["founded"]="false";
3013
			$result["founded"]="false";
3014
			
3014
 
3015
			}#else end
3015
			}#else end
3016
			
3016
 
3017
		#設置執行正常
3017
		#設置執行正常
3018
		$result["status"]="true";
3018
		$result["status"]="true";
3019
		
3019
 
3020
		#如果需要遞迴執行
3020
		#如果需要遞迴執行
3021
		if($conf["recursive"]==="true"){
3021
		if($conf["recursive"]==="true"){
3022
		
3022
 
3023
			#如果沒有找到目標
3023
			#如果沒有找到目標
3024
			if($result["founded"]==="false"){
3024
			if($result["founded"]==="false"){
3025
			
3025
 
3026
				#如果有前次的結果
3026
				#如果有前次的結果
3027
				if(isset($conf["lastResult"])){
3027
				if(isset($conf["lastResult"])){
3028
				
3028
 
3029
					#回傳之
3029
					#回傳之
3030
					return $conf["lastResult"];
3030
					return $conf["lastResult"];
3031
					
3031
 
3032
					}#if enb
3032
					}#if enb
3033
				
3033
 
3034
				#回傳本次結果
3034
				#回傳本次結果
3035
				return $result;
3035
				return $result;
3036
			
3036
 
3037
				}#if end
3037
				}#if end
3038
		
3038
 
3039
			#函式說明:
3039
			#函式說明:
3040
			#將字串特定關鍵字與其前面的內容剔除
3040
			#將字串特定關鍵字與其前面的內容剔除
3041
			#回傳結果:
3041
			#回傳結果:
3042
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3042
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3043
			#$result["error"],錯誤訊息陣列.
3043
			#$result["error"],錯誤訊息陣列.
3044
			#$result["warning"],警告訊息鎮列.
3044
			#$result["warning"],警告訊息鎮列.
3045
			#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3045
			#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3046
			#$result["function"],當前執行的函數名稱.
3046
			#$result["function"],當前執行的函數名稱.
3047
			#$result["oriStr"],要處理的原始字串內容.
3047
			#$result["oriStr"],要處理的原始字串內容.
3048
			#$result["content"],處理好的的字串內容.	
3048
			#$result["content"],處理好的的字串內容.
3049
			#必填參數:
3049
			#必填參數:
3050
			#$conf["stringIn"],字串,要處理的字串.
3050
			#$conf["stringIn"],字串,要處理的字串.
3051
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];
3051
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$result["content"];
3052
			#$conf["keyWord"],字串,特定字串.
3052
			#$conf["keyWord"],字串,特定字串.
3053
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
3053
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
Line 3060... Line 3060...
3060
			#無.
3060
			#無.
3061
			#備註:
3061
			#備註:
3062
			#無.
3062
			#無.
3063
			return stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3063
			return stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3064
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
3064
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
3065
			
3065
 
3066
			}#if end
3066
			}#if end
3067
		
3067
 
3068
		#回傳結果
3068
		#回傳結果
3069
		return $result;
3069
		return $result;
3070
		
3070
 
3071
		}#function delStrBeforeKeyWord end
3071
		}#function delStrBeforeKeyWord end
3072
 
3072
 
3073
	/*
3073
	/*
3074
	#函式說明:
3074
	#函式說明:
3075
	#將字串特定關鍵字與其後面的內容剔除
3075
	#將字串特定關鍵字與其後面的內容剔除
Line 3095... Line 3095...
3095
	#無.
3095
	#無.
3096
	#備註:
3096
	#備註:
3097
	#無.
3097
	#無.
3098
	*/
3098
	*/
3099
	public static function delStrAfterKeyWord(&$conf){
3099
	public static function delStrAfterKeyWord(&$conf){
3100
		
3100
 
3101
		#初始化要回傳的內容
3101
		#初始化要回傳的內容
3102
		$result=array();
3102
		$result=array();
3103
 
3103
 
3104
		#取得當前執行的函數名稱
3104
		#取得當前執行的函數名稱
3105
		$result["function"]=__FUNCTION__;
3105
		$result["function"]=__FUNCTION__;
3106
 
3106
 
3107
		#如果 $conf 不為陣列
3107
		#如果 $conf 不為陣列
3108
		if(gettype($conf)!=="array"){
3108
		if(gettype($conf)!=="array"){
3109
			
3109
 
3110
			#設置執行失敗
3110
			#設置執行失敗
3111
			$result["status"]="false";
3111
			$result["status"]="false";
3112
			
3112
 
3113
			#設置執行錯誤訊息
3113
			#設置執行錯誤訊息
3114
			$result["error"][]="\$conf變數須為陣列形態";
3114
			$result["error"][]="\$conf變數須為陣列形態";
3115
 
3115
 
3116
			#如果傳入的參數為 null
3116
			#如果傳入的參數為 null
3117
			if($conf==null){
3117
			if($conf==null){
3118
				
3118
 
3119
				#設置執行錯誤訊息
3119
				#設置執行錯誤訊息
3120
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3120
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3121
				
3121
 
3122
				}#if end
3122
				}#if end
3123
 
3123
 
3124
			#回傳結果
3124
			#回傳結果
3125
			return $result;
3125
			return $result;
3126
			
3126
 
3127
			}#if end
3127
			}#if end
3128
 
3128
 
3129
		#檢查參數
3129
		#檢查參數
3130
		#函式說明:
3130
		#函式說明:
3131
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3131
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 3142... Line 3142...
3142
		#必填寫的參數:
3142
		#必填寫的參數:
3143
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3143
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3144
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3144
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3145
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3145
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3146
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
3146
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("stringIn","keyWord");
3147
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
3147
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
3148
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
3148
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
3149
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3149
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3150
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3150
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3151
		#可以省略的參數:
3151
		#可以省略的參數:
3152
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
3152
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
3153
		#$conf["canBeEmptyString"]="false";
3153
		#$conf["canBeEmptyString"]="false";
3154
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3154
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3155
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("deleteLastRepeatedOne");
3155
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("deleteLastRepeatedOne");
3156
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3156
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
3157
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
3157
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
3158
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3158
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3159
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
3159
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
3160
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3160
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3161
		#$conf["arrayCountEqualCheck"][]=array();
3161
		#$conf["arrayCountEqualCheck"][]=array();
Line 3164... Line 3164...
3164
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3164
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3165
		unset($conf["variableCheck::checkArguments"]);
3165
		unset($conf["variableCheck::checkArguments"]);
3166
 
3166
 
3167
		#如果檢查有誤
3167
		#如果檢查有誤
3168
		if($checkResult["status"]==="false"){
3168
		if($checkResult["status"]==="false"){
3169
			
3169
 
3170
			#設置錯誤識別
3170
			#設置錯誤識別
3171
			$result["status"]="false";
3171
			$result["status"]="false";
3172
			
3172
 
3173
			#設置錯誤訊息
3173
			#設置錯誤訊息
3174
			$result["error"]=$checkResult;
3174
			$result["error"]=$checkResult;
3175
			
3175
 
3176
			#回傳結果
3176
			#回傳結果
3177
			return $result;
3177
			return $result;
3178
			
3178
 
3179
			}#if end
3179
			}#if end
3180
		
3180
 
3181
		#如果檢查不通過
3181
		#如果檢查不通過
3182
		if($checkResult["passed"]==="false"){
3182
		if($checkResult["passed"]==="false"){
3183
			
3183
 
3184
			#設置錯誤識別
3184
			#設置錯誤識別
3185
			$result["status"]="false";
3185
			$result["status"]="false";
3186
			
3186
 
3187
			#設置錯誤訊息
3187
			#設置錯誤訊息
3188
			$result["error"]=$checkResult;
3188
			$result["error"]=$checkResult;
3189
			
3189
 
3190
			#回傳結果
3190
			#回傳結果
3191
			return $result;
3191
			return $result;
3192
			
3192
 
3193
			}#if end
3193
			}#if end
3194
		
3194
 
3195
		#記錄使用的參數
3195
		#記錄使用的參數
3196
		$result["argu"]=$conf;
3196
		$result["argu"]=$conf;
3197
		
3197
 
3198
		#倒序內容
3198
		#倒序內容
3199
		$conf["stringIn"]=strrev($conf["stringIn"]);
3199
		$conf["stringIn"]=strrev($conf["stringIn"]);
3200
		
3200
 
3201
		#倒敘關鍵字
3201
		#倒敘關鍵字
3202
		$conf["keyWord"]=strrev($conf["keyWord"]);
3202
		$conf["keyWord"]=strrev($conf["keyWord"]);
3203
		
3203
 
3204
		#函式說明:
3204
		#函式說明:
3205
		#將字串特定關鍵字與其前面的內容剔除
3205
		#將字串特定關鍵字與其前面的內容剔除
3206
		#回傳結果:
3206
		#回傳結果:
3207
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3207
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3208
		#$result["error"],錯誤訊息陣列.
3208
		#$result["error"],錯誤訊息陣列.
3209
		#$result["warning"],警告訊息鎮列.
3209
		#$result["warning"],警告訊息鎮列.
3210
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3210
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3211
		#$result["function"],當前執行的函數名稱.
3211
		#$result["function"],當前執行的函數名稱.
3212
		#$result["oriStr"],要處理的原始字串內容.
3212
		#$result["oriStr"],要處理的原始字串內容.
3213
		#$result["content"],處理好的的字串內容.	
3213
		#$result["content"],處理好的的字串內容.
3214
		#必填參數:
3214
		#必填參數:
3215
		#$conf["stringIn"],字串,要處理的字串.
3215
		#$conf["stringIn"],字串,要處理的字串.
3216
		$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["stringIn"];
3216
		$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["stringIn"];
3217
		#$conf["keyWord"],字串,特定字串.
3217
		#$conf["keyWord"],字串,特定字串.
3218
		$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
3218
		$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["keyWord"];
3219
		#可省略參數:
3219
		#可省略參數:
3220
		
3220
 
3221
		#如果不需要移除最後一個符合的關鍵字之後的內容
3221
		#如果不需要移除最後一個符合的關鍵字之後的內容
3222
		if($conf["deleteLastRepeatedOne"]==="false"){
3222
		if($conf["deleteLastRepeatedOne"]==="false"){
3223
		
3223
 
3224
			#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
3224
			#$conf["recursive"],字串,預設為"false"代表找到一個關鍵字就會停止;"true"代表會即重複執行,知道沒有關鍵字為止.
3225
			$conf["stringProcess::delStrBeforeKeyWord"]["recursive"]="true";
3225
			$conf["stringProcess::delStrBeforeKeyWord"]["recursive"]="true";
3226
		
3226
 
3227
			}#if end
3227
			}#if end
3228
		
3228
 
3229
		#$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則回改回傳該內容.
3229
		#$conf["lastResult"],陣列,本函式前次執行的結果,若沒有找到關鍵字,則回改回傳該內容.
3230
		#$conf["lastResult"]=$delStrBeforeKeyWord;
3230
		#$conf["lastResult"]=$delStrBeforeKeyWord;
3231
		#參考資料:
3231
		#參考資料:
3232
		#無.
3232
		#無.
3233
		#備註:
3233
		#備註:
3234
		#無.
3234
		#無.
3235
		$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3235
		$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3236
		unset($conf["stringProcess::delStrBeforeKeyWord"]);
3236
		unset($conf["stringProcess::delStrBeforeKeyWord"]);
3237
				
3237
 
3238
		#如果執行失敗
3238
		#如果執行失敗
3239
		if($delStrBeforeKeyWord["status"]==="false"){
3239
		if($delStrBeforeKeyWord["status"]==="false"){
3240
			
3240
 
3241
			#設置錯誤識別
3241
			#設置錯誤識別
3242
			$result["status"]="false";
3242
			$result["status"]="false";
3243
			
3243
 
3244
			#設置錯誤訊息
3244
			#設置錯誤訊息
3245
			$result["error"]=$delStrBeforeKeyWord;
3245
			$result["error"]=$delStrBeforeKeyWord;
3246
			
3246
 
3247
			#回傳結果
3247
			#回傳結果
3248
			return $result;
3248
			return $result;
3249
			
3249
 
3250
			}#if end
3250
			}#if end
3251
	
3251
 
3252
		#如果沒有關鍵字
3252
		#如果沒有關鍵字
3253
		if($delStrBeforeKeyWord["founded"]==="false"){
3253
		if($delStrBeforeKeyWord["founded"]==="false"){
3254
			
3254
 
3255
			#設置執行正常
3255
			#設置執行正常
3256
			$result["status"]="true";
3256
			$result["status"]="true";
3257
			
3257
 
3258
			#設置沒有找到關鍵字
3258
			#設置沒有找到關鍵字
3259
			$result["founded"]="false";
3259
			$result["founded"]="false";
3260
			
3260
 
3261
			#初始化儲存原始的字串
3261
			#初始化儲存原始的字串
3262
			$result["oriStr"]=strrev($delStrBeforeKeyWord["oriStr"]);
3262
			$result["oriStr"]=strrev($delStrBeforeKeyWord["oriStr"]);
3263
			
3263
 
3264
			#取得移除後的結果
3264
			#取得移除後的結果
3265
			$result["content"]=strrev($delStrBeforeKeyWord["content"]);
3265
			$result["content"]=strrev($delStrBeforeKeyWord["content"]);
3266
			
3266
 
3267
			#回傳結果
3267
			#回傳結果
3268
			return $result;
3268
			return $result;
3269
			
3269
 
3270
			}#if end
3270
			}#if end
3271
		
3271
 
3272
		#設置執行正常
3272
		#設置執行正常
3273
		$result["status"]="true";
3273
		$result["status"]="true";
3274
		
3274
 
3275
		#設置有找到關鍵字
3275
		#設置有找到關鍵字
3276
		$result["founded"]="true";
3276
		$result["founded"]="true";
3277
		
3277
 
3278
		#初始化儲存原始的字串
3278
		#初始化儲存原始的字串
3279
		$result["oriStr"]=strrev($conf["stringIn"]);
3279
		$result["oriStr"]=strrev($conf["stringIn"]);
3280
		
3280
 
3281
		#取得移除後的結果
3281
		#取得移除後的結果
3282
		$result["content"]=strrev($delStrBeforeKeyWord["content"]);
3282
		$result["content"]=strrev($delStrBeforeKeyWord["content"]);
3283
		
3283
 
3284
		#取得被移除的內容
3284
		#取得被移除的內容
3285
		$result["deleted"]=strrev($delStrBeforeKeyWord["deleted"]);
3285
		$result["deleted"]=strrev($delStrBeforeKeyWord["deleted"]);
3286
		
3286
 
3287
		#回傳結果
3287
		#回傳結果
3288
		return $result;
3288
		return $result;
3289
		
3289
 
3290
		}#function delStrAfterKeyWord end
3290
		}#function delStrAfterKeyWord end
3291
 
3291
 
3292
	/*
3292
	/*
3293
	#函式說明:
3293
	#函式說明:
3294
	#移除多個字串開頭相同的部分
3294
	#移除多個字串開頭相同的部分
Line 3297... Line 3297...
3297
	#$result["error"],錯誤訊息陣列.
3297
	#$result["error"],錯誤訊息陣列.
3298
	#$result["function"],當前執行的函數名稱.
3298
	#$result["function"],當前執行的函數名稱.
3299
	#$result["content"],處理好的的字串內容.
3299
	#$result["content"],處理好的的字串內容.
3300
	#必填參數:
3300
	#必填參數:
3301
	#$conf["strIn"],字串陣列,每個要處理的字串.
3301
	#$conf["strIn"],字串陣列,每個要處理的字串.
3302
	$conf["strIn"]=array();		
3302
	$conf["strIn"]=array();
3303
	#可省略參數:
3303
	#可省略參數:
3304
	#無.
3304
	#無.
3305
	#參考資料:
3305
	#參考資料:
3306
	#無.
3306
	#無.
3307
	#備註:
3307
	#備註:
3308
	#無.
3308
	#無.
3309
	*/
3309
	*/
3310
	public static function delSameHead(&$conf){
3310
	public static function delSameHead(&$conf){
3311
		
3311
 
3312
		#初始化要回傳的內容
3312
		#初始化要回傳的內容
3313
		$result=array();
3313
		$result=array();
3314
 
3314
 
3315
		#取得當前執行的函數名稱
3315
		#取得當前執行的函數名稱
3316
		$result["function"]=__FUNCTION__;
3316
		$result["function"]=__FUNCTION__;
3317
 
3317
 
3318
		#如果 $conf 不為陣列
3318
		#如果 $conf 不為陣列
3319
		if(gettype($conf)!="array"){
3319
		if(gettype($conf)!="array"){
3320
			
3320
 
3321
			#設置執行失敗
3321
			#設置執行失敗
3322
			$result["status"]="false";
3322
			$result["status"]="false";
3323
			
3323
 
3324
			#設置執行錯誤訊息
3324
			#設置執行錯誤訊息
3325
			$result["error"][]="\$conf變數須為陣列形態";
3325
			$result["error"][]="\$conf變數須為陣列形態";
3326
 
3326
 
3327
			#如果傳入的參數為 null
3327
			#如果傳入的參數為 null
3328
			if($conf==null){
3328
			if($conf==null){
3329
				
3329
 
3330
				#設置執行錯誤訊息
3330
				#設置執行錯誤訊息
3331
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3331
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3332
				
3332
 
3333
				}#if end
3333
				}#if end
3334
 
3334
 
3335
			#回傳結果
3335
			#回傳結果
3336
			return $result;
3336
			return $result;
3337
			
3337
 
3338
			}#if end
3338
			}#if end
3339
		
3339
 
3340
		#函式說明:
3340
		#函式說明:
3341
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3341
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3342
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3342
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3343
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3343
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3344
		#$result["function"],當前執行的函式名稱.
3344
		#$result["function"],當前執行的函式名稱.
Line 3364... Line 3364...
3364
		#$conf["canBeEmptyString"]="false";
3364
		#$conf["canBeEmptyString"]="false";
3365
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
3365
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
3366
		#$conf["skipableVariableCanNotBeEmpty"]=array();
3366
		#$conf["skipableVariableCanNotBeEmpty"]=array();
3367
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3367
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3368
		#$conf["skipableVariableName"]=array();
3368
		#$conf["skipableVariableName"]=array();
3369
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3369
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
3370
		#$conf["skipableVariableType"]=array();
3370
		#$conf["skipableVariableType"]=array();
3371
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3371
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3372
		#$conf["skipableVarDefaultValue"]=array("");
3372
		#$conf["skipableVarDefaultValue"]=array("");
3373
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3373
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3374
		#$conf["arrayCountEqualCheck"][]=array();
3374
		#$conf["arrayCountEqualCheck"][]=array();
3375
		#參考資料來源:
3375
		#參考資料來源:
3376
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3376
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3377
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3377
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3378
		unset($conf["variableCheck::checkArguments"]);			
3378
		unset($conf["variableCheck::checkArguments"]);
3379
			
3379
 
3380
		#初始化儲存開頭相同的字串
3380
		#初始化儲存開頭相同的字串
3381
		$sameHeadStr="";	
3381
		$sameHeadStr="";
3382
					
3382
 
3383
		#$conf["strIn"]的第一個元素有幾個字就執行幾次 
3383
		#$conf["strIn"]的第一個元素有幾個字就執行幾次
3384
		for($i=0;$i<strlen($conf["strIn"][0]);$i++){
3384
		for($i=0;$i<strlen($conf["strIn"][0]);$i++){
3385
			
3385
 
3386
			#取得當前可能相同的開頭字串
3386
			#取得當前可能相同的開頭字串
3387
			$keyWordPart=$sameHeadStr.$conf["strIn"][0][$i];
3387
			$keyWordPart=$sameHeadStr.$conf["strIn"][0][$i];
3388
			
3388
 
3389
			#函式說明:
3389
			#函式說明:
3390
			#取得多個符合特定字首與字尾的字串.
3390
			#取得多個符合特定字首與字尾的字串.
3391
			#回傳結果:
3391
			#回傳結果:
3392
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
3392
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
3393
			#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
3393
			#$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
Line 3403... Line 3403...
3403
			#$conf["tailWord"]="";
3403
			#$conf["tailWord"]="";
3404
			#參考資料:
3404
			#參考資料:
3405
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
3405
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
3406
			$checkResult=search::getMeetConditionsStringMulti($conf["search::getMeetConditionsStringMulti"]);
3406
			$checkResult=search::getMeetConditionsStringMulti($conf["search::getMeetConditionsStringMulti"]);
3407
			unset($conf["search::getMeetConditionsStringMulti"]);
3407
			unset($conf["search::getMeetConditionsStringMulti"]);
3408
			
3408
 
3409
			#如果執行失敗
3409
			#如果執行失敗
3410
			if($checkResult["status"]=="false"){
3410
			if($checkResult["status"]=="false"){
3411
				
3411
 
3412
				#設置執行失敗
3412
				#設置執行失敗
3413
				$result["status"]="false";
3413
				$result["status"]="false";
3414
				
3414
 
3415
				#設置執行錯誤訊息
3415
				#設置執行錯誤訊息
3416
				$result["error"]=$checkResult;
3416
				$result["error"]=$checkResult;
3417
 
3417
 
3418
				#回傳結果
3418
				#回傳結果
3419
				return $result;
3419
				return $result;
3420
				
3420
 
3421
				}#if end
3421
				}#if end
3422
			
3422
 
3423
			#如果有找到相同的開頭
3423
			#如果有找到相同的開頭
3424
			if($checkResult["founded"]=="true"){
3424
			if($checkResult["founded"]=="true"){
3425
				
3425
 
3426
				#取得新的開頭相同字串內容
3426
				#取得新的開頭相同字串內容
3427
				$sameHeadStr=$keyWordPart;
3427
				$sameHeadStr=$keyWordPart;
3428
				
3428
 
3429
				}#if end
3429
				}#if end
3430
				
3430
 
3431
			#反之
3431
			#反之
3432
			else{
3432
			else{
3433
				
3433
 
3434
				#跳出迴圈
3434
				#跳出迴圈
3435
				break;
3435
				break;
3436
				
3436
 
3437
				}#else end
3437
				}#else end
3438
			
3438
 
3439
			}#for end
3439
			}#for end
3440
		
3440
 
3441
		#$conf["strIn"]有幾個元素就執行幾次 
3441
		#$conf["strIn"]有幾個元素就執行幾次
3442
		for($i=0;$i<count($conf["strIn"]);$i++){
3442
		for($i=0;$i<count($conf["strIn"]);$i++){
3443
									
3443
 
3444
			#移除 $conf["strIn"]	中每個字串開頭相同的部分
3444
			#移除 $conf["strIn"]	中每個字串開頭相同的部分
3445
			#函式說明:
3445
			#函式說明:
3446
			#將字串特定關鍵字與其前面的內容剔除
3446
			#將字串特定關鍵字與其前面的內容剔除
3447
			#回傳結果:
3447
			#回傳結果:
3448
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3448
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 3453... Line 3453...
3453
			#$result["content"],處理好的的字串內容.
3453
			#$result["content"],處理好的的字串內容.
3454
			#必填參數:
3454
			#必填參數:
3455
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["strIn"][$i];#要處理的字串.
3455
			$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["strIn"][$i];#要處理的字串.
3456
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$sameHeadStr;#特定字串.
3456
			$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$sameHeadStr;#特定字串.
3457
			$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3457
			$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3458
			unset($conf["stringProcess::delStrBeforeKeyWord"]);			
3458
			unset($conf["stringProcess::delStrBeforeKeyWord"]);
3459
				
3459
 
3460
			#如果執行失敗
3460
			#如果執行失敗
3461
			if($delStrBeforeKeyWord["status"]=="false"){
3461
			if($delStrBeforeKeyWord["status"]=="false"){
3462
				
3462
 
3463
				#設置執行失敗
3463
				#設置執行失敗
3464
				$result["status"]="false";
3464
				$result["status"]="false";
3465
				
3465
 
3466
				#設置執行錯誤訊息
3466
				#設置執行錯誤訊息
3467
				$result["error"]=$delStrBeforeKeyWord;
3467
				$result["error"]=$delStrBeforeKeyWord;
3468
 
3468
 
3469
				#回傳結果
3469
				#回傳結果
3470
				return $result;
3470
				return $result;
3471
				
3471
 
3472
				}#if end
3472
				}#if end
3473
			
3473
 
3474
			#取得處理好的字串	
3474
			#取得處理好的字串
3475
			$result["content"][]=$delStrBeforeKeyWord["content"];
3475
			$result["content"][]=$delStrBeforeKeyWord["content"];
3476
			
3476
 
3477
			}#for end
3477
			}#for end
3478
			
3478
 
3479
		#設置執行正常
3479
		#設置執行正常
3480
		$result["status"]="true";
3480
		$result["status"]="true";
3481
		
3481
 
3482
		#回傳結果
3482
		#回傳結果
3483
		return $result;
3483
		return $result;
3484
						
3484
 
3485
		}#function delSameHead end
3485
		}#function delSameHead end
3486
		
3486
 
3487
	/*
3487
	/*
3488
	#函式說明:
3488
	#函式說明:
3489
	#移除字串開頭的特定內容
3489
	#移除字串開頭的特定內容
3490
	#回傳結果:
3490
	#回傳結果:
3491
	#$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
3491
	#$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
Line 3495... Line 3495...
3495
	#$result["argu"],使用的參數.
3495
	#$result["argu"],使用的參數.
3496
	#必填參數:
3496
	#必填參數:
3497
	#$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
3497
	#$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
3498
	$conf["inputStr"]="";
3498
	$conf["inputStr"]="";
3499
	#$conf["keyWord"],字串,要移除的字串開頭關鍵字.
3499
	#$conf["keyWord"],字串,要移除的字串開頭關鍵字.
3500
	$conf["keyWord"]=""; 
3500
	$conf["keyWord"]="";
3501
	#可省略參數:
3501
	#可省略參數:
3502
	#$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
3502
	#$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
3503
	#$conf["recursive"]="false";
3503
	#$conf["recursive"]="false";
3504
	#參考資料:
3504
	#參考資料:
3505
	#無.
3505
	#無.
3506
	#備註:
3506
	#備註:
3507
	#無.
3507
	#無.
3508
	*/
3508
	*/
3509
	public static function delKeyWordsInStrHead(&$conf){
3509
	public static function delKeyWordsInStrHead(&$conf){
3510
		
3510
 
3511
		#初始化要回傳的結果
3511
		#初始化要回傳的結果
3512
		$result=array();
3512
		$result=array();
3513
 
3513
 
3514
		#初始化要回傳的結果
3514
		#初始化要回傳的結果
3515
		$result["content"]="";
3515
		$result["content"]="";
Line 3517... Line 3517...
3517
		#儲存當前執行的函數
3517
		#儲存當前執行的函數
3518
		$result["function"]=__FUNCTION__;
3518
		$result["function"]=__FUNCTION__;
3519
 
3519
 
3520
		#如果 $conf 不為陣列
3520
		#如果 $conf 不為陣列
3521
		if(gettype($conf)!="array"){
3521
		if(gettype($conf)!="array"){
3522
			
3522
 
3523
			#設置執行失敗
3523
			#設置執行失敗
3524
			$result["status"]="false";
3524
			$result["status"]="false";
3525
			
3525
 
3526
			#設置執行錯誤訊息
3526
			#設置執行錯誤訊息
3527
			$result["error"][]="\$conf變數須為陣列形態";
3527
			$result["error"][]="\$conf變數須為陣列形態";
3528
 
3528
 
3529
			#如果傳入的參數為 null
3529
			#如果傳入的參數為 null
3530
			if($conf==null){
3530
			if($conf==null){
3531
				
3531
 
3532
				#設置執行錯誤訊息
3532
				#設置執行錯誤訊息
3533
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3533
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3534
				
3534
 
3535
				}#if end
3535
				}#if end
3536
 
3536
 
3537
			#回傳結果
3537
			#回傳結果
3538
			return $result;
3538
			return $result;
3539
	
3539
 
3540
			}#if end
3540
			}#if end
3541
	
3541
 
3542
		#記錄參數
3542
		#記錄參數
3543
		$result["argu"]=$conf;
3543
		$result["argu"]=$conf;
3544
	
3544
 
3545
		#檢查參數
3545
		#檢查參數
3546
		#函式說明:
3546
		#函式說明:
3547
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3547
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3548
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3548
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3549
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3549
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 3558... Line 3558...
3558
		#必填寫的參數:
3558
		#必填寫的參數:
3559
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3559
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
3560
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3560
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
3561
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3561
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
3562
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputStr","keyWord");
3562
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("inputStr","keyWord");
3563
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); 
3563
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object");
3564
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
3564
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
3565
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3565
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
3566
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3566
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
3567
		#可以省略的參數:
3567
		#可以省略的參數:
3568
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3568
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
3569
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
3569
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
3570
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3570
		#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3571
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive");
3571
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("recursive");
3572
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3572
		#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
3573
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
3573
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
3574
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3574
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3575
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
3575
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false");
3576
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3576
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
3577
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("subject","plainBody","htmlBody","receiverMail","receiverMailDisplay","receiverNameDisplay");
3577
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("subject","plainBody","htmlBody","receiverMail","receiverMailDisplay","receiverNameDisplay");
3578
		#參考資料來源:
3578
		#參考資料來源:
3579
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3579
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3580
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3580
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3581
		unset($conf["variableCheck::checkArguments"]);
3581
		unset($conf["variableCheck::checkArguments"]);
3582
	
3582
 
3583
		#如果檢查失敗
3583
		#如果檢查失敗
3584
		if($checkArguments["status"]=="false"){
3584
		if($checkArguments["status"]=="false"){
3585
			
3585
 
3586
			#設置錯誤識別
3586
			#設置錯誤識別
3587
			$result["status"]="false";
3587
			$result["status"]="false";
3588
			
3588
 
3589
			#設置錯誤訊息
3589
			#設置錯誤訊息
3590
			$result["error"]=$checkArguments;
3590
			$result["error"]=$checkArguments;
3591
			
3591
 
3592
			#回傳結果
3592
			#回傳結果
3593
			return $result;
3593
			return $result;
3594
			
3594
 
3595
			}#if end
3595
			}#if end
3596
	
3596
 
3597
		#如果檢查不通過
3597
		#如果檢查不通過
3598
		if($checkArguments["passed"]=="false"){
3598
		if($checkArguments["passed"]=="false"){
3599
			
3599
 
3600
			#設置錯誤識別
3600
			#設置錯誤識別
3601
			$result["status"]="false";
3601
			$result["status"]="false";
3602
			
3602
 
3603
			#設置錯誤訊息
3603
			#設置錯誤訊息
3604
			$result["error"]=$checkArguments;
3604
			$result["error"]=$checkArguments;
3605
			
3605
 
3606
			#回傳結果
3606
			#回傳結果
3607
			return $result;
3607
			return $result;
3608
			
3608
 
3609
			}#if end
3609
			}#if end
3610
			
3610
 
3611
		#取得關鍵字的位置
3611
		#取得關鍵字的位置
3612
		$found=strpos($conf["inputStr"],$conf["keyWord"]);
3612
		$found=strpos($conf["inputStr"],$conf["keyWord"]);
3613
		
3613
 
3614
		#debug
3614
		#debug
3615
		#var_dump($conf["inputStr"],$conf["keyWord"],$found);
3615
		#var_dump($conf["inputStr"],$conf["keyWord"],$found);
3616
		
3616
 
3617
		#如果沒有找到關鍵字
3617
		#如果沒有找到關鍵字
3618
		if($found===false){
3618
		if($found===false){
3619
			
3619
 
3620
			#設置執行正常
3620
			#設置執行正常
3621
			$result["status"]="true";
3621
			$result["status"]="true";
3622
			
3622
 
3623
			#設置處理好的字串
3623
			#設置處理好的字串
3624
			$result["content"]=$conf["inputStr"];
3624
			$result["content"]=$conf["inputStr"];
3625
			
3625
 
3626
			#回傳結果
3626
			#回傳結果
3627
			return $result;
3627
			return $result;
3628
			
3628
 
3629
			}#if end
3629
			}#if end
3630
			
3630
 
3631
		#如果關鍵字在開頭
3631
		#如果關鍵字在開頭
3632
		else if($found===0){
3632
		else if($found===0){
3633
			
3633
 
3634
			#分割字串
3634
			#分割字串
3635
			$spiledStr=str_split($conf["inputStr"]);
3635
			$spiledStr=str_split($conf["inputStr"]);
3636
			
3636
 
3637
			#執行 count($spiledStr)-2 次迴圈
3637
			#執行 count($spiledStr)-2 次迴圈
3638
			for($i=strlen($conf["keyWord"]);$i<count($spiledStr);$i++){
3638
			for($i=strlen($conf["keyWord"]);$i<count($spiledStr);$i++){
3639
				
3639
 
3640
				#串接字
3640
				#串接字
3641
				$result["content"]=$result["content"].$spiledStr[$i];
3641
				$result["content"]=$result["content"].$spiledStr[$i];
3642
				
3642
 
3643
				}#for end
3643
				}#for end
3644
				
3644
 
3645
			#設置執行正常
3645
			#設置執行正常
3646
			$result["status"]="true";
3646
			$result["status"]="true";
3647
			
3647
 
3648
			#如果有開啟遞迴
3648
			#如果有開啟遞迴
3649
			if($conf["recursive"]==="true"){
3649
			if($conf["recursive"]==="true"){
3650
				
3650
 
3651
				#函式說明:
3651
				#函式說明:
3652
				#移除字串開頭的特定內容
3652
				#移除字串開頭的特定內容
3653
				#回傳結果:
3653
				#回傳結果:
3654
				#$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
3654
				#$result["status"],寄信的情況,若爲"true",則十之八九沒有問題.
3655
				#$result["error"],錯誤訊息陣列.
3655
				#$result["error"],錯誤訊息陣列.
Line 3657... Line 3657...
3657
				#$result["content"],處理好的字串.
3657
				#$result["content"],處理好的字串.
3658
				#必填參數:
3658
				#必填參數:
3659
				#$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
3659
				#$conf["inputStr"],字串,要檢查並移除開頭有 $conf["keyWords"] 的字串.
3660
				$conf["stringProcess::delKeyWordsInStrHead"]["inputStr"]=$result["content"];
3660
				$conf["stringProcess::delKeyWordsInStrHead"]["inputStr"]=$result["content"];
3661
				#$conf["keyWord"],字串,要移除的字串開頭關鍵字.
3661
				#$conf["keyWord"],字串,要移除的字串開頭關鍵字.
3662
				$conf["stringProcess::delKeyWordsInStrHead"]["keyWord"]=$conf["keyWord"]; 
3662
				$conf["stringProcess::delKeyWordsInStrHead"]["keyWord"]=$conf["keyWord"];
3663
				#可省略參數:
3663
				#可省略參數:
3664
				#$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
3664
				#$conf["recursive"],字串,"true"代表要遞迴移除開頭的關鍵字,預設為"false",只移除開頭關鍵字1次.
3665
				$conf["stringProcess::delKeyWordsInStrHead"]["recursive"]="true";
3665
				$conf["stringProcess::delKeyWordsInStrHead"]["recursive"]="true";
3666
				return stringProcess::delKeyWordsInStrHead($conf["stringProcess::delKeyWordsInStrHead"]);	
3666
				return stringProcess::delKeyWordsInStrHead($conf["stringProcess::delKeyWordsInStrHead"]);
3667
				unset($conf["stringProcess::delKeyWordsInStrHead"]);			
3667
				unset($conf["stringProcess::delKeyWordsInStrHead"]);
3668
				
3668
 
3669
				}#if end
3669
				}#if end
3670
			
3670
 
3671
			#回傳結果
3671
			#回傳結果
3672
			return $result;
3672
			return $result;
3673
			
3673
 
3674
			}#if end
3674
			}#if end
3675
		
3675
 
3676
		#反之關鍵字不在開頭	
3676
		#反之關鍵字不在開頭
3677
		else{
3677
		else{
3678
			
3678
 
3679
			#設置執行正常
3679
			#設置執行正常
3680
			$result["status"]="true";
3680
			$result["status"]="true";
3681
			
3681
 
3682
			#設置處理好的字串
3682
			#設置處理好的字串
3683
			$result["content"]=$conf["inputStr"];
3683
			$result["content"]=$conf["inputStr"];
3684
			
3684
 
3685
			#回傳結果
3685
			#回傳結果
3686
			return $result;
3686
			return $result;
3687
			
3687
 
3688
			}#else end
3688
			}#else end
3689
			
3689
 
3690
		#執行到這邊代表不正常
3690
		#執行到這邊代表不正常
3691
		
3691
 
3692
		#設置錯誤識別
3692
		#設置錯誤識別
3693
		$result["status"]="false";
3693
		$result["status"]="false";
3694
		
3694
 
3695
		#設置錯誤訊息
3695
		#設置錯誤訊息
3696
		$result["error"][]="非預期的錯誤";
3696
		$result["error"][]="非預期的錯誤";
3697
		
3697
 
3698
		#回傳結果
3698
		#回傳結果
3699
		return $result;
3699
		return $result;
3700
		
3700
 
3701
		}#function delKeyWordsInStrHead end
3701
		}#function delKeyWordsInStrHead end
3702
 
3702
 
3703
	/*
3703
	/*
3704
	#函式說明:
3704
	#函式說明:
3705
	#將字串進行解析,取得兩個關鍵字中間的內容.
3705
	#將字串進行解析,取得兩個關鍵字中間的內容.
Line 3723... Line 3723...
3723
	#無.
3723
	#無.
3724
	#備註:
3724
	#備註:
3725
	#無.
3725
	#無.
3726
	*/
3726
	*/
3727
	public static function getContentBetweenKeyWord(&$conf){
3727
	public static function getContentBetweenKeyWord(&$conf){
3728
	
3728
 
3729
		#初始化要回傳的結果
3729
		#初始化要回傳的結果
3730
		$result=array();
3730
		$result=array();
3731
 
3731
 
3732
		#取得當前執行的函數名稱
3732
		#取得當前執行的函數名稱
3733
		$result["function"]=__FUNCTION__;
3733
		$result["function"]=__FUNCTION__;
3734
 
3734
 
3735
		#如果沒有參數
3735
		#如果沒有參數
3736
		if(func_num_args()==0){
3736
		if(func_num_args()==0){
3737
			
3737
 
3738
			#設置執行失敗
3738
			#設置執行失敗
3739
			$result["status"]="false";
3739
			$result["status"]="false";
3740
			
3740
 
3741
			#設置執行錯誤訊息
3741
			#設置執行錯誤訊息
3742
			$result["error"]="函數".$result["function"]."需要參數";
3742
			$result["error"]="函數".$result["function"]."需要參數";
3743
			
3743
 
3744
			#回傳結果
3744
			#回傳結果
3745
			return $result;
3745
			return $result;
3746
			
3746
 
3747
			}#if end
3747
			}#if end
3748
 
3748
 
3749
		#取得參數
3749
		#取得參數
3750
		$result["argu"]=$conf;
3750
		$result["argu"]=$conf;
3751
 
3751
 
3752
		#如果 $conf 不為陣列
3752
		#如果 $conf 不為陣列
3753
		if(gettype($conf)!=="array"){
3753
		if(gettype($conf)!=="array"){
3754
			
3754
 
3755
			#設置執行失敗
3755
			#設置執行失敗
3756
			$result["status"]="false";
3756
			$result["status"]="false";
3757
			
3757
 
3758
			#設置執行錯誤訊息
3758
			#設置執行錯誤訊息
3759
			$result["error"][]="\$conf變數須為陣列形態";
3759
			$result["error"][]="\$conf變數須為陣列形態";
3760
			
3760
 
3761
			#如果傳入的參數為 null
3761
			#如果傳入的參數為 null
3762
			if($conf===null){
3762
			if($conf===null){
3763
				
3763
 
3764
				#設置執行錯誤訊息
3764
				#設置執行錯誤訊息
3765
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3765
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
3766
				
3766
 
3767
				}#if end
3767
				}#if end
3768
 
3768
 
3769
			#回傳結果
3769
			#回傳結果
3770
			return $result;
3770
			return $result;
3771
			
3771
 
3772
			}#if end
3772
			}#if end
3773
			
3773
 
3774
		#函式說明:
3774
		#函式說明:
3775
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3775
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
3776
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3776
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3777
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3777
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
3778
		#$result["function"],當前執行的函式名稱.
3778
		#$result["function"],當前執行的函式名稱.
Line 3802... Line 3802...
3802
		#$conf["canBeEmpty"]=array();
3802
		#$conf["canBeEmpty"]=array();
3803
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
3803
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
3804
		#$conf["skipableVariableCanNotBeEmpty"]=array();
3804
		#$conf["skipableVariableCanNotBeEmpty"]=array();
3805
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3805
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
3806
		#$conf["skipableVariableName"]=array();
3806
		#$conf["skipableVariableName"]=array();
3807
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
3807
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
3808
		#$conf["skipableVariableType"]=array();
3808
		#$conf["skipableVariableType"]=array();
3809
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3809
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
3810
		#$conf["skipableVarDefaultValue"]=array("");
3810
		#$conf["skipableVarDefaultValue"]=array("");
3811
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
3811
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
3812
		#$conf["disallowAllSkipableVarIsEmpty"]="";
3812
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 3818... Line 3818...
3818
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3818
		#array_keys=>http://php.net/manual/en/function.array-keys.php
3819
		#建議:
3819
		#建議:
3820
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
3820
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
3821
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3821
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
3822
		unset($conf["variableCheck::checkArguments"]);
3822
		unset($conf["variableCheck::checkArguments"]);
3823
		
3823
 
3824
		#如果檢查參數失敗
3824
		#如果檢查參數失敗
3825
		if($checkArguments["status"]==="false"){
3825
		if($checkArguments["status"]==="false"){
3826
			
3826
 
3827
			#設置執行失敗
3827
			#設置執行失敗
3828
			$result["status"]="false";
3828
			$result["status"]="false";
3829
			
3829
 
3830
			#設置執行錯誤訊息
3830
			#設置執行錯誤訊息
3831
			$result["error"]=$checkArguments;
3831
			$result["error"]=$checkArguments;
3832
			
3832
 
3833
			#回傳結果
3833
			#回傳結果
3834
			return $result;
3834
			return $result;
3835
			
3835
 
3836
			}#if end
3836
			}#if end
3837
			
3837
 
3838
		#如果檢查參數不通過
3838
		#如果檢查參數不通過
3839
		if($checkArguments["passed"]==="false"){
3839
		if($checkArguments["passed"]==="false"){
3840
			
3840
 
3841
			#設置執行失敗
3841
			#設置執行失敗
3842
			$result["status"]="false";
3842
			$result["status"]="false";
3843
			
3843
 
3844
			#設置執行錯誤訊息
3844
			#設置執行錯誤訊息
3845
			$result["error"]=$checkArguments;
3845
			$result["error"]=$checkArguments;
3846
			
3846
 
3847
			#回傳結果
3847
			#回傳結果
3848
			return $result;
3848
			return $result;
3849
			
3849
 
3850
			}#if end
3850
			}#if end
3851
		
3851
 
3852
		#檢查是否有符合的關鍵字存在
3852
		#檢查是否有符合的關鍵字存在
3853
		#函式說明:
3853
		#函式說明:
3854
		#檢查一個字串裡面是否有多個關鍵字
3854
		#檢查一個字串裡面是否有多個關鍵字
3855
		#回傳結果:
3855
		#回傳結果:
3856
		#$result["status"],"true"代表執行成功,"false"代表執行失敗.
3856
		#$result["status"],"true"代表執行成功,"false"代表執行失敗.
Line 3872... Line 3872...
3872
		#無.
3872
		#無.
3873
		#備註:
3873
		#備註:
3874
		#無.
3874
		#無.
3875
		$findManyKeyWords=search::findManyKeyWords($conf["search::findManyKeyWords"]);
3875
		$findManyKeyWords=search::findManyKeyWords($conf["search::findManyKeyWords"]);
3876
		unset($conf["search::findManyKeyWords"]);
3876
		unset($conf["search::findManyKeyWords"]);
3877
		
3877
 
3878
		#如果執行失敗
3878
		#如果執行失敗
3879
		if($findManyKeyWords["status"]==="false"){
3879
		if($findManyKeyWords["status"]==="false"){
3880
			
3880
 
3881
			#設置執行失敗
3881
			#設置執行失敗
3882
			$result["status"]="false";
3882
			$result["status"]="false";
3883
			
3883
 
3884
			#設置執行錯誤訊息
3884
			#設置執行錯誤訊息
3885
			$result["error"]=$findManyKeyWords;
3885
			$result["error"]=$findManyKeyWords;
3886
			
3886
 
3887
			#回傳結果
3887
			#回傳結果
3888
			return $result;
3888
			return $result;
3889
			
3889
 
3890
			}#if end
3890
			}#if end
3891
		
3891
 
3892
		#設置預設有找到關鍵字
3892
		#設置預設有找到關鍵字
3893
		$result["found"]="true";
3893
		$result["found"]="true";
3894
		
3894
 
3895
		#如果沒有找到全部關鍵字
3895
		#如果沒有找到全部關鍵字
3896
		if($findManyKeyWords["foundedAll"]==="false"){
3896
		if($findManyKeyWords["foundedAll"]==="false"){
3897
			
3897
 
3898
			#設置沒有找到關鍵字
3898
			#設置沒有找到關鍵字
3899
			$result["found"]="false";
3899
			$result["found"]="false";
3900
			
3900
 
3901
			}#if end
3901
			}#if end
3902
		
3902
 
3903
		#函式說明:
3903
		#函式說明:
3904
		#將字串特定關鍵字與其前面的內容剔除
3904
		#將字串特定關鍵字與其前面的內容剔除
3905
		#回傳結果:
3905
		#回傳結果:
3906
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3906
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3907
		#$result["error"],錯誤訊息陣列.
3907
		#$result["error"],錯誤訊息陣列.
3908
		#$result["warning"],警告訊息鎮列.
3908
		#$result["warning"],警告訊息鎮列.
3909
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3909
		#$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
3910
		#$result["function"],當前執行的函數名稱.
3910
		#$result["function"],當前執行的函數名稱.
3911
		#$result["oriStr"],要處理的原始字串內容.
3911
		#$result["oriStr"],要處理的原始字串內容.
3912
		#$result["content"],處理好的的字串內容.	
3912
		#$result["content"],處理好的的字串內容.
3913
		#必填參數:
3913
		#必填參數:
3914
		#$conf["stringIn"],字串,要處理的字串.
3914
		#$conf["stringIn"],字串,要處理的字串.
3915
		$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];
3915
		$conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["input"];
3916
		#$conf["keyWord"],字串,特定字串.
3916
		#$conf["keyWord"],字串,特定字串.
3917
		$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["startKeyWord"];
3917
		$conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]=$conf["startKeyWord"];
Line 3922... Line 3922...
3922
		#無.
3922
		#無.
3923
		#備註:
3923
		#備註:
3924
		#無.
3924
		#無.
3925
		$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3925
		$delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
3926
		unset($conf["stringProcess::delStrBeforeKeyWord"]);
3926
		unset($conf["stringProcess::delStrBeforeKeyWord"]);
3927
	
3927
 
3928
		#如果執行失敗
3928
		#如果執行失敗
3929
		if($delStrBeforeKeyWord["status"]==="false"){
3929
		if($delStrBeforeKeyWord["status"]==="false"){
3930
			
3930
 
3931
			#設置執行失敗
3931
			#設置執行失敗
3932
			$result["status"]="false";
3932
			$result["status"]="false";
3933
			
3933
 
3934
			#設置執行錯誤訊息
3934
			#設置執行錯誤訊息
3935
			$result["error"]=$delStrBeforeKeyWord;
3935
			$result["error"]=$delStrBeforeKeyWord;
3936
			
3936
 
3937
			#回傳結果
3937
			#回傳結果
3938
			return $result;
3938
			return $result;
3939
			
3939
 
3940
			}#if end
3940
			}#if end
3941
		
3941
 
3942
		#函式說明:
3942
		#函式說明:
3943
		#將字串特定關鍵字與其後面的內容剔除
3943
		#將字串特定關鍵字與其後面的內容剔除
3944
		#回傳結果:
3944
		#回傳結果:
3945
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3945
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
3946
		#$result["error"],錯誤訊息陣列.
3946
		#$result["error"],錯誤訊息陣列.
Line 3961... Line 3961...
3961
		#無.
3961
		#無.
3962
		#備註:
3962
		#備註:
3963
		#無.
3963
		#無.
3964
		$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
3964
		$delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
3965
		unset($conf["stringProcess::delStrAfterKeyWord"]);
3965
		unset($conf["stringProcess::delStrAfterKeyWord"]);
3966
	
3966
 
3967
		#如果執行失敗
3967
		#如果執行失敗
3968
		if($delStrAfterKeyWord["status"]==="false"){
3968
		if($delStrAfterKeyWord["status"]==="false"){
3969
			
3969
 
3970
			#設置執行失敗
3970
			#設置執行失敗
3971
			$result["status"]="false";
3971
			$result["status"]="false";
3972
			
3972
 
3973
			#設置執行錯誤訊息
3973
			#設置執行錯誤訊息
3974
			$result["error"]=$delStrAfterKeyWord;
3974
			$result["error"]=$delStrAfterKeyWord;
3975
			
3975
 
3976
			#回傳結果
3976
			#回傳結果
3977
			return $result;
3977
			return $result;
3978
			
3978
 
3979
			}#if end
3979
			}#if end
3980
			
3980
 
3981
		#設置原始內容
3981
		#設置原始內容
3982
		$result["oriStr"]=$conf["input"];
3982
		$result["oriStr"]=$conf["input"];
3983
		
3983
 
3984
		#設置處理後的內容
3984
		#設置處理後的內容
3985
		$result["content"]=$delStrAfterKeyWord["content"];
3985
		$result["content"]=$delStrAfterKeyWord["content"];
3986
	
3986
 
3987
		#設置執行正常
3987
		#設置執行正常
3988
		$result["status"]="true";
3988
		$result["status"]="true";
3989
	
3989
 
3990
		#回傳結果
3990
		#回傳結果
3991
		return $result;
3991
		return $result;
3992
	
3992
 
3993
		}#function getContentBetweenKeyWord end
3993
		}#function getContentBetweenKeyWord end
3994
 
3994
 
3995
	/*
3995
	/*
3996
	#函式說明:
3996
	#函式說明:
3997
	#將字串進行解析,變成多個參數.
3997
	#將字串進行解析,變成多個參數.
Line 4010... Line 4010...
4010
	#無.
4010
	#無.
4011
	#備註:
4011
	#備註:
4012
	#無.
4012
	#無.
4013
	*/
4013
	*/
4014
	public static function parse(&$conf){
4014
	public static function parse(&$conf){
4015
		
4015
 
4016
		#初始化要回傳的結果
4016
		#初始化要回傳的結果
4017
		$result=array();
4017
		$result=array();
4018
 
4018
 
4019
		#取得當前執行的函數名稱
4019
		#取得當前執行的函數名稱
4020
		$result["function"]=__FUNCTION__;
4020
		$result["function"]=__FUNCTION__;
4021
 
4021
 
4022
		#如果沒有參數
4022
		#如果沒有參數
4023
		if(func_num_args()==0){
4023
		if(func_num_args()==0){
4024
			
4024
 
4025
			#設置執行失敗
4025
			#設置執行失敗
4026
			$result["status"]="false";
4026
			$result["status"]="false";
4027
			
4027
 
4028
			#設置執行錯誤訊息
4028
			#設置執行錯誤訊息
4029
			$result["error"]="函數".$result["function"]."需要參數";
4029
			$result["error"]="函數".$result["function"]."需要參數";
4030
			
4030
 
4031
			#回傳結果
4031
			#回傳結果
4032
			return $result;
4032
			return $result;
4033
			
4033
 
4034
			}#if end
4034
			}#if end
4035
 
4035
 
4036
		#取得參數
4036
		#取得參數
4037
		$result["argu"]=$conf;
4037
		$result["argu"]=$conf;
4038
 
4038
 
4039
		#如果 $conf 不為陣列
4039
		#如果 $conf 不為陣列
4040
		if(gettype($conf)!=="array"){
4040
		if(gettype($conf)!=="array"){
4041
			
4041
 
4042
			#設置執行失敗
4042
			#設置執行失敗
4043
			$result["status"]="false";
4043
			$result["status"]="false";
4044
			
4044
 
4045
			#設置執行錯誤訊息
4045
			#設置執行錯誤訊息
4046
			$result["error"][]="\$conf變數須為陣列形態";
4046
			$result["error"][]="\$conf變數須為陣列形態";
4047
			
4047
 
4048
			#如果傳入的參數為 null
4048
			#如果傳入的參數為 null
4049
			if($conf===null){
4049
			if($conf===null){
4050
				
4050
 
4051
				#設置執行錯誤訊息
4051
				#設置執行錯誤訊息
4052
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4052
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4053
				
4053
 
4054
				}#if end
4054
				}#if end
4055
 
4055
 
4056
			#回傳結果
4056
			#回傳結果
4057
			return $result;
4057
			return $result;
4058
			
4058
 
4059
			}#if end
4059
			}#if end
4060
			
4060
 
4061
		#函式說明:
4061
		#函式說明:
4062
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4062
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4063
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4063
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4064
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4064
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4065
		#$result["function"],當前執行的函式名稱.
4065
		#$result["function"],當前執行的函式名稱.
Line 4089... Line 4089...
4089
		#$conf["canBeEmpty"]=array();
4089
		#$conf["canBeEmpty"]=array();
4090
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4090
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4091
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4091
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4092
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4092
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4093
		#$conf["skipableVariableName"]=array();
4093
		#$conf["skipableVariableName"]=array();
4094
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
4094
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
4095
		#$conf["skipableVariableType"]=array();
4095
		#$conf["skipableVariableType"]=array();
4096
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4096
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4097
		#$conf["skipableVarDefaultValue"]=array("");
4097
		#$conf["skipableVarDefaultValue"]=array("");
4098
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4098
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4099
		#$conf["disallowAllSkipableVarIsEmpty"]="";
4099
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 4105... Line 4105...
4105
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4105
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4106
		#建議:
4106
		#建議:
4107
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4107
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4108
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4108
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4109
		unset($conf["variableCheck::checkArguments"]);
4109
		unset($conf["variableCheck::checkArguments"]);
4110
		
4110
 
4111
		#如果檢查參數失敗
4111
		#如果檢查參數失敗
4112
		if($checkArguments["status"]==="false"){
4112
		if($checkArguments["status"]==="false"){
4113
			
4113
 
4114
			#設置執行失敗
4114
			#設置執行失敗
4115
			$result["status"]="false";
4115
			$result["status"]="false";
4116
			
4116
 
4117
			#設置執行錯誤訊息
4117
			#設置執行錯誤訊息
4118
			$result["error"]=$checkArguments;
4118
			$result["error"]=$checkArguments;
4119
			
4119
 
4120
			#回傳結果
4120
			#回傳結果
4121
			return $result;
4121
			return $result;
4122
			
4122
 
4123
			}#if end
4123
			}#if end
4124
			
4124
 
4125
		#如果檢查參數不通過
4125
		#如果檢查參數不通過
4126
		if($checkArguments["passed"]==="false"){
4126
		if($checkArguments["passed"]==="false"){
4127
			
4127
 
4128
			#設置執行失敗
4128
			#設置執行失敗
4129
			$result["status"]="false";
4129
			$result["status"]="false";
4130
			
4130
 
4131
			#設置執行錯誤訊息
4131
			#設置執行錯誤訊息
4132
			$result["error"]=$checkArguments;
4132
			$result["error"]=$checkArguments;
4133
			
4133
 
4134
			#回傳結果
4134
			#回傳結果
4135
			return $result;
4135
			return $result;
4136
			
4136
 
4137
			}#if end
4137
			}#if end
4138
		
4138
 
4139
		#預設存放 qbpwcf 可執行程式 parse 的位置
4139
		#預設存放 qbpwcf 可執行程式 parse 的位置
4140
		$defaultQbpwcfUsrBinParse="/usr/bin/parse";
4140
		$defaultQbpwcfUsrBinParse="/usr/bin/parse";
4141
 
4141
 
4142
		#預設存放 qbpwcf local 可執行程式 parse 的位置
4142
		#預設存放 qbpwcf local 可執行程式 parse 的位置
4143
		$defaultLocalQbpwcfUsrBinParse=pathinfo(__FILE__)["dirname"]."/../../bin/parse";
4143
		$defaultLocalQbpwcfUsrBinParse=pathinfo(__FILE__)["dirname"]."/../../bin/parse";
Line 4145... Line 4145...
4145
		#預設存放 qbpwcf 可執行程式 parse 的位置
4145
		#預設存放 qbpwcf 可執行程式 parse 的位置
4146
		$qbpwcfUsrBinParseArray=array($defaultLocalQbpwcfUsrBinParse,$defaultQbpwcfUsrBinParse);
4146
		$qbpwcfUsrBinParseArray=array($defaultLocalQbpwcfUsrBinParse,$defaultQbpwcfUsrBinParse);
4147
 
4147
 
4148
		#如果存在 include path
4148
		#如果存在 include path
4149
		if(get_include_path()!==false){
4149
		if(get_include_path()!==false){
4150
		
4150
 
4151
			#函式說明:
4151
			#函式說明:
4152
			#將固定格式的字串分開,並回傳分開的結果.
4152
			#將固定格式的字串分開,並回傳分開的結果.
4153
			#回傳結果:
4153
			#回傳結果:
4154
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4154
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4155
			#$result["error"],錯誤訊息陣列
4155
			#$result["error"],錯誤訊息陣列
Line 4174... Line 4174...
4174
			$spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
4174
			$spiltString=stringProcess::spiltString($conf["stringProcess::spiltString"]);
4175
			unset($conf["stringProcess::spiltString"]);
4175
			unset($conf["stringProcess::spiltString"]);
4176
 
4176
 
4177
			#如果執行失敗
4177
			#如果執行失敗
4178
			if($spiltString["status"]==="false"){
4178
			if($spiltString["status"]==="false"){
4179
			
4179
 
4180
				#設置執行失敗
4180
				#設置執行失敗
4181
				$result["status"]="false";
4181
				$result["status"]="false";
4182
 
4182
 
4183
				#設置執行錯誤
4183
				#設置執行錯誤
4184
				$result["error"]=$spiltString;
4184
				$result["error"]=$spiltString;
4185
 
4185
 
4186
				#回傳結果
4186
				#回傳結果
4187
				return $result;
4187
				return $result;
4188
			
4188
 
4189
				}#if end
4189
				}#if end
4190
				
4190
 
4191
			#如果沒有符合的分割符號
4191
			#如果沒有符合的分割符號
4192
			if($spiltString["found"]==="false"){
4192
			if($spiltString["found"]==="false"){
4193
			
4193
 
4194
				#設置執行失敗
4194
				#設置執行失敗
4195
				$result["status"]="false";
4195
				$result["status"]="false";
4196
 
4196
 
4197
				#設置執行錯誤
4197
				#設置執行錯誤
4198
				$result["error"]=$spiltString;
4198
				$result["error"]=$spiltString;
4199
 
4199
 
4200
				#回傳結果
4200
				#回傳結果
4201
				return $result;
4201
				return $result;
4202
			
4202
 
4203
				}#if end
4203
				}#if end
4204
				
4204
 
4205
			#如果沒有切割出東西
4205
			#如果沒有切割出東西
4206
			if($spiltString["dataCounts"]<1){
4206
			if($spiltString["dataCounts"]<1){
4207
			
4207
 
4208
				#設置執行失敗
4208
				#設置執行失敗
4209
				$result["status"]="false";
4209
				$result["status"]="false";
4210
 
4210
 
4211
				#設置執行錯誤
4211
				#設置執行錯誤
4212
				$result["error"]=$spiltString;
4212
				$result["error"]=$spiltString;
4213
 
4213
 
4214
				#回傳結果
4214
				#回傳結果
4215
				return $result;
4215
				return $result;
4216
			
4216
 
4217
				}#if end
4217
				}#if end
4218
			
4218
 
4219
			#增加存放 qbpwcf 可執行程式 parse 的位置
4219
			#增加存放 qbpwcf 可執行程式 parse 的位置
4220
			$qbpwcfUsrBinParseArray[]=$spiltString["dataArray"][0].$defaultQbpwcfUsrBinParse;
4220
			$qbpwcfUsrBinParseArray[]=$spiltString["dataArray"][0].$defaultQbpwcfUsrBinParse;
4221
 
4221
 
4222
			}#if end
4222
			}#if end
4223
	
4223
 
4224
		#針對每個可能的 存放 qbpwcf 可執行程式的位置
4224
		#針對每個可能的 存放 qbpwcf 可執行程式的位置
4225
		foreach($qbpwcfUsrBinParseArray as $index=>$qbpwcfUsrBinParse){
4225
		foreach($qbpwcfUsrBinParseArray as $index=>$qbpwcfUsrBinParse){
4226
		
4226
 
4227
			#如果檔案不存在
4227
			#如果檔案不存在
4228
			if(!file_exists($qbpwcfUsrBinParse)){
4228
			if(!file_exists($qbpwcfUsrBinParse)){
4229
 
4229
 
4230
				#如果是最後一個檔案了
4230
				#如果是最後一個檔案了
4231
				if($index===count($qbpwcfUsrBinParseArray)-1){
4231
				if($index===count($qbpwcfUsrBinParseArray)-1){
4232
				
4232
 
4233
					#設置執行失敗
4233
					#設置執行失敗
4234
					$result["status"]="false";
4234
					$result["status"]="false";
4235
 
4235
 
4236
					#設置執行錯誤
4236
					#設置執行錯誤
4237
					$result["error"]="檔案(".$qbpwcfUsrBinParse.")不存在";
4237
					$result["error"]="檔案(".$qbpwcfUsrBinParse.")不存在";
4238
 
4238
 
4239
					#回傳結果
4239
					#回傳結果
4240
					return $result;
4240
					return $result;
4241
				
4241
 
4242
					}#if end
4242
					}#if end
4243
				
4243
 
4244
				}#if end
4244
				}#if end
4245
				
4245
 
4246
			#反之檔案存在
4246
			#反之檔案存在
4247
			else{
4247
			else{
4248
			
4248
 
4249
				#更新預設的 usr/bin/parse 位置
4249
				#更新預設的 usr/bin/parse 位置
4250
				$defaultQbpwcfUsrBinParse=$qbpwcfUsrBinParse;
4250
				$defaultQbpwcfUsrBinParse=$qbpwcfUsrBinParse;
4251
			
4251
 
4252
				#跳出 foreach
4252
				#跳出 foreach
4253
				break;
4253
				break;
4254
			
4254
 
4255
				}#else end
4255
				}#else end
4256
		
4256
 
4257
			}#foreach end
4257
			}#foreach end
4258
		
4258
 
4259
		#建立暫存script檔案
4259
		#建立暫存script檔案
4260
		#函式說明:
4260
		#函式說明:
4261
		#於本套件位置底下的tmp資料夾下建立與回傳暫存檔案名稱路徑 
4261
		#於本套件位置底下的tmp資料夾下建立與回傳暫存檔案名稱路徑
4262
		#回傳結果:
4262
		#回傳結果:
4263
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4263
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4264
		#$result["error"],錯誤訊息.
4264
		#$result["error"],錯誤訊息.
4265
		#$result["function"],當前執行的函數名稱.
4265
		#$result["function"],當前執行的函數名稱.
4266
		#$result["content"],暫存檔案的路徑與名稱.
4266
		#$result["content"],暫存檔案的路徑與名稱.
Line 4275... Line 4275...
4275
		#備註:
4275
		#備註:
4276
		#無.
4276
		#無.
4277
		$conf["fileAccess::createTempFile"]=array();
4277
		$conf["fileAccess::createTempFile"]=array();
4278
		$createTempFile=fileAccess::createTempFile($conf["fileAccess::createTempFile"]);
4278
		$createTempFile=fileAccess::createTempFile($conf["fileAccess::createTempFile"]);
4279
		unset($conf["fileAccess::createTempFile"]);
4279
		unset($conf["fileAccess::createTempFile"]);
4280
		
4280
 
4281
		#如果沒有符合的分割符號
4281
		#如果沒有符合的分割符號
4282
		if($createTempFile["status"]==="false"){
4282
		if($createTempFile["status"]==="false"){
4283
		
4283
 
4284
			#設置執行失敗
4284
			#設置執行失敗
4285
			$result["status"]="false";
4285
			$result["status"]="false";
4286
 
4286
 
4287
			#設置執行錯誤
4287
			#設置執行錯誤
4288
			$result["error"]=$createTempFile;
4288
			$result["error"]=$createTempFile;
4289
 
4289
 
4290
			#回傳結果
4290
			#回傳結果
4291
			return $result;
4291
			return $result;
4292
		
4292
 
4293
			}#if end
4293
			}#if end
4294
		
4294
 
4295
		#取得暫存檔案的路徑與名稱
4295
		#取得暫存檔案的路徑與名稱
4296
		$scriptFile2test=$createTempFile["content"];
4296
		$scriptFile2test=$createTempFile["content"];
4297
		
4297
 
4298
		#將要檢查的shell script寫入
4298
		#將要檢查的shell script寫入
4299
		#函式說明:
4299
		#函式說明:
4300
		#將字串寫入到檔案
4300
		#將字串寫入到檔案
4301
		#回傳結果:
4301
		#回傳結果:
4302
		#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
4302
		#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
Line 4329... Line 4329...
4329
		#無.
4329
		#無.
4330
		#備註:
4330
		#備註:
4331
		#無.
4331
		#無.
4332
		$writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
4332
		$writeTextIntoFile=fileAccess::writeTextIntoFile($conf["fileAccess::writeTextIntoFile"]);
4333
		unset($conf["fileAccess::writeTextIntoFile"]);
4333
		unset($conf["fileAccess::writeTextIntoFile"]);
4334
		
4334
 
4335
		#如果執行失敗
4335
		#如果執行失敗
4336
		if($writeTextIntoFile["status"]==="false"){
4336
		if($writeTextIntoFile["status"]==="false"){
4337
		
4337
 
4338
			#設置執行失敗
4338
			#設置執行失敗
4339
			$result["status"]="false";
4339
			$result["status"]="false";
4340
 
4340
 
4341
			#設置執行錯誤
4341
			#設置執行錯誤
4342
			$result["error"]=$writeTextIntoFile;
4342
			$result["error"]=$writeTextIntoFile;
4343
 
4343
 
4344
			#回傳結果
4344
			#回傳結果
4345
			return $result;
4345
			return $result;
4346
		
4346
 
4347
			}#if end
4347
			}#if end
4348
		
4348
 
4349
		#檢查有無語法錯誤
4349
		#檢查有無語法錯誤
4350
		$cmd="bash -n ".$scriptFile2test;
4350
		$cmd="bash -n ".$scriptFile2test;
4351
		
4351
 
4352
		#函式說明:
4352
		#函式說明:
4353
		#透過proc來多執行序運作.
4353
		#透過proc來多執行序運作.
4354
		#回傳結果:
4354
		#回傳結果:
4355
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4355
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4356
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4356
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 4374... Line 4374...
4374
		#https://www.php.net/manual/en/function.proc-get-status.php
4374
		#https://www.php.net/manual/en/function.proc-get-status.php
4375
		#備註:
4375
		#備註:
4376
		#若需要取得當下的執行狀況,請使用 self::proc_update 來更新.
4376
		#若需要取得當下的執行狀況,請使用 self::proc_update 來更新.
4377
		$proc=threads::proc($conf["threads::proc"]);
4377
		$proc=threads::proc($conf["threads::proc"]);
4378
		unset($conf["threads::proc"]);
4378
		unset($conf["threads::proc"]);
4379
		
4379
 
4380
		#如果執行失敗
4380
		#如果執行失敗
4381
		if($proc["status"]==="false"){
4381
		if($proc["status"]==="false"){
4382
			
4382
 
4383
			#設置執行失敗
4383
			#設置執行失敗
4384
			$result["status"]="false";
4384
			$result["status"]="false";
4385
 
4385
 
4386
			#設置錯誤訊息
4386
			#設置錯誤訊息
4387
			$result["error"][]="檢查bash語法出錯";
4387
			$result["error"][]="檢查bash語法出錯";
Line 4389... Line 4389...
4389
			#設置執行錯誤
4389
			#設置執行錯誤
4390
			$result["error"][]=$proc;
4390
			$result["error"][]=$proc;
4391
 
4391
 
4392
			#回傳結果
4392
			#回傳結果
4393
			return $result;
4393
			return $result;
4394
			
4394
 
4395
			}#if end
4395
			}#if end
4396
			
4396
 
4397
		#如果執行失敗
4397
		#如果執行失敗
4398
		if($proc["content"][0]["statusCode"]!==0){
4398
		if($proc["content"][0]["statusCode"]!==0){
4399
		
4399
 
4400
			#如果錯誤訊息為語法錯誤
4400
			#如果錯誤訊息為語法錯誤
4401
			if(strpos($proc["content"][0]["error"],"syntax error")!==false){
4401
			if(strpos($proc["content"][0]["error"],"syntax error")!==false){
4402
			
4402
 
4403
				#遞迴呼叫
4403
				#遞迴呼叫
4404
				#函式說明:
4404
				#函式說明:
4405
				#將字串進行解析,變成多個參數.
4405
				#將字串進行解析,變成多個參數.
4406
				#回傳結果:
4406
				#回傳結果:
4407
				#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
4407
				#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 4418... Line 4418...
4418
				#無.
4418
				#無.
4419
				#備註:
4419
				#備註:
4420
				#無.
4420
				#無.
4421
				$parse=self::parse($conf["self::parse"]);
4421
				$parse=self::parse($conf["self::parse"]);
4422
				unset($conf["self::parse"]);
4422
				unset($conf["self::parse"]);
4423
				
4423
 
4424
				#回傳結果
4424
				#回傳結果
4425
				return $parse;
4425
				return $parse;
4426
			
4426
 
4427
				}#if end
4427
				}#if end
4428
		
4428
 
4429
			#取得錯誤訊息
4429
			#取得錯誤訊息
4430
			
4430
 
4431
			#設置執行失敗
4431
			#設置執行失敗
4432
			$result["status"]="false";
4432
			$result["status"]="false";
4433
 
4433
 
4434
			#設置錯誤訊息
4434
			#設置錯誤訊息
4435
			$result["error"][]="Bash syntax error or Permission denied";
4435
			$result["error"][]="Bash syntax error or Permission denied";
Line 4437... Line 4437...
4437
			#設置執行錯誤
4437
			#設置執行錯誤
4438
			$result["error"][]=$proc;
4438
			$result["error"][]=$proc;
4439
 
4439
 
4440
			#回傳結果
4440
			#回傳結果
4441
			return $result;
4441
			return $result;
4442
		
4442
 
4443
			}#if end
4443
			}#if end
4444
		
4444
 
4445
		#移除暫存檔案
4445
		#移除暫存檔案
4446
		unlink($scriptFile2test);
4446
		unlink($scriptFile2test);
4447
		
4447
 
4448
		#預設要運行的指令
4448
		#預設要運行的指令
4449
		$cmd=$defaultQbpwcfUsrBinParse.' '.$conf["input"];
4449
		$cmd=$defaultQbpwcfUsrBinParse.' '.$conf["input"];
4450
		
4450
 
4451
		#執行印出參數的php程式
4451
		#執行印出參數的php程式
4452
		exec($cmd,$output,$status);
4452
		exec($cmd,$output,$status);
4453
		
4453
 
4454
		#如果運行正常
4454
		#如果運行正常
4455
		if($status===0){
4455
		if($status===0){
4456
			
4456
 
4457
			#設置執行正常
4457
			#設置執行正常
4458
			$result["status"]="true";
4458
			$result["status"]="true";
4459
			
4459
 
4460
			#如果輸出不是 json
4460
			#如果輸出不是 json
4461
			if(json_validate($output[0])===false){
4461
			if(json_validate($output[0])===false){
4462
			
4462
 
4463
				#設置執行失敗
4463
				#設置執行失敗
4464
				$result["status"]="false";
4464
				$result["status"]="false";
4465
				
4465
 
4466
				#設置執行錯誤訊息
4466
				#設置執行錯誤訊息
4467
				$result["error"][]="not json output";
4467
				$result["error"][]="not json output";
4468
				
4468
 
4469
				#設置執行錯誤訊息
4469
				#設置執行錯誤訊息
4470
				$result["error"][]=$output;
4470
				$result["error"][]=$output;
4471
				
4471
 
4472
				#回傳結果
4472
				#回傳結果
4473
				return $result;
4473
				return $result;
4474
			
4474
 
4475
				}#if end
4475
				}#if end
4476
			
4476
 
4477
			#解析json,並轉成array
4477
			#解析json,並轉成array
4478
			$output=(array)json_decode($output[0]);
4478
			$output=(array)json_decode($output[0]);
4479
			
4479
 
4480
			#移除被執行的php檔案名稱
4480
			#移除被執行的php檔案名稱
4481
			unset($output[0]);
4481
			unset($output[0]);
4482
			
4482
 
4483
			#初始化參數陣列
4483
			#初始化參數陣列
4484
			$params=array();
4484
			$params=array();
4485
			
4485
 
4486
			#針對每個參數
4486
			#針對每個參數
4487
			foreach($output as $param){
4487
			foreach($output as $param){
4488
				
4488
 
4489
				#取得參數
4489
				#取得參數
4490
				$params[]=$param;
4490
				$params[]=$param;
4491
				
4491
 
4492
				}#foreach end
4492
				}#foreach end
4493
			
4493
 
4494
			#取得參數陣列
4494
			#取得參數陣列
4495
			$result["content"]=$params;
4495
			$result["content"]=$params;
4496
			
4496
 
4497
			#取得參數數目
4497
			#取得參數數目
4498
			$result["count"]=count($params);
4498
			$result["count"]=count($params);
4499
			
4499
 
4500
			#回傳結果
4500
			#回傳結果
4501
			return $result;
4501
			return $result;
4502
			
4502
 
4503
			}#if end
4503
			}#if end
4504
			
4504
 
4505
		#反之運行不正常
4505
		#反之運行不正常
4506
		else{
4506
		else{
4507
			#設置執行正常
4507
			#設置執行正常
4508
			$result["status"]="false";
4508
			$result["status"]="false";
4509
			
4509
 
4510
			#設置錯誤訊息
4510
			#設置錯誤訊息
4511
			$result["error"][]="解析字串出錯";
4511
			$result["error"][]="解析字串出錯";
4512
		
4512
 
4513
			#設置 escaped 過後的 input 資訊到錯誤訊息陣列裡面
4513
			#設置 escaped 過後的 input 資訊到錯誤訊息陣列裡面
4514
			$result["error"][]="escaped input:".escapeshellarg($conf["input"]);
4514
			$result["error"][]="escaped input:".escapeshellarg($conf["input"]);
4515
			
4515
 
4516
			#回傳結果
4516
			#回傳結果
4517
			return $result;
4517
			return $result;
4518
			
4518
 
4519
			}#else end
4519
			}#else end
4520
		
4520
 
4521
		}#function parse end
4521
		}#function parse end
4522
		
4522
 
4523
	/*
4523
	/*
4524
	#函式說明:
4524
	#函式說明:
4525
	#清除字串的「"」或「'」符號.
4525
	#清除字串的「"」或「'」符號.
4526
	#回傳結果:
4526
	#回傳結果:
4527
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
4527
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 4537... Line 4537...
4537
	#無.
4537
	#無.
4538
	#備註:
4538
	#備註:
4539
	#無.
4539
	#無.
4540
	*/
4540
	*/
4541
	public static function clearStrSymbol(&$conf){
4541
	public static function clearStrSymbol(&$conf){
4542
		
4542
 
4543
		#初始化要回傳的結果
4543
		#初始化要回傳的結果
4544
		$result=array();
4544
		$result=array();
4545
 
4545
 
4546
		#取得當前執行的函數名稱
4546
		#取得當前執行的函數名稱
4547
		$result["function"]=__FUNCTION__;
4547
		$result["function"]=__FUNCTION__;
4548
 
4548
 
4549
		#如果沒有參數
4549
		#如果沒有參數
4550
		if(func_num_args()==0){
4550
		if(func_num_args()==0){
4551
			
4551
 
4552
			#設置執行失敗
4552
			#設置執行失敗
4553
			$result["status"]="false";
4553
			$result["status"]="false";
4554
			
4554
 
4555
			#設置執行錯誤訊息
4555
			#設置執行錯誤訊息
4556
			$result["error"]="函數".$result["function"]."需要參數";
4556
			$result["error"]="函數".$result["function"]."需要參數";
4557
			
4557
 
4558
			#回傳結果
4558
			#回傳結果
4559
			return $result;
4559
			return $result;
4560
			
4560
 
4561
			}#if end
4561
			}#if end
4562
 
4562
 
4563
		#取得參數
4563
		#取得參數
4564
		$result["argu"]=$conf;
4564
		$result["argu"]=$conf;
4565
 
4565
 
4566
		#如果 $conf 不為陣列
4566
		#如果 $conf 不為陣列
4567
		if(gettype($conf)!=="array"){
4567
		if(gettype($conf)!=="array"){
4568
			
4568
 
4569
			#設置執行失敗
4569
			#設置執行失敗
4570
			$result["status"]="false";
4570
			$result["status"]="false";
4571
			
4571
 
4572
			#設置執行錯誤訊息
4572
			#設置執行錯誤訊息
4573
			$result["error"][]="\$conf變數須為陣列形態";
4573
			$result["error"][]="\$conf變數須為陣列形態";
4574
			
4574
 
4575
			#如果傳入的參數為 null
4575
			#如果傳入的參數為 null
4576
			if($conf===null){
4576
			if($conf===null){
4577
				
4577
 
4578
				#設置執行錯誤訊息
4578
				#設置執行錯誤訊息
4579
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4579
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4580
				
4580
 
4581
				}#if end
4581
				}#if end
4582
 
4582
 
4583
			#回傳結果
4583
			#回傳結果
4584
			return $result;
4584
			return $result;
4585
			
4585
 
4586
			}#if end
4586
			}#if end
4587
			
4587
 
4588
		#函式說明:
4588
		#函式說明:
4589
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4589
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4590
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4590
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4591
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4591
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4592
		#$result["function"],當前執行的函式名稱.
4592
		#$result["function"],當前執行的函式名稱.
Line 4616... Line 4616...
4616
		#$conf["canBeEmpty"]=array();
4616
		#$conf["canBeEmpty"]=array();
4617
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4617
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4618
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4618
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4619
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4619
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4620
		#$conf["skipableVariableName"]=array();
4620
		#$conf["skipableVariableName"]=array();
4621
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
4621
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
4622
		#$conf["skipableVariableType"]=array();
4622
		#$conf["skipableVariableType"]=array();
4623
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4623
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4624
		#$conf["skipableVarDefaultValue"]=array("");
4624
		#$conf["skipableVarDefaultValue"]=array("");
4625
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4625
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4626
		#$conf["disallowAllSkipableVarIsEmpty"]="";
4626
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 4632... Line 4632...
4632
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4632
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4633
		#建議:
4633
		#建議:
4634
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4634
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4635
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4635
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4636
		unset($conf["variableCheck::checkArguments"]);
4636
		unset($conf["variableCheck::checkArguments"]);
4637
		
4637
 
4638
		#如果檢查參數失敗
4638
		#如果檢查參數失敗
4639
		if($checkArguments["status"]==="false"){
4639
		if($checkArguments["status"]==="false"){
4640
			
4640
 
4641
			#設置執行失敗
4641
			#設置執行失敗
4642
			$result["status"]="false";
4642
			$result["status"]="false";
4643
			
4643
 
4644
			#設置執行錯誤訊息
4644
			#設置執行錯誤訊息
4645
			$result["error"]=$checkArguments;
4645
			$result["error"]=$checkArguments;
4646
			
4646
 
4647
			#回傳結果
4647
			#回傳結果
4648
			return $result;
4648
			return $result;
4649
			
4649
 
4650
			}#if end
4650
			}#if end
4651
			
4651
 
4652
		#如果檢查參數不通過
4652
		#如果檢查參數不通過
4653
		if($checkArguments["passed"]==="false"){
4653
		if($checkArguments["passed"]==="false"){
4654
			
4654
 
4655
			#設置執行失敗
4655
			#設置執行失敗
4656
			$result["status"]="false";
4656
			$result["status"]="false";
4657
			
4657
 
4658
			#設置執行錯誤訊息
4658
			#設置執行錯誤訊息
4659
			$result["error"]=$checkArguments;
4659
			$result["error"]=$checkArguments;
4660
			
4660
 
4661
			#回傳結果
4661
			#回傳結果
4662
			return $result;
4662
			return $result;
4663
			
4663
 
4664
			}#if end
4664
			}#if end
4665
		
4665
 
4666
		#取得參數
4666
		#取得參數
4667
		$str=$conf["str"];
4667
		$str=$conf["str"];
4668
		
4668
 
4669
		#檢查是否有「"」在開頭
4669
		#檢查是否有「"」在開頭
4670
		$strHeadSymbol1=strpos($str,"\"");	
4670
		$strHeadSymbol1=strpos($str,"\"");
4671
		
4671
 
4672
		#檢查是否有「'」在開頭
4672
		#檢查是否有「'」在開頭
4673
		$strHeadSymbol2=strpos($str,"'");
4673
		$strHeadSymbol2=strpos($str,"'");
4674
		
4674
 
4675
		#分割輸入的字串為一個個字的陣列
4675
		#分割輸入的字串為一個個字的陣列
4676
		$splitedFileName=str_split($str);	
4676
		$splitedFileName=str_split($str);
4677
		
4677
 
4678
		#取得輸入參數的長度
4678
		#取得輸入參數的長度
4679
		$fileNameStrlen=strlen($str);
4679
		$fileNameStrlen=strlen($str);
4680
 
4680
 
4681
		#如果檔案名稱被「"」或「'」包住
4681
		#如果檔案名稱被「"」或「'」包住
4682
		if
4682
		if
4683
		(
4683
		(
4684
			$strHeadSymbol1===0  && $splitedFileName[$fileNameStrlen-1]==="\"" 
4684
			$strHeadSymbol1===0  && $splitedFileName[$fileNameStrlen-1]==="\""
4685
			||
4685
			||
4686
			$strHeadSymbol2===0  && $splitedFileName[$fileNameStrlen-1]==="'" 
4686
			$strHeadSymbol2===0  && $splitedFileName[$fileNameStrlen-1]==="'"
4687
		){
4687
		){
4688
			
4688
 
4689
			#初始化儲存處理好的字串
4689
			#初始化儲存處理好的字串
4690
			$fixedStr="";
4690
			$fixedStr="";
4691
			
4691
 
4692
			#將字串的「"」包住的內容
4692
			#將字串的「"」包住的內容
4693
			for($i=1;$i<$fileNameStrlen-1;$i++){
4693
			for($i=1;$i<$fileNameStrlen-1;$i++){
4694
				
4694
 
4695
				#取出
4695
				#取出
4696
				$fixedStr=$fixedStr.$splitedFileName[$i];
4696
				$fixedStr=$fixedStr.$splitedFileName[$i];
4697
				
4697
 
4698
				}#for end
4698
				}#for end
4699
			
4699
 
4700
			#儲存處理好的字串
4700
			#儲存處理好的字串
4701
			$result["content"]=$fixedStr;
4701
			$result["content"]=$fixedStr;
4702
			
4702
 
4703
			}#if end
4703
			}#if end
4704
		
4704
 
4705
		#儲存原先的字串
4705
		#儲存原先的字串
4706
		$result["content"]=$str;
4706
		$result["content"]=$str;
4707
		
4707
 
4708
		#設置執行正常
4708
		#設置執行正常
4709
		$result["status"]="true";
4709
		$result["status"]="true";
4710
		
4710
 
4711
		#回傳結果
4711
		#回傳結果
4712
		return $result;
4712
		return $result;
4713
		
4713
 
4714
		}#function clearStrSymbol end
4714
		}#function clearStrSymbol end
4715
	
4715
 
4716
	/*
4716
	/*
4717
	#函式說明:
4717
	#函式說明:
4718
	#將字串中的每個字變成hex的字串陣列
4718
	#將字串中的每個字變成hex的字串陣列
4719
	#回傳結果:
4719
	#回傳結果:
4720
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
4720
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 4728... Line 4728...
4728
	#無.
4728
	#無.
4729
	#參考資料:
4729
	#參考資料:
4730
	#無.
4730
	#無.
4731
	#備註:
4731
	#備註:
4732
	#無.
4732
	#無.
4733
	*/	
4733
	*/
4734
	public static function str2bytesArray(&$conf){
4734
	public static function str2bytesArray(&$conf){
4735
	
4735
 
4736
		#初始化要回傳的結果
4736
		#初始化要回傳的結果
4737
		$result=array();
4737
		$result=array();
4738
 
4738
 
4739
		#取得當前執行的函數名稱
4739
		#取得當前執行的函數名稱
4740
		$result["function"]=__FUNCTION__;
4740
		$result["function"]=__FUNCTION__;
4741
		
4741
 
4742
		#初始化儲存bytes陣列
4742
		#初始化儲存bytes陣列
4743
		$result["content"]=array();
4743
		$result["content"]=array();
4744
 
4744
 
4745
		#如果沒有參數
4745
		#如果沒有參數
4746
		if(func_num_args()==0){
4746
		if(func_num_args()==0){
4747
			
4747
 
4748
			#設置執行失敗
4748
			#設置執行失敗
4749
			$result["status"]="false";
4749
			$result["status"]="false";
4750
			
4750
 
4751
			#設置執行錯誤訊息
4751
			#設置執行錯誤訊息
4752
			$result["error"]="函數".$result["function"]."需要參數";
4752
			$result["error"]="函數".$result["function"]."需要參數";
4753
			
4753
 
4754
			#回傳結果
4754
			#回傳結果
4755
			return $result;
4755
			return $result;
4756
			
4756
 
4757
			}#if end
4757
			}#if end
4758
 
4758
 
4759
		#取得參數
4759
		#取得參數
4760
		$result["argu"]=$conf;
4760
		$result["argu"]=$conf;
4761
 
4761
 
4762
		#如果 $conf 不為陣列
4762
		#如果 $conf 不為陣列
4763
		if(gettype($conf)!=="array"){
4763
		if(gettype($conf)!=="array"){
4764
			
4764
 
4765
			#設置執行失敗
4765
			#設置執行失敗
4766
			$result["status"]="false";
4766
			$result["status"]="false";
4767
			
4767
 
4768
			#設置執行錯誤訊息
4768
			#設置執行錯誤訊息
4769
			$result["error"][]="\$conf變數須為陣列形態";
4769
			$result["error"][]="\$conf變數須為陣列形態";
4770
			
4770
 
4771
			#如果傳入的參數為 null
4771
			#如果傳入的參數為 null
4772
			if($conf===null){
4772
			if($conf===null){
4773
				
4773
 
4774
				#設置執行錯誤訊息
4774
				#設置執行錯誤訊息
4775
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4775
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4776
				
4776
 
4777
				}#if end
4777
				}#if end
4778
 
4778
 
4779
			#回傳結果
4779
			#回傳結果
4780
			return $result;
4780
			return $result;
4781
			
4781
 
4782
			}#if end
4782
			}#if end
4783
			
4783
 
4784
		#函式說明:
4784
		#函式說明:
4785
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4785
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4786
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4786
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4787
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4787
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4788
		#$result["function"],當前執行的函式名稱.
4788
		#$result["function"],當前執行的函式名稱.
Line 4812... Line 4812...
4812
		#$conf["canBeEmpty"]=array();
4812
		#$conf["canBeEmpty"]=array();
4813
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4813
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4814
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4814
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4815
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4815
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4816
		#$conf["skipableVariableName"]=array();
4816
		#$conf["skipableVariableName"]=array();
4817
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
4817
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
4818
		#$conf["skipableVariableType"]=array();
4818
		#$conf["skipableVariableType"]=array();
4819
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4819
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4820
		#$conf["skipableVarDefaultValue"]=array("");
4820
		#$conf["skipableVarDefaultValue"]=array("");
4821
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4821
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4822
		#$conf["disallowAllSkipableVarIsEmpty"]="";
4822
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 4828... Line 4828...
4828
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4828
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4829
		#建議:
4829
		#建議:
4830
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4830
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4831
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4831
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4832
		unset($conf["variableCheck::checkArguments"]);
4832
		unset($conf["variableCheck::checkArguments"]);
4833
		
4833
 
4834
		#如果檢查參數失敗
4834
		#如果檢查參數失敗
4835
		if($checkArguments["status"]==="false"){
4835
		if($checkArguments["status"]==="false"){
4836
			
4836
 
4837
			#設置執行失敗
4837
			#設置執行失敗
4838
			$result["status"]="false";
4838
			$result["status"]="false";
4839
			
4839
 
4840
			#設置執行錯誤訊息
4840
			#設置執行錯誤訊息
4841
			$result["error"]=$checkArguments;
4841
			$result["error"]=$checkArguments;
4842
			
4842
 
4843
			#回傳結果
4843
			#回傳結果
4844
			return $result;
4844
			return $result;
4845
			
4845
 
4846
			}#if end
4846
			}#if end
4847
			
4847
 
4848
		#如果檢查參數不通過
4848
		#如果檢查參數不通過
4849
		if($checkArguments["passed"]==="false"){
4849
		if($checkArguments["passed"]==="false"){
4850
			
4850
 
4851
			#設置執行失敗
4851
			#設置執行失敗
4852
			$result["status"]="false";
4852
			$result["status"]="false";
4853
			
4853
 
4854
			#設置執行錯誤訊息
4854
			#設置執行錯誤訊息
4855
			$result["error"]=$checkArguments;
4855
			$result["error"]=$checkArguments;
4856
			
4856
 
4857
			#回傳結果
4857
			#回傳結果
4858
			return $result;
4858
			return $result;
4859
			
4859
 
4860
			}#if end
4860
			}#if end
4861
		
4861
 
4862
		#當字串還有內容
4862
		#當字串還有內容
4863
		while(strlen($conf["input"])>0)
4863
		while(strlen($conf["input"])>0)
4864
		{
4864
		{
4865
			#取得一個字串
4865
			#取得一個字串
4866
			$char=substr($conf["input"],0,1);	
4866
			$char=substr($conf["input"],0,1);
4867
	
4867
 
4868
			#儲存16進位的bytes數字
4868
			#儲存16進位的bytes數字
4869
			$result["content"][]=strtoupper(sprintf("%02s",(base_convert(ord($char),10,16))));
4869
			$result["content"][]=strtoupper(sprintf("%02s",(base_convert(ord($char),10,16))));
4870
			
4870
 
4871
			#取得剩下的字串
4871
			#取得剩下的字串
4872
			$conf["input"]=substr($conf["input"],1);
4872
			$conf["input"]=substr($conf["input"],1);
4873
		
4873
 
4874
		}#while end
4874
		}#while end
4875
		
4875
 
4876
		#設置執行正常
4876
		#設置執行正常
4877
		$result["status"]="true";
4877
		$result["status"]="true";
4878
		
4878
 
4879
		#回傳
4879
		#回傳
4880
		return $result;
4880
		return $result;
4881
	
4881
 
4882
		}#funcrion str2bytesArray end
4882
		}#funcrion str2bytesArray end
4883
		
4883
 
4884
	/*
4884
	/*
4885
	#函式說明:
4885
	#函式說明:
4886
	#將字串中的每個字變成hex的字串
4886
	#將字串中的每個字變成hex的字串
4887
	#回傳結果:
4887
	#回傳結果:
4888
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
4888
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 4896... Line 4896...
4896
	#無.
4896
	#無.
4897
	#參考資料:
4897
	#參考資料:
4898
	#無.
4898
	#無.
4899
	#備註:
4899
	#備註:
4900
	#無.
4900
	#無.
4901
	*/	
4901
	*/
4902
	public static function str2hexStr(&$conf){
4902
	public static function str2hexStr(&$conf){
4903
	
4903
 
4904
		#初始化要回傳的結果
4904
		#初始化要回傳的結果
4905
		$result=array();
4905
		$result=array();
4906
 
4906
 
4907
		#取得當前執行的函數名稱
4907
		#取得當前執行的函數名稱
4908
		$result["function"]=__FUNCTION__;
4908
		$result["function"]=__FUNCTION__;
4909
		
4909
 
4910
		#初始化儲存bytes陣列
4910
		#初始化儲存bytes陣列
4911
		$result["content"]=array();
4911
		$result["content"]=array();
4912
 
4912
 
4913
		#如果沒有參數
4913
		#如果沒有參數
4914
		if(func_num_args()==0){
4914
		if(func_num_args()==0){
4915
			
4915
 
4916
			#設置執行失敗
4916
			#設置執行失敗
4917
			$result["status"]="false";
4917
			$result["status"]="false";
4918
			
4918
 
4919
			#設置執行錯誤訊息
4919
			#設置執行錯誤訊息
4920
			$result["error"]="函數".$result["function"]."需要參數";
4920
			$result["error"]="函數".$result["function"]."需要參數";
4921
			
4921
 
4922
			#回傳結果
4922
			#回傳結果
4923
			return $result;
4923
			return $result;
4924
			
4924
 
4925
			}#if end
4925
			}#if end
4926
 
4926
 
4927
		#取得參數
4927
		#取得參數
4928
		$result["argu"]=$conf;
4928
		$result["argu"]=$conf;
4929
 
4929
 
4930
		#如果 $conf 不為陣列
4930
		#如果 $conf 不為陣列
4931
		if(gettype($conf)!=="array"){
4931
		if(gettype($conf)!=="array"){
4932
			
4932
 
4933
			#設置執行失敗
4933
			#設置執行失敗
4934
			$result["status"]="false";
4934
			$result["status"]="false";
4935
			
4935
 
4936
			#設置執行錯誤訊息
4936
			#設置執行錯誤訊息
4937
			$result["error"][]="\$conf變數須為陣列形態";
4937
			$result["error"][]="\$conf變數須為陣列形態";
4938
			
4938
 
4939
			#如果傳入的參數為 null
4939
			#如果傳入的參數為 null
4940
			if($conf===null){
4940
			if($conf===null){
4941
				
4941
 
4942
				#設置執行錯誤訊息
4942
				#設置執行錯誤訊息
4943
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4943
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4944
				
4944
 
4945
				}#if end
4945
				}#if end
4946
 
4946
 
4947
			#回傳結果
4947
			#回傳結果
4948
			return $result;
4948
			return $result;
4949
			
4949
 
4950
			}#if end
4950
			}#if end
4951
			
4951
 
4952
		#函式說明:
4952
		#函式說明:
4953
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4953
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4954
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4954
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4955
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4955
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4956
		#$result["function"],當前執行的函式名稱.
4956
		#$result["function"],當前執行的函式名稱.
Line 4980... Line 4980...
4980
		#$conf["canBeEmpty"]=array();
4980
		#$conf["canBeEmpty"]=array();
4981
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4981
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
4982
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4982
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4983
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4983
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4984
		#$conf["skipableVariableName"]=array();
4984
		#$conf["skipableVariableName"]=array();
4985
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
4985
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
4986
		#$conf["skipableVariableType"]=array();
4986
		#$conf["skipableVariableType"]=array();
4987
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4987
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4988
		#$conf["skipableVarDefaultValue"]=array("");
4988
		#$conf["skipableVarDefaultValue"]=array("");
4989
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4989
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
4990
		#$conf["disallowAllSkipableVarIsEmpty"]="";
4990
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 4996... Line 4996...
4996
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4996
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4997
		#建議:
4997
		#建議:
4998
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4998
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
4999
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4999
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5000
		unset($conf["variableCheck::checkArguments"]);
5000
		unset($conf["variableCheck::checkArguments"]);
5001
		
5001
 
5002
		#如果檢查參數失敗
5002
		#如果檢查參數失敗
5003
		if($checkArguments["status"]==="false"){
5003
		if($checkArguments["status"]==="false"){
5004
			
5004
 
5005
			#設置執行失敗
5005
			#設置執行失敗
5006
			$result["status"]="false";
5006
			$result["status"]="false";
5007
			
5007
 
5008
			#設置執行錯誤訊息
5008
			#設置執行錯誤訊息
5009
			$result["error"]=$checkArguments;
5009
			$result["error"]=$checkArguments;
5010
			
5010
 
5011
			#回傳結果
5011
			#回傳結果
5012
			return $result;
5012
			return $result;
5013
			
5013
 
5014
			}#if end
5014
			}#if end
5015
			
5015
 
5016
		#如果檢查參數不通過
5016
		#如果檢查參數不通過
5017
		if($checkArguments["passed"]==="false"){
5017
		if($checkArguments["passed"]==="false"){
5018
			
5018
 
5019
			#設置執行失敗
5019
			#設置執行失敗
5020
			$result["status"]="false";
5020
			$result["status"]="false";
5021
			
5021
 
5022
			#設置執行錯誤訊息
5022
			#設置執行錯誤訊息
5023
			$result["error"]=$checkArguments;
5023
			$result["error"]=$checkArguments;
5024
			
5024
 
5025
			#回傳結果
5025
			#回傳結果
5026
			return $result;
5026
			return $result;
5027
			
5027
 
5028
			}#if end
5028
			}#if end
5029
		
5029
 
5030
		#透過 stringProcess::str2bytesArray 取得 hex字串陣列
5030
		#透過 stringProcess::str2bytesArray 取得 hex字串陣列
5031
		$conf["stringProcess::str2bytesArray"]["input"]=$conf;
5031
		$conf["stringProcess::str2bytesArray"]["input"]=$conf;
5032
		$str2bytesArray=stringProcess::str2bytesArray($conf["stringProcess::str2bytesArray"]);
5032
		$str2bytesArray=stringProcess::str2bytesArray($conf["stringProcess::str2bytesArray"]);
5033
		unset($conf["stringProcess::str2bytesArray"]);
5033
		unset($conf["stringProcess::str2bytesArray"]);
5034
	
5034
 
5035
		#如果執行失敗
5035
		#如果執行失敗
5036
		if($str2bytesArray["status"]==="false"){
5036
		if($str2bytesArray["status"]==="false"){
5037
		
5037
 
5038
			#設置執行不正常
5038
			#設置執行不正常
5039
			$result["status"]="false";
5039
			$result["status"]="false";
5040
		
5040
 
5041
			#設置錯誤訊息
5041
			#設置錯誤訊息
5042
			$result["error"]=$str2bytesArray;
5042
			$result["error"]=$str2bytesArray;
5043
			
5043
 
5044
			#回傳結果
5044
			#回傳結果
5045
			return $resutl;
5045
			return $resutl;
5046
		
5046
 
5047
			}#if end
5047
			}#if end
5048
			
5048
 
5049
		#函式說明:
5049
		#函式說明:
5050
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
5050
		#將一維陣列轉換為用特定符號間隔的字串,ex:array("1","2","3") to "a;b;c;".
5051
		#回傳的結果:
5051
		#回傳的結果:
5052
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5052
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5053
		#$result["function"],當前執行的function名稱
5053
		#$result["function"],當前執行的function名稱
Line 5066... Line 5066...
5066
		#無.
5066
		#無.
5067
		#備註:
5067
		#備註:
5068
		#無.
5068
		#無.
5069
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
5069
		$arrayToString=arrays::arrayToString($conf["arrays::arrayToString"]);
5070
		unset($conf["arrays::arrayToString"]);
5070
		unset($conf["arrays::arrayToString"]);
5071
	
5071
 
5072
		#如果執行失敗
5072
		#如果執行失敗
5073
		if($arrayToString["status"]==="false"){
5073
		if($arrayToString["status"]==="false"){
5074
		
5074
 
5075
			#設置執行不正常
5075
			#設置執行不正常
5076
			$result["status"]="false";
5076
			$result["status"]="false";
5077
		
5077
 
5078
			#設置錯誤訊息
5078
			#設置錯誤訊息
5079
			$result["error"]=$arrayToString;
5079
			$result["error"]=$arrayToString;
5080
			
5080
 
5081
			#回傳結果
5081
			#回傳結果
5082
			return $resutl;
5082
			return $resutl;
5083
		
5083
 
5084
			}#if end
5084
			}#if end
5085
			
5085
 
5086
		#設置執行正常
5086
		#設置執行正常
5087
		$result["status"]="true";
5087
		$result["status"]="true";
5088
		
5088
 
5089
		#設置回傳的內容
5089
		#設置回傳的內容
5090
		$result["content"]=$arrayToString["content"];
5090
		$result["content"]=$arrayToString["content"];
5091
		
5091
 
5092
		#回傳結果
5092
		#回傳結果
5093
		return $result;
5093
		return $result;
5094
	
5094
 
5095
		}#function str2hexStr end
5095
		}#function str2hexStr end
5096
		
5096
 
5097
	/*
5097
	/*
5098
	#函式說明:
5098
	#函式說明:
5099
	#將bytes數字(16進位)轉換為bit字串(0跟1來表述)
5099
	#將bytes數字(16進位)轉換為bit字串(0跟1來表述)
5100
	#回傳結果:
5100
	#回傳結果:
5101
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
5101
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 5111... Line 5111...
5111
	#無.
5111
	#無.
5112
	#備註:
5112
	#備註:
5113
	#無.
5113
	#無.
5114
	*/
5114
	*/
5115
	public static function bytes2bitString(&$conf){
5115
	public static function bytes2bitString(&$conf){
5116
	
5116
 
5117
		#初始化要回傳的結果
5117
		#初始化要回傳的結果
5118
		$result=array();
5118
		$result=array();
5119
 
5119
 
5120
		#取得當前執行的函數名稱
5120
		#取得當前執行的函數名稱
5121
		$result["function"]=__FUNCTION__;
5121
		$result["function"]=__FUNCTION__;
5122
		
5122
 
5123
		#初始化結果
5123
		#初始化結果
5124
		$result["content"]=array();
5124
		$result["content"]=array();
5125
 
5125
 
5126
		#如果沒有參數
5126
		#如果沒有參數
5127
		if(func_num_args()==0){
5127
		if(func_num_args()==0){
5128
			
5128
 
5129
			#設置執行失敗
5129
			#設置執行失敗
5130
			$result["status"]="false";
5130
			$result["status"]="false";
5131
			
5131
 
5132
			#設置執行錯誤訊息
5132
			#設置執行錯誤訊息
5133
			$result["error"]="函數".$result["function"]."需要參數";
5133
			$result["error"]="函數".$result["function"]."需要參數";
5134
			
5134
 
5135
			#回傳結果
5135
			#回傳結果
5136
			return $result;
5136
			return $result;
5137
			
5137
 
5138
			}#if end
5138
			}#if end
5139
 
5139
 
5140
		#取得參數
5140
		#取得參數
5141
		$result["argu"]=$conf;
5141
		$result["argu"]=$conf;
5142
 
5142
 
5143
		#如果 $conf 不為陣列
5143
		#如果 $conf 不為陣列
5144
		if(gettype($conf)!=="array"){
5144
		if(gettype($conf)!=="array"){
5145
			
5145
 
5146
			#設置執行失敗
5146
			#設置執行失敗
5147
			$result["status"]="false";
5147
			$result["status"]="false";
5148
			
5148
 
5149
			#設置執行錯誤訊息
5149
			#設置執行錯誤訊息
5150
			$result["error"][]="\$conf變數須為陣列形態";
5150
			$result["error"][]="\$conf變數須為陣列形態";
5151
			
5151
 
5152
			#如果傳入的參數為 null
5152
			#如果傳入的參數為 null
5153
			if($conf===null){
5153
			if($conf===null){
5154
				
5154
 
5155
				#設置執行錯誤訊息
5155
				#設置執行錯誤訊息
5156
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
5156
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
5157
				
5157
 
5158
				}#if end
5158
				}#if end
5159
 
5159
 
5160
			#回傳結果
5160
			#回傳結果
5161
			return $result;
5161
			return $result;
5162
			
5162
 
5163
			}#if end
5163
			}#if end
5164
			
5164
 
5165
		#函式說明:
5165
		#函式說明:
5166
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
5166
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
5167
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5167
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5168
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
5168
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
5169
		#$result["function"],當前執行的函式名稱.
5169
		#$result["function"],當前執行的函式名稱.
Line 5193... Line 5193...
5193
		#$conf["canBeEmpty"]=array();
5193
		#$conf["canBeEmpty"]=array();
5194
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
5194
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
5195
		#$conf["skipableVariableCanNotBeEmpty"]=array();
5195
		#$conf["skipableVariableCanNotBeEmpty"]=array();
5196
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
5196
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
5197
		#$conf["skipableVariableName"]=array();
5197
		#$conf["skipableVariableName"]=array();
5198
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
5198
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
5199
		#$conf["skipableVariableType"]=array();
5199
		#$conf["skipableVariableType"]=array();
5200
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
5200
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
5201
		#$conf["skipableVarDefaultValue"]=array("");
5201
		#$conf["skipableVarDefaultValue"]=array("");
5202
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
5202
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
5203
		#$conf["disallowAllSkipableVarIsEmpty"]="";
5203
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 5209... Line 5209...
5209
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5209
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5210
		#建議:
5210
		#建議:
5211
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
5211
		#增加可省略參數全部不能為空字串或空陣列的參數功能.
5212
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5212
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5213
		unset($conf["variableCheck::checkArguments"]);
5213
		unset($conf["variableCheck::checkArguments"]);
5214
		
5214
 
5215
		#如果檢查參數失敗
5215
		#如果檢查參數失敗
5216
		if($checkArguments["status"]==="false"){
5216
		if($checkArguments["status"]==="false"){
5217
			
5217
 
5218
			#設置執行失敗
5218
			#設置執行失敗
5219
			$result["status"]="false";
5219
			$result["status"]="false";
5220
			
5220
 
5221
			#設置執行錯誤訊息
5221
			#設置執行錯誤訊息
5222
			$result["error"]=$checkArguments;
5222
			$result["error"]=$checkArguments;
5223
			
5223
 
5224
			#回傳結果
5224
			#回傳結果
5225
			return $result;
5225
			return $result;
5226
			
5226
 
5227
			}#if end
5227
			}#if end
5228
			
5228
 
5229
		#如果檢查參數不通過
5229
		#如果檢查參數不通過
5230
		if($checkArguments["passed"]==="false"){
5230
		if($checkArguments["passed"]==="false"){
5231
			
5231
 
5232
			#設置執行失敗
5232
			#設置執行失敗
5233
			$result["status"]="false";
5233
			$result["status"]="false";
5234
			
5234
 
5235
			#設置執行錯誤訊息
5235
			#設置執行錯誤訊息
5236
			$result["error"]=$checkArguments;
5236
			$result["error"]=$checkArguments;
5237
			
5237
 
5238
			#回傳結果
5238
			#回傳結果
5239
			return $result;
5239
			return $result;
5240
			
5240
 
5241
			}#if end
5241
			}#if end
5242
	
5242
 
5243
		#儲存2進位數值
5243
		#儲存2進位數值
5244
		$result["content"]=sprintf("%08s",base_convert($conf["bytes"],16,2));
5244
		$result["content"]=sprintf("%08s",base_convert($conf["bytes"],16,2));
5245
		
5245
 
5246
		#設置執行正常
5246
		#設置執行正常
5247
		$result["status"]="true";
5247
		$result["status"]="true";
5248
		
5248
 
5249
		#回傳
5249
		#回傳
5250
		return $result;
5250
		return $result;
5251
	
5251
 
5252
		}#function bytes2bitString end
5252
		}#function bytes2bitString end
5253
		
5253
 
5254
	/*
5254
	/*
5255
	#函式說明:
5255
	#函式說明:
5256
	#將2進位的8位數字字串,變成bytes字串.
5256
	#將2進位的8位數字字串,變成bytes字串.
5257
	#回傳結果:
5257
	#回傳結果:
5258
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
5258
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 5268... Line 5268...
5268
	#無.
5268
	#無.
5269
	#備註:
5269
	#備註:
5270
	#無.
5270
	#無.
5271
	*/
5271
	*/
5272
	public static function bit2byteStr($conf){
5272
	public static function bit2byteStr($conf){
5273
	
5273
 
5274
		#初始化要回傳的結果
5274
		#初始化要回傳的結果
5275
		$result=array();
5275
		$result=array();
5276
 
5276
 
5277
		#設置當其函數名稱
5277
		#設置當其函數名稱
5278
		$result["function"]=__FUNCTION__;
5278
		$result["function"]=__FUNCTION__;
Line 5314... Line 5314...
5314
			$getSimpleError=variableCheck::getSimpleError($conf["variableCheck::getSimpleError"]);
5314
			$getSimpleError=variableCheck::getSimpleError($conf["variableCheck::getSimpleError"]);
5315
			unset($conf["variableCheck::getSimpleError"]);
5315
			unset($conf["variableCheck::getSimpleError"]);
5316
 
5316
 
5317
			#如果執行失敗
5317
			#如果執行失敗
5318
			if($getSimpleError["status"]==="false"){
5318
			if($getSimpleError["status"]==="false"){
5319
			
5319
 
5320
				#設置執行錯誤訊息
5320
				#設置執行錯誤訊息
5321
				$result["error"][]=$getSimpleError;
5321
				$result["error"][]=$getSimpleError;
5322
			
5322
 
5323
				#回傳結果
5323
				#回傳結果
5324
				return $result;
5324
				return $result;
5325
 
5325
 
5326
				}#if end
5326
				}#if end
5327
 
5327
 
Line 5333... Line 5333...
5333
 
5333
 
5334
			}#if end
5334
			}#if end
5335
 
5335
 
5336
		#設置放置的參數
5336
		#設置放置的參數
5337
		$result["argu"]=$conf;
5337
		$result["argu"]=$conf;
5338
		
5338
 
5339
		#函式說明:
5339
		#函式說明:
5340
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5340
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5341
		#回傳結果:
5341
		#回傳結果:
5342
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5342
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5343
		#$result["error"],執行不正常結束的錯訊息陣列.
5343
		#$result["error"],執行不正常結束的錯訊息陣列.
Line 5386... Line 5386...
5386
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5386
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5387
		#備註:
5387
		#備註:
5388
		#無.
5388
		#無.
5389
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5389
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5390
		unset($conf["variableCheck::checkArguments"]);
5390
		unset($conf["variableCheck::checkArguments"]);
5391
	
5391
 
5392
		#如果檢查參數失敗
5392
		#如果檢查參數失敗
5393
		if($checkArguments["status"]==="false"){
5393
		if($checkArguments["status"]==="false"){
5394
		
5394
 
5395
			#設置執行失敗
5395
			#設置執行失敗
5396
			$result["status"]="false";
5396
			$result["status"]="false";
5397
			
5397
 
5398
			#設置錯誤訊息陣列
5398
			#設置錯誤訊息陣列
5399
			$result["error"]=$checkArguments;
5399
			$result["error"]=$checkArguments;
5400
			
5400
 
5401
			#回傳結果
5401
			#回傳結果
5402
			return $result;
5402
			return $result;
5403
			
5403
 
5404
			}#if end
5404
			}#if end
5405
			
5405
 
5406
		#如果檢查參數不通過
5406
		#如果檢查參數不通過
5407
		if($checkArguments["status"]==="false"){
5407
		if($checkArguments["status"]==="false"){
5408
		
5408
 
5409
			#設置執行失敗
5409
			#設置執行失敗
5410
			$result["status"]="false";
5410
			$result["status"]="false";
5411
			
5411
 
5412
			#設置錯誤訊息陣列
5412
			#設置錯誤訊息陣列
5413
			$result["error"]=$checkArguments;
5413
			$result["error"]=$checkArguments;
5414
			
5414
 
5415
			#回傳結果
5415
			#回傳結果
5416
			return $result;
5416
			return $result;
5417
			
5417
 
5418
			}#if end
5418
			}#if end
5419
			
5419
 
5420
		#如果長度大於8
5420
		#如果長度大於8
5421
		if(strlen($conf["8bits"])>8){
5421
		if(strlen($conf["8bits"])>8){
5422
		
5422
 
5423
			#設置執行失敗
5423
			#設置執行失敗
5424
			$result["status"]="false";
5424
			$result["status"]="false";
5425
			
5425
 
5426
			#設置錯誤訊息陣列
5426
			#設置錯誤訊息陣列
5427
			$result["error"][]="請確認為8bits字串";
5427
			$result["error"][]="請確認為8bits字串";
5428
			
5428
 
5429
			#回傳結果
5429
			#回傳結果
5430
			return $result;
5430
			return $result;
5431
		
5431
 
5432
			}#if end
5432
			}#if end
5433
			
5433
 
5434
		#取得結果字串
5434
		#取得結果字串
5435
		$result["content"]=chr(base_convert($conf["8bits"],2,10));
5435
		$result["content"]=chr(base_convert($conf["8bits"],2,10));
5436
	
5436
 
5437
		#設置執行正常
5437
		#設置執行正常
5438
		$result["status"]="true";
5438
		$result["status"]="true";
5439
		
5439
 
5440
		#回傳結果
5440
		#回傳結果
5441
		return $result;
5441
		return $result;
5442
	
5442
 
5443
		}#function bit2bytes end
5443
		}#function bit2bytes end
5444
		
5444
 
5445
	/*
5445
	/*
5446
	#函式說明:
5446
	#函式說明:
5447
	#隨機產生任意byte(s)組成的字串.
5447
	#隨機產生任意byte(s)組成的字串.
5448
	#回傳結果:
5448
	#回傳結果:
5449
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
5449
	#$result["status"],執行正常與否,"false"代表不正常,"true"代表正常.
Line 5459... Line 5459...
5459
	#無.
5459
	#無.
5460
	#備註:
5460
	#備註:
5461
	#無.
5461
	#無.
5462
	*/
5462
	*/
5463
	public static function randomByte(&$conf){
5463
	public static function randomByte(&$conf){
5464
	
5464
 
5465
		#初始化要回傳的結果
5465
		#初始化要回傳的結果
5466
		$result=array();
5466
		$result=array();
5467
 
5467
 
5468
		#取得當前執行的函數名稱
5468
		#取得當前執行的函數名稱
5469
		$result["function"]=__FUNCTION__;
5469
		$result["function"]=__FUNCTION__;
5470
		
5470
 
5471
		#取得參數
5471
		#取得參數
5472
		$result["argu"]=$conf;
5472
		$result["argu"]=$conf;
5473
		
5473
 
5474
		#如果 $conf 不為陣列
5474
		#如果 $conf 不為陣列
5475
		if(gettype($conf)!="array"){
5475
		if(gettype($conf)!="array"){
5476
 
5476
 
5477
			#設置執行失敗
5477
			#設置執行失敗
5478
			$result["status"]="false";
5478
			$result["status"]="false";
Line 5490... Line 5490...
5490
 
5490
 
5491
			#回傳結果
5491
			#回傳結果
5492
			return $result;
5492
			return $result;
5493
 
5493
 
5494
			}#if end
5494
			}#if end
5495
	
5495
 
5496
		#函式說明:
5496
		#函式說明:
5497
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5497
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5498
		#回傳結果:
5498
		#回傳結果:
5499
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5499
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5500
		#$result["error"],執行不正常結束的錯訊息陣列.
5500
		#$result["error"],執行不正常結束的錯訊息陣列.
Line 5545... Line 5545...
5545
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5545
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5546
		#備註:
5546
		#備註:
5547
		#無.
5547
		#無.
5548
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5548
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5549
		unset($conf["variableCheck::checkArguments"]);
5549
		unset($conf["variableCheck::checkArguments"]);
5550
	
5550
 
5551
		#如果檢查參數失敗
5551
		#如果檢查參數失敗
5552
		if($checkArguments["status"]==="false"){
5552
		if($checkArguments["status"]==="false"){
5553
		
5553
 
5554
			#設置執行失敗
5554
			#設置執行失敗
5555
			$result["status"]="false";
5555
			$result["status"]="false";
5556
			
5556
 
5557
			#設置錯誤訊息陣列
5557
			#設置錯誤訊息陣列
5558
			$result["error"]=$checkArguments;
5558
			$result["error"]=$checkArguments;
5559
			
5559
 
5560
			#回傳結果
5560
			#回傳結果
5561
			return $result;
5561
			return $result;
5562
			
5562
 
5563
			}#if end
5563
			}#if end
5564
			
5564
 
5565
		#如果檢查參數不通過
5565
		#如果檢查參數不通過
5566
		if($checkArguments["status"]==="false"){
5566
		if($checkArguments["status"]==="false"){
5567
		
5567
 
5568
			#設置執行失敗
5568
			#設置執行失敗
5569
			$result["status"]="false";
5569
			$result["status"]="false";
5570
			
5570
 
5571
			#設置錯誤訊息陣列
5571
			#設置錯誤訊息陣列
5572
			$result["error"]=$checkArguments;
5572
			$result["error"]=$checkArguments;
5573
			
5573
 
5574
			#回傳結果
5574
			#回傳結果
5575
			return $result;
5575
			return $result;
5576
			
5576
 
5577
			}#if end
5577
			}#if end
5578
			
5578
 
5579
		#初始化儲存用字串來表示的byte(s).
5579
		#初始化儲存用字串來表示的byte(s).
5580
		$result["content"]="";
5580
		$result["content"]="";
5581
			
5581
 
5582
		#要多少bytes就跑幾次
5582
		#要多少bytes就跑幾次
5583
		for($i=0;$i<$conf["length"];$i++){
5583
		for($i=0;$i<$conf["length"];$i++){
5584
		
5584
 
5585
			#暫存byte
5585
			#暫存byte
5586
			$byte="";
5586
			$byte="";
5587
		
5587
 
5588
			#隨機產生該byte開始bit不為0的位置
5588
			#隨機產生該byte開始bit不為0的位置
5589
			$bitNotZeroAddr=\rand(0,7);
5589
			$bitNotZeroAddr=\rand(0,7);
5590
		
5590
 
5591
			#每個bit都跑一次
5591
			#每個bit都跑一次
5592
			for($j=0;$j<8;$j++){
5592
			for($j=0;$j<8;$j++){
5593
			
5593
 
5594
				#如果還沒開始有資料
5594
				#如果還沒開始有資料
5595
				if($j<$bitNotZeroAddr){
5595
				if($j<$bitNotZeroAddr){
5596
				
5596
 
5597
					#加0
5597
					#加0
5598
					$byte=$byte."0";
5598
					$byte=$byte."0";
5599
				
5599
 
5600
					#下一個迴圈
5600
					#下一個迴圈
5601
					continue;
5601
					continue;
5602
				
5602
 
5603
					}#if end
5603
					}#if end
5604
			
5604
 
5605
				#隨機產生bit
5605
				#隨機產生bit
5606
				$bit=\rand(0,1);
5606
				$bit=\rand(0,1);
5607
			
5607
 
5608
				#加bit
5608
				#加bit
5609
				$byte=$byte.(string)($bit);
5609
				$byte=$byte.(string)($bit);
5610
			
5610
 
5611
				}#for end
5611
				}#for end
5612
			
5612
 
5613
			#用字串來表示byte
5613
			#用字串來表示byte
5614
			$byte=chr(base_convert($byte,2,10));
5614
			$byte=chr(base_convert($byte,2,10));
5615
			
5615
 
5616
			#串接byte
5616
			#串接byte
5617
			$result["content"]=$result["content"].$byte;
5617
			$result["content"]=$result["content"].$byte;
5618
		
5618
 
5619
			}#for end
5619
			}#for end
5620
			
5620
 
5621
		#設置執行正常
5621
		#設置執行正常
5622
		$result["status"]="true";
5622
		$result["status"]="true";
5623
	
5623
 
5624
		#回傳結果
5624
		#回傳結果
5625
		return $result;
5625
		return $result;
5626
	
5626
 
5627
		}#function randomByte end
5627
		}#function randomByte end
5628
	
5628
 
5629
	/*
5629
	/*
5630
	#函式說明:
5630
	#函式說明:
5631
	#判斷字串是否一定需要經過escapeshellarg才能為單一shell參數,並回傳可以成為單一shell參數的結果.
5631
	#判斷字串是否一定需要經過escapeshellarg才能為單一shell參數,並回傳可以成為單一shell參數的結果.
5632
	#回傳結果:
5632
	#回傳結果:
5633
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5633
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 5646... Line 5646...
5646
	#無.
5646
	#無.
5647
	#備註:
5647
	#備註:
5648
	#無.
5648
	#無.
5649
	*/
5649
	*/
5650
	public static function toSingleShellArg(&$conf){
5650
	public static function toSingleShellArg(&$conf){
5651
	
5651
 
5652
		#初始化要回傳的結果
5652
		#初始化要回傳的結果
5653
		$result=array();
5653
		$result=array();
5654
 
5654
 
5655
		#取得當前執行的函數名稱
5655
		#取得當前執行的函數名稱
5656
		$result["function"]=__FUNCTION__;
5656
		$result["function"]=__FUNCTION__;
5657
		
5657
 
5658
		#取得參數
5658
		#取得參數
5659
		$result["argu"]=$conf;
5659
		$result["argu"]=$conf;
5660
		
5660
 
5661
		#如果 $conf 不為陣列
5661
		#如果 $conf 不為陣列
5662
		if(gettype($conf)!="array"){
5662
		if(gettype($conf)!="array"){
5663
 
5663
 
5664
			#設置執行失敗
5664
			#設置執行失敗
5665
			$result["status"]="false";
5665
			$result["status"]="false";
Line 5677... Line 5677...
5677
 
5677
 
5678
			#回傳結果
5678
			#回傳結果
5679
			return $result;
5679
			return $result;
5680
 
5680
 
5681
			}#if end
5681
			}#if end
5682
			
5682
 
5683
		#檢查參數
5683
		#檢查參數
5684
		#函式說明:
5684
		#函式說明:
5685
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5685
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
5686
		#回傳結果:
5686
		#回傳結果:
5687
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5687
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 5733... Line 5733...
5733
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5733
		#array_keys=>http://php.net/manual/en/function.array-keys.php
5734
		#備註:
5734
		#備註:
5735
		#無.
5735
		#無.
5736
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5736
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
5737
		unset($conf["variable::checkArguments"]);
5737
		unset($conf["variable::checkArguments"]);
5738
	
5738
 
5739
		#如果檢查參數失敗
5739
		#如果檢查參數失敗
5740
		if($checkArguments["status"]==="false"){
5740
		if($checkArguments["status"]==="false"){
5741
		
5741
 
5742
			#設置執行失敗
5742
			#設置執行失敗
5743
			$result["status"]="false";
5743
			$result["status"]="false";
5744
			
5744
 
5745
			#設置錯誤訊息陣列
5745
			#設置錯誤訊息陣列
5746
			$result["error"]=$checkArguments;
5746
			$result["error"]=$checkArguments;
5747
			
5747
 
5748
			#回傳結果
5748
			#回傳結果
5749
			return $result;
5749
			return $result;
5750
			
5750
 
5751
			}#if end
5751
			}#if end
5752
			
5752
 
5753
		#如果檢查參數不通過
5753
		#如果檢查參數不通過
5754
		if($checkArguments["passed"]==="false"){
5754
		if($checkArguments["passed"]==="false"){
5755
		
5755
 
5756
			#設置執行失敗
5756
			#設置執行失敗
5757
			$result["status"]="false";
5757
			$result["status"]="false";
5758
			
5758
 
5759
			#設置錯誤訊息陣列
5759
			#設置錯誤訊息陣列
5760
			$result["error"]=$checkArguments;
5760
			$result["error"]=$checkArguments;
5761
			
5761
 
5762
			#回傳結果
5762
			#回傳結果
5763
			return $result;
5763
			return $result;
5764
			
5764
 
5765
			}#if end
5765
			}#if end
5766
			
5766
 
5767
		#取得 str 的 bytes 數
5767
		#取得 str 的 bytes 數
5768
		$strLength=strlen($conf["str"]);
5768
		$strLength=strlen($conf["str"]);
5769
		
5769
 
5770
		#初始化 url encode 後的 str 參數
5770
		#初始化 url encode 後的 str 參數
5771
		$result["urlEncodeStr"]="";
5771
		$result["urlEncodeStr"]="";
5772
		
5772
 
5773
		#如果不是空字串
5773
		#如果不是空字串
5774
		if($strLength!==0){
5774
		if($strLength!==0){
5775
		
5775
 
5776
			#函式說明:
5776
			#函式說明:
5777
			#將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
5777
			#將檔案目錄的絕對位置中的 "../" 剔除變成直觀的路徑.
5778
			#回傳結果:
5778
			#回傳結果:
5779
			#$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
5779
			#$result["status"],執行是否成功,"true"代表執行成功,"false"代表執行失敗.
5780
			#$result["function"],當前執行的函數.
5780
			#$result["function"],當前執行的函數.
Line 5791... Line 5791...
5791
			#無.
5791
			#無.
5792
			#備註:
5792
			#備註:
5793
			#考慮用realpath取代
5793
			#考慮用realpath取代
5794
			$changeDirByDotDotSolidus=stringProcess::changeDirByDotDotSolidus($conf["stringProcess::changeDirByDotDotSolidus"]);
5794
			$changeDirByDotDotSolidus=stringProcess::changeDirByDotDotSolidus($conf["stringProcess::changeDirByDotDotSolidus"]);
5795
			unset($conf["stringProcess::changeDirByDotDotSolidus"]);
5795
			unset($conf["stringProcess::changeDirByDotDotSolidus"]);
5796
		
5796
 
5797
			#如果檢查參數失敗
5797
			#如果檢查參數失敗
5798
			if($changeDirByDotDotSolidus["status"]==="false"){
5798
			if($changeDirByDotDotSolidus["status"]==="false"){
5799
			
5799
 
5800
				#設置執行失敗
5800
				#設置執行失敗
5801
				$result["status"]="false";
5801
				$result["status"]="false";
5802
				
5802
 
5803
				#設置錯誤訊息陣列
5803
				#設置錯誤訊息陣列
5804
				$result["error"]=$changeDirByDotDotSolidus;
5804
				$result["error"]=$changeDirByDotDotSolidus;
5805
				
5805
 
5806
				#回傳結果
5806
				#回傳結果
5807
				return $result;
5807
				return $result;
5808
				
5808
 
5809
				}#if end
5809
				}#if end
5810
		
5810
 
5811
			#設置要執行的指令	
5811
			#設置要執行的指令
5812
			$cmd=escapeshellarg($changeDirByDotDotSolidus["changedPath"])." ".$conf["str"];
5812
			$cmd=escapeshellarg($changeDirByDotDotSolidus["changedPath"])." ".$conf["str"];
5813
		
5813
 
5814
			#執行指令
5814
			#執行指令
5815
			exec($cmd,$output,$status);
5815
			exec($cmd,$output,$status);
5816
		
5816
 
5817
			#如果執行失敗
5817
			#如果執行失敗
5818
			if($status!==0){
5818
			if($status!==0){
5819
			
5819
 
5820
				#設置執行失敗
5820
				#設置執行失敗
5821
				$result["status"]="false";
5821
				$result["status"]="false";
5822
				
5822
 
5823
				#設置錯誤訊息陣列
5823
				#設置錯誤訊息陣列
5824
				$result["error"][]="run command(".$cmd.") failed!";
5824
				$result["error"][]="run command(".$cmd.") failed!";
5825
				
5825
 
5826
				#回傳結果
5826
				#回傳結果
5827
				return $result;
5827
				return $result;
5828
			
5828
 
5829
				}#if end
5829
				}#if end
5830
				
5830
 
5831
			#如果沒有輸出
5831
			#如果沒有輸出
5832
			if(count($output)<1){
5832
			if(count($output)<1){
5833
			
5833
 
5834
				#設置執行失敗
5834
				#設置執行失敗
5835
				$result["status"]="false";
5835
				$result["status"]="false";
5836
				
5836
 
5837
				#設置錯誤訊息陣列
5837
				#設置錯誤訊息陣列
5838
				$result["error"][]="no output from command(".$cmd.")";
5838
				$result["error"][]="no output from command(".$cmd.")";
5839
				
5839
 
5840
				#回傳結果
5840
				#回傳結果
5841
				return $result;
5841
				return $result;
5842
			
5842
 
5843
				}#if end
5843
				}#if end
5844
				
5844
 
5845
			#如果輸出不是 json
5845
			#如果輸出不是 json
5846
			if(json_validate($output[0])===false){
5846
			if(json_validate($output[0])===false){
5847
			
5847
 
5848
				#設置執行失敗
5848
				#設置執行失敗
5849
				$result["status"]="false";
5849
				$result["status"]="false";
5850
				
5850
 
5851
				#設置錯誤訊息陣列
5851
				#設置錯誤訊息陣列
5852
				$result["error"][]="output from command(".$cmd.") is not json";
5852
				$result["error"][]="output from command(".$cmd.") is not json";
5853
				
5853
 
5854
				#回傳結果
5854
				#回傳結果
5855
				return $result;
5855
				return $result;
5856
			
5856
 
5857
				}#if end
5857
				}#if end
5858
			
5858
 
5859
			#array of json decode
5859
			#array of json decode
5860
			$resArray=(array)(json_decode($output[0]));
5860
			$resArray=(array)(json_decode($output[0]));
5861
		
5861
 
5862
			#如果解析出來的元素數量不為2
5862
			#如果解析出來的元素數量不為2
5863
			if(count($resArray)!==2){
5863
			if(count($resArray)!==2){
5864
			
5864
 
5865
				#設置需要 escape
5865
				#設置需要 escape
5866
				$result["required"]="true";
5866
				$result["required"]="true";
5867
		
5867
 
5868
				#設置 content 為原始內容
5868
				#設置 content 為原始內容
5869
				$result["content"]=escapeshellarg($conf["str"]);
5869
				$result["content"]=escapeshellarg($conf["str"]);
5870
				
5870
 
5871
				#設置url encode後的內容
5871
				#設置url encode後的內容
5872
				$result["urlEncodeStr"]=urlencode($conf["str"]);
5872
				$result["urlEncodeStr"]=urlencode($conf["str"]);
5873
				
5873
 
5874
				#設置執行正常
5874
				#設置執行正常
5875
				$result["status"]="true";
5875
				$result["status"]="true";
5876
				
5876
 
5877
				#回傳結果
5877
				#回傳結果
5878
				return $result;
5878
				return $result;
5879
			
5879
 
5880
				}#if end
5880
				}#if end
5881
				
5881
 
5882
			#反之,有被解析成單一 shell參數
5882
			#反之,有被解析成單一 shell參數
5883
			else{
5883
			else{
5884
 
5884
 
5885
				#如果開頭跟結尾是"'"
5885
				#如果開頭跟結尾是"'"
5886
				if( $conf["str"][0]==="'" && $conf["str"][$strLength-1]==="'"){
5886
				if( $conf["str"][0]==="'" && $conf["str"][$strLength-1]==="'"){
5887
				
5887
 
5888
					#剔除前面的"'"
5888
					#剔除前面的"'"
5889
					$altStr=substr($conf["str"],1);
5889
					$altStr=substr($conf["str"],1);
5890
				
5890
 
5891
					#剔除後面的"'"
5891
					#剔除後面的"'"
5892
					$altStr=substr($altStr,0,strlen($altStr)-1);
5892
					$altStr=substr($altStr,0,strlen($altStr)-1);
5893
					
5893
 
5894
					#設置要執行的指令	
5894
					#設置要執行的指令
5895
					$cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$altStr;
5895
					$cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$altStr;
5896
				
5896
 
5897
					#執行指令
5897
					#執行指令
5898
					exec($cmd,$output,$status);
5898
					exec($cmd,$output,$status);
5899
				
5899
 
5900
					#如果執行失敗
5900
					#如果執行失敗
5901
					if($status!==0){
5901
					if($status!==0){
5902
					
5902
 
5903
						#設置執行失敗
5903
						#設置執行失敗
5904
						$result["status"]="false";
5904
						$result["status"]="false";
5905
						
5905
 
5906
						#設置錯誤訊息陣列
5906
						#設置錯誤訊息陣列
5907
						$result["error"][]="run command(".$cmd.") failed!";
5907
						$result["error"][]="run command(".$cmd.") failed!";
5908
						
5908
 
5909
						#設置錯誤訊息陣列
5909
						#設置錯誤訊息陣列
5910
						$result["error"][]="output:".print_r($output,true);
5910
						$result["error"][]="output:".print_r($output,true);
5911
						
5911
 
5912
						#回傳結果
5912
						#回傳結果
5913
						return $result;
5913
						return $result;
5914
					
5914
 
5915
						}#if end
5915
						}#if end
5916
						
5916
 
5917
					#如果沒有輸出
5917
					#如果沒有輸出
5918
					if(count($output)<1){
5918
					if(count($output)<1){
5919
					
5919
 
5920
						#設置執行失敗
5920
						#設置執行失敗
5921
						$result["status"]="false";
5921
						$result["status"]="false";
5922
						
5922
 
5923
						#設置錯誤訊息陣列
5923
						#設置錯誤訊息陣列
5924
						$result["error"][]="no output from command(".$cmd.")";
5924
						$result["error"][]="no output from command(".$cmd.")";
5925
						
5925
 
5926
						#回傳結果
5926
						#回傳結果
5927
						return $result;
5927
						return $result;
5928
					
5928
 
5929
						}#if end
5929
						}#if end
5930
						
5930
 
5931
					#如果輸出不是 json
5931
					#如果輸出不是 json
5932
					if(json_validate($output[0])===false){
5932
					if(json_validate($output[0])===false){
5933
					
5933
 
5934
						#設置執行失敗
5934
						#設置執行失敗
5935
						$result["status"]="false";
5935
						$result["status"]="false";
5936
						
5936
 
5937
						#設置錯誤訊息陣列
5937
						#設置錯誤訊息陣列
5938
						$result["error"][]="output from command(".$cmd.") is not json";
5938
						$result["error"][]="output from command(".$cmd.") is not json";
5939
						
5939
 
5940
						#回傳結果
5940
						#回傳結果
5941
						return $result;
5941
						return $result;
5942
					
5942
 
5943
						}#if end
5943
						}#if end
5944
					
5944
 
5945
					#array of json decode
5945
					#array of json decode
5946
					$resArray=(array)(json_decode($output[0]));
5946
					$resArray=(array)(json_decode($output[0]));
5947
				
5947
 
5948
					#如果解析出來的元素數量不為2
5948
					#如果解析出來的元素數量不為2
5949
					if(count($resArray)!==2){
5949
					if(count($resArray)!==2){
5950
					
5950
 
5951
						#設置需要 escape
5951
						#設置需要 escape
5952
						$result["required"]="true";
5952
						$result["required"]="true";
5953
				
5953
 
5954
						#設置 content 為原始內容
5954
						#設置 content 為原始內容
5955
						$result["content"]=$conf["str"];
5955
						$result["content"]=$conf["str"];
5956
					
5956
 
5957
						#設置取得 shell arg 的指令
5957
						#設置取得 shell arg 的指令
5958
						$cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$result["content"];
5958
						$cmd=escapeshellarg(pathinfo(__FILE__)["dirname"]."/../../bin/parse")." ".$result["content"];
5959
					
5959
 
5960
						#初始化輸出
5960
						#初始化輸出
5961
						$output=array();
5961
						$output=array();
5962
					
5962
 
5963
						#執行指令
5963
						#執行指令
5964
						exec($cmd,$output,$status);
5964
						exec($cmd,$output,$status);
5965
					
5965
 
5966
						#如果執行失敗
5966
						#如果執行失敗
5967
						if($status!==0){
5967
						if($status!==0){
5968
						
5968
 
5969
							#設置執行失敗
5969
							#設置執行失敗
5970
							$result["status"]="false";
5970
							$result["status"]="false";
5971
							
5971
 
5972
							#設置錯誤訊息陣列
5972
							#設置錯誤訊息陣列
5973
							$result["error"][]="run command(".$cmd.") failed!";
5973
							$result["error"][]="run command(".$cmd.") failed!";
5974
							
5974
 
5975
							#回傳結果
5975
							#回傳結果
5976
							return $result;
5976
							return $result;
5977
						
5977
 
5978
							}#if end
5978
							}#if end
5979
							
5979
 
5980
						#如果沒有輸出
5980
						#如果沒有輸出
5981
						if(count($output)<1){
5981
						if(count($output)<1){
5982
						
5982
 
5983
							#設置執行失敗
5983
							#設置執行失敗
5984
							$result["status"]="false";
5984
							$result["status"]="false";
5985
							
5985
 
5986
							#設置錯誤訊息陣列
5986
							#設置錯誤訊息陣列
5987
							$result["error"][]="no output from command(".$cmd.")";
5987
							$result["error"][]="no output from command(".$cmd.")";
5988
							
5988
 
5989
							#回傳結果
5989
							#回傳結果
5990
							return $result;
5990
							return $result;
5991
						
5991
 
5992
							}#if end
5992
							}#if end
5993
							
5993
 
5994
						#如果輸出不是 json
5994
						#如果輸出不是 json
5995
						if(json_validate($output[0])===false){
5995
						if(json_validate($output[0])===false){
5996
						
5996
 
5997
							#設置執行失敗
5997
							#設置執行失敗
5998
							$result["status"]="false";
5998
							$result["status"]="false";
5999
							
5999
 
6000
							#設置錯誤訊息陣列
6000
							#設置錯誤訊息陣列
6001
							$result["error"][]="output from command(".$cmd.") is not json";
6001
							$result["error"][]="output from command(".$cmd.") is not json";
6002
							
6002
 
6003
							#回傳結果
6003
							#回傳結果
6004
							return $result;
6004
							return $result;
6005
						
6005
 
6006
							}#if end
6006
							}#if end
6007
						
6007
 
6008
						#array of json decode
6008
						#array of json decode
6009
						$resArray=(array)(json_decode($output[0]));
6009
						$resArray=(array)(json_decode($output[0]));
6010
					
6010
 
6011
						#如果解析出來的元素數量不為2
6011
						#如果解析出來的元素數量不為2
6012
						if(count($resArray)!==2){
6012
						if(count($resArray)!==2){
6013
						
6013
 
6014
							#設置執行失敗
6014
							#設置執行失敗
6015
							$result["status"]="false";
6015
							$result["status"]="false";
6016
							
6016
 
6017
							#設置錯誤訊息陣列
6017
							#設置錯誤訊息陣列
6018
							$result["error"][]="output from command(".$cmd.") is not valid";
6018
							$result["error"][]="output from command(".$cmd.") is not valid";
6019
							
6019
 
6020
							#回傳結果
6020
							#回傳結果
6021
							return $result;
6021
							return $result;
6022
						
6022
 
6023
							}#if end
6023
							}#if end
6024
					
6024
 
6025
						#設置url encode後的內容
6025
						#設置url encode後的內容
6026
						$result["urlEncodeStr"]=urlencode($resArray[1]);
6026
						$result["urlEncodeStr"]=urlencode($resArray[1]);
6027
					
6027
 
6028
						}#if end
6028
						}#if end
6029
						
6029
 
6030
					#反之
6030
					#反之
6031
					else{
6031
					else{
6032
		
6032
 
6033
						#設置不需要 escape
6033
						#設置不需要 escape
6034
						$result["required"]="false";
6034
						$result["required"]="false";
6035
				
6035
 
6036
						#設置 content 為未 escape 的內容
6036
						#設置 content 為未 escape 的內容
6037
						$result["content"]=$altStr;
6037
						$result["content"]=$altStr;
6038
						
6038
 
6039
						#設置url encode後的內容
6039
						#設置url encode後的內容
6040
						$result["urlEncodeStr"]=urlencode($result["content"]);
6040
						$result["urlEncodeStr"]=urlencode($result["content"]);
6041
		
6041
 
6042
						}#else end
6042
						}#else end
6043
				
6043
 
6044
					}#if end
6044
					}#if end
6045
				
6045
 
6046
				#反之
6046
				#反之
6047
				else{
6047
				else{
6048
				
6048
 
6049
					#設置不需要 escape
6049
					#設置不需要 escape
6050
					$result["required"]="false";
6050
					$result["required"]="false";
6051
			
6051
 
6052
					#設置 content 為 str 的內容
6052
					#設置 content 為 str 的內容
6053
					$result["content"]=$conf["str"];
6053
					$result["content"]=$conf["str"];
6054
					
6054
 
6055
					#設置url encode後的內容
6055
					#設置url encode後的內容
6056
					$result["urlEncodeStr"]=urlencode($result["content"]);
6056
					$result["urlEncodeStr"]=urlencode($result["content"]);
6057
					
6057
 
6058
					}#else end
6058
					}#else end
6059
					
6059
 
6060
				}#else end
6060
				}#else end
6061
				
6061
 
6062
			}#if end
6062
			}#if end
6063
		
6063
 
6064
		#反之 
6064
		#反之
6065
		else{
6065
		else{
6066
		
6066
 
6067
			#設置需要 escape
6067
			#設置需要 escape
6068
			$result["required"]="true";
6068
			$result["required"]="true";
6069
			
6069
 
6070
			#設置 content 為原始內容
6070
			#設置 content 為原始內容
6071
			$result["content"]=escapeshellarg("");
6071
			$result["content"]=escapeshellarg("");
6072
			
6072
 
6073
			}#else end
6073
			}#else end
6074
 
6074
 
6075
		#設置執行正常
6075
		#設置執行正常
6076
		$result["status"]="true";
6076
		$result["status"]="true";
6077
 
6077
 
6078
		#回傳結果
6078
		#回傳結果
6079
		return $result;
6079
		return $result;
6080
 
6080
 
6081
		}#function toSingleShellArg end
6081
		}#function toSingleShellArg end
6082
		
6082
 
6083
	}#class stringProcess end
6083
	}#class stringProcess end
6084
 
6084
 
6085
?>
6085
?>